基于NodeMCU智能语音交互家居系统设计

2021-05-11 19:47黄玲王霄邵健胡娟张译
智能计算机与应用 2021年2期
关键词:树莓派语音识别智能家居

黄玲 王霄 邵健 胡娟 张译

摘要:针对传统家居家电设备很难直接与市场上的语音助手结合,同时高技术产品价格很难惠民,智能家居控制系统因设计成本过高很难实现普及的现象,本文提出将树莓派和NodeMCU开发板联合开发一款性价比极高的智能语音交互家居系统。设计使用树莓派4B+在Linux系统下运行百度云平台提供的SDK加上麦克风阵列和CSI摄像头实现语音识别、语音合成和人脸识别等功能。利用Pythonserial库实现与Arduino串口通信,树莓派将语音识别到的指令下发至Arduino,从而实现人与硬件设备语音交互。NodeMCU通过内置ESP8266芯片使用ArduinoIDE编译将传感器采集到的数据通过TCP协议与物联网云平台连接,实现数据的远程存储,家庭环境信息的远程观测和远程控制。运行结果显示,实现家居环境数据无线传输与语音交互的功能要求,设计成本低廉,功能强大且扩展方便。本系统实现了多平台交互,提高了多任务并行处理能力。

关键词:智能家居;树莓派;语音识别;NodeMCU;传感器;物联网云平台

【Abstract】Inviewofthefactthattraditionalhomeappliancesaredifficulttodirectlyintegratewithvoiceassistantsonthemarket,thepriceofhigh-techproductsisdifficulttobenefitthepeople,andsmarthomecontrolsystemsaredifficulttoachievepopularizationduetohighdesigncosts,thisarticleproposesRaspberryPiisusedtodevelopahighcost-performancesmartvoiceinteractivehomesystemjointedwithNodeMCUdevelopmentboard.ThedesignusestheRaspberryPi4B+toruntheSDKprovidedbytheBaiducloudplatformundertheLinuxsystem,plusthemicrophonearrayandCSIcameratorealizefunctionssuchasspeechrecognition,speechsynthesisandfacerecognition.ThePythonseriallibraryisusedtocommunicatewiththeArduinoserialport,andtheRaspberryPisendsthevoice-recognizedinstructionstotheArduinotorealizethevoiceinteractionbetweenhumansandhardwaredevices.NodeMCUusesthebuilt-inESP8266chiptocompilewithArduinoIDEtoconnectthedatacollectedbythesensortotheIoTcloudplatformthroughtheTCPprotocolforrealizingremotestorageofdata,remoteobservationandremotecontrolofhomeenvironmentinformation.Theoperationresultsshowthatwirelesstransmissionofhomeenvironmentdataandthefunctionalrequirementsofvoiceinteractionarerealized,thedesigncostislow,thefunctionispowerfulandtheexpansionisconvenient.Thesystemrealizesmulti-platforminteractionandimprovesthemulti-taskparallelprocessingcapability.

【Keywords】smarthome;RaspberryPi;voicerecognition;NodeMCU;sensors;IoTcloudplatform

作者简介:黄玲(1997-),女,硕士研究生,主要研究方向:无线传感器网络;王霄(1985-),男,博士,副教授,硕士生导师,主要研究方向:无线传感器网络、嵌入式系统;邵健(1995-),男,硕士研究生,主要研究方向:无线传感器网络;胡娟(1992-),女,硕士研究生,主要研究方向:无线传感器网络;张译(1995-),男,硕士研究生,主要研究方向:无线传感器网络。

0引言

数据时代快速发展,电子技术及其电子产品在现实生活中广泛普及,给人们的生活带来极大的便利。开发智能家居技术产品更是提供人们享受生活的重要平台,智能家居系统使用网络将各种家居设备连接起来,实现智能化的控制、监测、提醒等功能[1],既能给用户提供舒適、健康、方便的生活环境,还能够远程监测家庭环境信息并能够远程控制家电开关,提高了居民生活的安全性[2]。

