1 引言
智能家居系统是以住宅为平台,依附各种先进技术如网络通讯技术、自动控制技术、视音频处理技术等,通过融合用户个性需求,将与家居生活有关的设施进行合理高效的集成,形成以住户为主体,以提升家居智能化和提高用户生活质量为目标的家居控制系统平台。本文将介绍一种基于OneNET云平台的语音识别家居系统,该设计结合了综合布线技术、语音识别技术、传感器技术和无线Wifi技术,搭配OneNET云平台实现了低成本、易维护、稳定性良好的家居语音在线控制。房屋缩略模型搭载了基于Arduino控制的语音家居平台,房屋模型大小为60mm×70mm×80mm。平台分模块搭建,主要分为语音控制模块、Wifi控制模块和OneNET云平台。
2 OneNet平台的EDP协议介绍
OneNet设备云平台是中移物联网有限公司自主研发的PaaS物联网开放平台。利用云平台极大地降低了开发成本,同时平台的稳定性为系统控制提供了设计基础,本设计采用EDP传输协议进行平台的搭建。EDP具有长连接协议、数据加密传输、终端数据点上报、平台消息下发的特点,完全满足用户对智能家居控制的要求。EDP协议包含以下部分:请求连接、设备认证、心跳命令、数据传输、控制命令、断开连接等部分。
工作过程为最小系统向服务器发出连接请求,收到服务器响应以后,发送验证信息。成功建立控制单元与云服务器的连接以后,设备可以在2分钟向服务器传输数据或接收服务器的控制命令,如果设备在2分钟内没有与服务器进行数据更新,就要发送心跳命令,以维持连接,保持设备在线。
3 系统设计
3.1 智能家居系统的总体设计
系统硬件结构图共有八部分,Arduino Mega作为核心控制模块对各模块所采集的数据进行处理和反馈;语音识别模块对麦克风所采集的语音信号进行处理和结果的输入、输出;家居设备是整个系统的执行部分,对主控制板输出指令做出相应的开关动作,同时会做出一定的反馈回执到主控板;无线信号传输模块在系统中作为另一重要部分,它对OneNET平台所发出数据进行接收并做出处理传输给主控模块,同样主控模块会做出反馈通过无线信号传输模块回执到移动端;使用稳压模块使各个模块得到所需电压值,为系统的各模块进行独立供电。系统整体设计见图1。
无线控制方面主要由家居控制连接单元、访问结点和OneNET平台3部分组成。可通过智能手机APP或PC登录OneNET平台对家居进行控制和监控,控制单元通过Wifi模块在连接网络的情况下接入云平台API并进行短时数据传输,将传感器采集到的各种信息、数据发送到云端服务器进行实时的数据显示,云平台同样作为指令下发的平台给中央控制单元发送数据指令进行家居设备的管理。智能硬件接入云平台总体设计方案如图2
语音识别的本质是模式识别和匹配的过程,其基本过程可以分为语音信号的预处理、语音特征提取、训练和模式识别四个过程。该设计采用WEGASUN-M6核心模块实现对语音信号的处理与识别,模块提供丰富的外部接口,可用于家居设备的接入。(电路连接见图3)
3.2 语音识别模块
语音控制系统的设计通过对要识别的预定义语音命令和语法设置来实现对设备的控制功能。控制命令与其语义之间存在直接的映射关系,列出所有可能的组合并进行关联(部分词条映射见图4),另外由于语音识别模块时刻对环境进行口令词条识别操作,容易造成误识别,所以系统采用自定义唤醒模式,使用经过口令过滤,能大大降低误识别的概率,保证识别效果。
首先系统进入初始化过程,完成后进入工作状态,系统通过外置音频采集装置(麦克风和声卡)对用户的语音指令进行收集,对比模板库将处理结果以指令的形式输出,经过主控制板处理,将命令消息传输给相应设备执行。具体流程图见5,传感器和被控设备未接入电路。
3.3 Wifi模块结构设计
无线控制部分利用ESP8266的AP+Station混合模式进行通信,通过Wifi连接实现对智能家居的控制,关键在于科学的整体结构设计。其工作原理是利用云平台发出动作信号,在线设备接收动作指令使设备执行相应的动作,除实现简单控制外,搭配温湿度传感器(DHT11)、空气质量传感器(MQ2)等相关传感器实现对家庭环境的周期性数据采集,系统处理后将数据上传至云端,用户可通过OneNET云平台随时了解家的环境信息。工作原理见图6,电路连接见图3。
3.4 OneNET设备云平台设计
首先登录OneNet设备云平台并建立项目,然后通过网络和OneNet服务器建立TCP连接,最后将数据按照EDP协议打包上传至OneNet平台,从而实现设备终端接入。
无线传感节点的软件设计流程图如图7所示。
首先系统进入开机状态后对各数据采集模块和Wifi模块进行初始化设置,设置数据采集接口、Wifi模块休眠时间等。
其后Arduino对ESP-8266模块进行初始化,其执行程序如下:
while (!doCmdOk("AT+CWMODE=3","OK")); //选择工作模式3即为AP+Station混合模式
while (!doCmdOk("AT+CWJAP="311","JSJJSX311"", "OK"));//选择连接网络
while(!doCmdOk("AT+CIPSTART="TCP","183.230.40.39",876", "CONNECT"));
while (!doCmdOk("AT+CIPMODE=1", "OK")); //透传模式
while (!doCmdOk("AT+CIPSEND", ">")); //开始发送
进入平台连接等待,其执行程序如下:
while (WIFI_UART.available()) WIFI_UART.read(); //清空串口接收缓存
packetSend(packetConnect(ID, KEY)); //发送EPD连接包
while (!WIFI_UART.available()); //等待EDP连接应答
Wifi模块初始化结束后,将采集到的温度、湿度、空气质量等信息进行封装,通过Wifi网络发送至OneNet平台。本设计采用EDP连接协议,所以这里只展示EDP的数据上传方式。具体函数代码如下:
void packetSend(edp_pkt* pkt)
{
if (pkt != NULL)
{
WIFI_UART.write(pkt->data, pkt->len); //串口发送
WIFI_UART.flush();
free(pkt); //回收内存
}
}
在向OneNET平台发送数据包的同时,允许通过平台对设备下发指令,以实现对设备的远程控制,部分代码如下:
int edpPushDataParse(edp_pkt* pkt, char *srcId, char *data)
{
uint32 remain_len;
uint16 id_len;
readUint8(pkt); //包类型
remain_len = readRemainlen(pkt); // 剩余长度
id_len = readUint16(pkt); //源ID长度
readStr(pkt, srcId, id_len); //源ID
readStr(pkt, data, remain_len - 2 - id_len); // 数据内容
}
通过应用开发平台设计出针对温度、湿度和空气质量的监控可视界面,另外为了方便对室内外照明系统的控制,界面添加了关于灯光控制的按钮。如图8所示。界面中,实时参数以“数字表盘+图表变化”显示,以曲线图的方式呈现环境在一段时间内的变化情况。设计了对客厅、卧室灯组,方便用户通过手机APP或者PC端进行远程的家居控制并实时监视家中的环境情况。
4 结语
通过对功能的不断调试和改进,语音系统收录了家居动作的基本语音指令,经过反复测试语音系统稳定且满足一般家庭的客观需求。
基于OneNET物联网平台的无线控制系统趋于稳定,能够实现家庭各种环境数据的采集和传输,且家居能够及时响应平台下发的指令。语音识别和移动平台为用户提供了多样的家居控制方式,由于其简洁、方便的特点,这将成为未来智能家居控制的主流趋势。
参考文献
[1]陈宝远,褚庆文,孙忠祥,罗中明.一种基于OneNet设备云的智能硬件组网方法[J].哈尔滨理工大学学报,2017,22,(5):76-80.
[2]尤琦涵,陈兆仕,张沁.OneNET云平台WiFi远程控制的智能教室系统[J].单片机与嵌入式系统应用,2017,17,(10):69-73.
[3]曹庆年,李颖,张晓蕊,等.基于WiFi技术的智能家居系统设计[J].软件导刊,2017,16,(8):67-68,72.
[4]周冠方.基于物联网的智能家居系统研究[D].湖北工业大学,2017.
[5]王向军.基于WIFI的智能家居系统设计[J].长沙大学学报,2017,31,(2):51-53.
[6]侯杰林,张青春,符骏.基于OneNet平台的水质远程监测系统设计[J].淮阴工学院学报,2016,25,(3):10-13.
[7]张英振.嵌入式语音识别系统开发及在智能家居中的应用研究[D].上海应用技术学院,2015.
[8]闵梁.面向智能家居的语音识别技术研究与实现[D].哈尔滨工业大学,2013.
[9]刘荣辉.基于智能家居控制的嵌入式语音识别系统研究[D].广东工业大学,2013.
[10]刘其洪,李仲阳,徐孟龙.基于语音识别的智能家居系统研究[J].信息化纵横,2009,28,(14):80-83.
基金项目:国家项目:大学生创新创业训练计划资助项目(201710452073)
收稿日期:2018-06-12
作者简介:孟庆旭(1996-),男,山东济宁人,临沂大学自动化与电气工程学院学生,研究方向:自动化专业嵌入式。