目前,智能家居的控制方式主要采用无线控制或手动控制[3]。其中,手动控制精确性比较高,但对于那些肢体有障碍或者年纪比较大反应迟缓的人而言,手动控制不太适用,当下采用无线控制的方式成为了学界的研究热点,只是现如今的传统家居家电设备很难直接与市场上的语音助手结合,而且高技术产品价格也并不惠民,智能家居控制系统存在因设计成本过高而难以做到大范围普及的现象。尤其在时下的老龄化社会,对于某些老人群体而言,则很难跟上这个智能化的社会发展。

针对上述问题,本文提出用树莓派和NodeMCU开发板联合开发一款性价比极高的智能语音交互家居系统,通过树莓派在Linux系统下运行百度云平台提供的SDK加上麦克风阵列和CSI摄像头实现语音识别、语音合成、人脸检测等主要功能。让其足不出户便能知道天下事,还能通过安全门连接摄像头来实现人脸监测,安全区域预警等功能,室内检测老人是否摔倒,心率和血压检测实时发送至云端存储,既满足了家人远程监测的需求,还能实时控制家用电器并进行一些救助措施。

1系统总体框架图

对智能家居系统整体设计,为保证系统运行的稳定性、准确性和实时性,需要软硬件的联合运行。本设计系统以树莓派和NodeMCU联合作为控制器,来实现家庭环境监测、家用电器控制、室内外控制、安防管理及家庭设备语音交互等功能,树莓派通过百度云平台实现语音识别、语音合成及人脸识别功能,通过麦克风阵列对人声进行录音,传输至云服务器平台来做语音识别,再将识别的文字提取出来。如果有对应的文字指令则通过串口传送至Arduino执行需要处理的文字对应程序。Arduino再发送AT指令给NodeMCU,建立TCP透传模式实现云服务数据通信。使用ArduinoIDE环境来编写NodeMCU程序,在配置环境时添加ESP8266安装即可。这样就可以使用该环境实现程序下载,对于NodeMCU而言只提供了3V的输出电压,不能满足一些传感器5V的工作电压。为解决这一问题,将ArduinoNano的5V电源提供给NodeMCU的VIN引脚,传感器5V连接到VIN引脚提供工作电压。与Tlink物联网云服务器建立TCP透传模式数据通信。传感器选用DHT.11、MQ_2、PIR、水泵、减速电机、麦克风双阵列、CSI摄像头。使用LabVIEW作为上位机在PC机上进行调试,利用虚拟仪器平台实时采集家居环境信息便于调试家用电气设备,使用更加简洁、方便的无线传输方式—物联网通信,就能够将传感器感知到的信息发送至云服务器,实现数据的准确显示、存储和反馈。系统总体设计框架如图1所示。

2系统功能设计

系统实现的功能主要有利用树莓派和NodeMCU与百度AI交互平台通信实现语音识别、语音合成、人脸识别功能及实时控制家电设备,与此同时将家庭环境监测数据远程传输至云端实现远程存储、远程访问、远程控制等功能。对此拟展开研究论述如下。

2.1语音识别功能

本智能家居设计系统主要利用的是百度AI交互平台的语音识别技术。首先利用与树莓派连接的麦克风双阵列对人声进行录音,然后树莓派再利用自带的WiFi模块将录音传送至服务器,服务器再将数据传送至百度AI交互平台的语音识别API。语音识别API经过内部的一系列处理将语音识别成文字传送至服务器,服务器再对数据进行一系列处理后发送到树莓派,主控装置通过接收的指令再操控各种家庭设备[4]。在环境优良的情况下采集的录音,API的语音识别率高达99%,借助现成的应用技术封装好的接口,百度AI开放平台提供的Python的SDK在树莓派上运行。百度智能云提供的应用接口如图2所示。

由图2可知,先是在百度云上注册账号,创建应用,在创建中添加应用名称、应用接口、接口选择和应用描述。此后平台会自动生成三元组,这3个与云平台提供的SDK用来连接自己创建的应用。将树莓派上的Linux系统上配置好Python编译环境,下载语音识别PythonSDK客户端通过AipSpeech库实现语音识别的程序。

2.2语音合成功能

语音合成是通过机械的、电子的方法产生人造语音的技术。语音合成技术经过共振峰合成、波形拼接合成、基于隐马尔可夫模型的统计参数合成等数个发展阶段[5],迄今为止,语音合成主要是通过深度神经网络实现,能将任意文字信息实时转化为标准流畅的语音朗读出来,其中也涉及到多个学科的前沿技术。本系统采用百度AI交互平台提供的语音合成功能非常简单,只需在树莓派4B+上运行Python脚本文件,根据百度云平台提供的技术文档,调用的方式采用HTTP协议,从而与百度云功能连接在一起。百度云会提供众多语言环境的SDK,本次设计采用Python语音作为快速原型开发。研究后可知,语音合成步骤如图3所示。

2.3人脸识别功能

人脸识别特指利用分析比较人脸视觉特征信息进行身份鉴别的计算机技术。利用百度云提供的众多语言环境的SDK中就有人脸模块,而人脸识别也只是里面的一个函数定义,需要调用该模块再结合语音识别中提供的三元组即可实现对人脸识别的功能,同时需要在树莓派上接入CSI摄像头实现调用。程序中设定当语音识别到开门指令时打开摄像头模块,进行拍照,上传至云平台与预先设置的人脸库中的样本做比较,比较后返回相识度。设定阈值,相识度高的即为目标人物。

3系统硬件设计

系统硬件通过NodeMCU和树莓派控制及各种传感器搭建智能语音控制系统。树莓派利用自带的WiFi模块实现与云平台交互,通过树莓派上的Linux系统运行云平台提供的SDKPython脚本代码,采用CS摄像头和麦克风双阵列实现语音识别、合成和人脸监测等。NodeMCU在ArduinoIDE环境中对程序进行编写。再将温湿度传感器DHT.11、人体感应传感器PIR、烟雾传感器MQ_2、减速电机传感器、水泵和NodeMCU连接,实现对家居环境的监测,采用TCP协议与Tlink物联网平台通信,将所监测到的数据远程传输到手机端或PC端。

3.1NodeMCU与各传感器模块

3.1.1温湿度传感器模块

为了实现对家居环境温湿度信息的采集,本设计系统选用DHT.11作为温湿度传感器。该款传感器的湿度精度为±5%RH,温度精度为±2℃,量程湿度为20~90%RH,温度采集范围是-20℃~60℃,将其与NodeMCU连接,将采集的数据反馈给温控设备实现智能调节。对于DHT.11传感器采用的串口单总线的方式与NodeMCU的D4引脚连接。能够实现数据的校验数据发送格式为:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验位,一般的小数值为0。校验方式为:8bit校验位=8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit溫度小数数据。NodeMCU与DHT.11的硬件连接如图4所示。

3.1.2MQ_2气体传感器

为了实时监测家庭环境中可燃或有毒气体的含量,本系统采用MQ_2传感器来检测家居环境的烟雾浓度,当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。通过单片机来检测高低电平,由此来检测环境气体。

检测中利用传感器阻值与被测气体浓度的计算关系式可得:

其中,n,m均为常数。n与气体检测灵敏度有关,除了随传感器材质和不同的气体种类外,当所测量处温度的不同也会发生变化;m称为气体分离率,表示随气体的浓度而变化的传感器的灵敏度,研究表明m值多处于1/2和1/3比较合适。设计时,与MQ_2的数字引脚连接,设定阈值,当超出阈值时引脚为高电平。

3.1.3PIR传感器

在智能家居环境中,有时需要检测人员何时离开或何时进入该区域或接近该区域的基本项目或产品。本设计系统选用的是PIR传感器。PIR基本上是由热释电传感器制成的,可以检测红外辐射的水平。因为人是恒温动物,所以在无人进入探测区时,红外辐射比较稳定,一旦人体红外线辐射进来,经光学系统聚焦就使热释电器件产生突变电信号,从而发出警报。研究可知,该种传感器功耗和成本都很低,镜头视角范围广阔,不仅坚固耐用,而且易于接口。

PIR传感器本身具有2个插槽,每个插槽均由对IR敏感的特殊材料制成。当传感器闲置时,2个插槽都检测到相同量的IR,即从房间或墙壁或室外辐射的环境量。当诸如有人或动物的温暖物体经过时,则先会拦截PIR传感器的一半,这会导致两半之间的“正向差异”变化。当该暖体离开感应区域时,情况会发生相反的变化,从而使传感器产生负的差分变化。人体感应模块的连接如图5所示。当感应到人体时,NodeMCU采用灌电流点亮LED灯。

3.1.4水泵和减速电机传感器模块

通过微处理器控制水的用量,可节约大量的水资源、防止水浪费等,同时可通过手机App远程观看水阀开关情况,可实现远程关闭功能。该项目设计中,电机将用于对窗帘的智能控制。但由于微处理器很难直接驱动水泵和电机模块,设计中结合L9110S四路电气驱动板来共同驱动。水泵和电机驱动的连接示意如图6所示。

3.2物联网云平台

对比不同云平台发现,TlinK物联网平台更适合家居系统的开发,使用WiFi技术实现网络通信连接,充分利用家庭WiFi覆盖的优势。Tlink智能家居物联网云平台可以接入市面上各种传感器,而不是绑定自己的专属硬件,从而给用户更大的选择空间,降低采购成本。传输层由各种网络和云计算平台等组成,负责传递和处理感知层获取的信息。多比智能云网关是专门针对云组态SCADA分布系统应用推出的前置智能数据采集,能将温度、湿度、PH值、光强度、CO2数据远传到云端数据服务器中,也可以对数据进行本地存储,具有远程查询,断点续传的特点,确保系统的数据完整性。数据远程存储的研发界面如图7所示。

Tlink智能家居物联网云平台可以按照不同的项目规模大小、软硬件配置,灵活配置实时画面、控制界面、趋势图、报表、告警、手机App等。例如,对于温湿度、光照参数等,可收集每个节点的数据,进行存储和管理,实现整个测试点的信息动态显示,并根据各类信息来自动控制家电设备,对异常信息进行自动报警。为了在演示上具有直观性,对DHT.11传感器呼气实现数据进行上传。物联网App移动终端的菜单界面如图8所示。

本设计采用了云组态模式,对家居环境信息可以实现共享,授权后也可一起管理家居设备,实现远程检测和远程控制功能。智能家居管理者还可发布二维码或者链接,在将其提供给访问者后,输入密码即可访问。

登录后进入显示主界面,实时观测系统提供的数据,实现数据的远程存储,弥补了微处理器的内存不足的缺点。与此同时,界面还能够兼具观测天气预报等情况,实时预测最近五天的天气。综上所述,可得云组态控制界面如图9所示。

3.3树莓派的选型与传感器的连接

3.3.1树莓派的选择

树莓派的功能非常强大,这是一款基于ARM的微型电脑主板,具有8个GPIO引脚,以SD卡为内存硬盘,卡片主板周围有4个USB接口和一个100以太网接口,相当于一台计算机,能运行真正的现代操作系统,可以连接键盘和鼠标,接入因特网,并向电视或显示器输出高清图像。树莓派的B型板还带有内嵌的以太网接口,配有廉价易用的USBWiFi适配器。而且树莓派的开发环境具有易用性。

本次设计选用树莓派的4B+作为主控平台,通过百度AI开放平台提供的SDK实现语音识别、语音控制运行云平台提供的SDKPython脚本代码,树莓派4B+发挥的是统筹全局的作用。

3.3.2麦克风模块

设计时需要在线实现语音识别和语音合成功能。对语音识别来说,可通过树莓派来采集声音信号,接着保存为wav格式,再上传至百度云平台对采样率、位深和声道进行处理。之后返回编码格式識别出文字。同样,语音合成功能就是将文字信息推送至云服务,云平台处理后再返回给MP3的编码格式。从而实现将文字转为语音播报的功能,采用的麦克风为麦克风双阵列,既可做到远场拾音、回音消除,而且也有着体积小巧和构造灵活等特点。还可直接与树莓派连接起来,安装驱动也很简单。

3.3.3CSI摄像头模块

CSI摄像头具有500万像素,15cm排线直接接入树莓派主板,本设计通过其与树莓派连接实现人脸在线检测功能,树莓派官方的摄像头已经配置并安装好了PFC软排线,只需要把排线插入到树莓派4B+的CSI接口上,注意需要把接口黑色部分提起,然后插入排线,最后压紧即可。此外,随摄像头还配备了一个调节焦距用的旋钮。

4软件设计与流程

软件开发平台设计了采用ArduinoIDE开发、ArduinoNano和NodeMCU联合开发模式。其中,ArduinoNano串口检测树莓派下发的指令,响应指令状态。NodeMCU负责与传感器的连接和发送至云服务器,且与ArduinoNanoIIC连接实现响应Nano指令。从而实现语音反馈、传感器采集信息和电机控制。程序设计流程如图10所示。

5结束语

本文提出将树莓派和NodeMCU开发板联合开发一款性价比极高的智能语音交互家居系统,设计使用树莓派4B+在Linux系统下运行百度云平台提供的SDK加上麦克风阵列和CSI摄像头实现语音识别、语音合成、人脸检测等主要功能,实现人与硬件设备语音交互。NodeMCU通过内置ESP8266芯片使用ArduinoIDE编译将传感器采集数据通过TCP协议与物联网云平台连接,实现数据的远程存储、家庭环境信息的远程观测、远程控制。设计采用2款主流硬件,树莓派实现完整的操作系统安装,调用物联网云平台API连接,实现家居环境监测、家用电器控制、安防管理及语音交互功能。产品将传感器技术、WiFi技术、物联网平台、LabVIEW技术结合起来实现对环境实时监控并及时控制,采用无线技术,不需任何布线,实施方便。系统稳定性,可靠性好,设计系统软硬件拓展方便,安全性高。整个系统操作简单,方便,能在短时间内进行熟练操作,产品功耗低,可以用移动电源供电,安装快捷方便,能快速组建一个实时远控系统。

参考文献

[1]周宏伟.智能家居的系统结构及相关无线通信技术研究[J].数字通信世界,2019(3):115.

[2]满莎,杨恢先,彭友,等.基于ARM9的嵌入式无线智能家居网关设计[J].计算机应用,2010,30(9):2541-2544.

[3]刘硕,赵彦博,杜佳林,等.基于蓝牙的物联网智能家居系统设计[J].通信与信息技术,2020(02):72-73,61.

[4]孙全宝.基于语音识别的智能家居系统设计[J].物联网技术,2020,10(7):105-106,110.

[5]薛辉.基于语音合成的智慧导游系统的研究与设计[J].信息技术,2020,44(2):112-115,120.

猜你喜欢
树莓派语音识别智能家居
智能家居行业仍无“独角兽”
智能家居产业现状和发展趋势
智能家居 走向星辰大海
通话中的语音识别技术
智能安全防盗探测小车
智能家居未来感初体验
面向移动终端的语音签到系统
农业物联网平台手机秘书功能分析与实现
基于嵌入式技术的农村医疗系统设计
基于Android手机语音和Arduino控制板的机器人控制系统