管小明,王孚贵,李士龙
(赣东学院 机械与电子工程系,江西抚州,344000)
近年来,生活水平的提高以及人们对美好生活的追求不断提升,使得舒适且便利的智能家居成为一种流行趋势,互联网和物联网的技术又促进了智能家居系统的应用快速扩展,推动了传统的家居模式的革新。智能家居系统是以家庭住宅为平台,采用音视频处理、自动控制、网络通信等技术将家居设施综合布线集成一体,构建成便捷高效的住宅设施事务管理系统[1]。配置各类传感器,构建物联网平台,各类信息通过传感设备进行接收、传递、判断和识别信息,同时,将各种安全设备、家用电器通过互联网技术有效连接起来,构建起集设备控制、安全防护、家庭通信等功能为一体化系统[2]。具体应用时,可以根据用户的不同需求,提供照明控制、窗帘自动遥控、安防报警、远程家电控制等功能[3],以安全性为基础,以便利性为核心,以舒适性为目标,以艺术性为特色,为用户提供一个便捷、舒适、安全、环保的居住环境。
系统设计的总体结构图如图1 所示,主要由STM32 微处理器作为主控单元、语音识别模块和手机APP 为前端,烟雾传感器模块、温湿度传感器、光敏传感器模块等数据作为智能家居判断与决策的重要依据[4],LED 液晶显示模块作为智能人机交互显示。
图1 智能家居控制系统框图
STM32F103C8T6 是以ARM Cortex-M3 架构为核心的微控制器,其高速的数据处理能力可进一步提高数据的采集和语音识别能力;LD3320 语音识别模块具有非特定人(SI)的语音识别特性[5],该模块识别技术应用较为成熟,可同时识别中文与英文;0.96 寸的OLED 屏通过SPI 协议及端口与STM32 通信及驱动;高性能处理器、语音识别前端、显示屏三者共同构建了人机交互的家庭控制终端。STM32 处理器采集处理各类传感器回传的数据,如环境的温湿度和烟雾浓度、光照强度,经过分析处理后利用OLED 屏显示,形成直观、精确的人机交互界面,利用语音控制模块来识别各种控制指令以实现各类电器的开关控制以及显示环境参数,通过ESP8266 无线WiFi 模块,连接家里的各种智能家居设备,或者连接到路由。收集APP 则通过连接服务器来控制各类智能家居设备,同时采集上来的信息可通过ESP8266传送到手机APP 进行相关的操作,完成相关操作。
本设计选用了基于ARM Cortex-M3 内核的STM32 系列处理器,充分利用处理器的功耗低、速度快等优势特点,主要任务是完成各类传感器的信息采集,数据的传送、处理以及筛选甄别,并根据居住环境实际情况实现对控制对象的相关操作。可以这么说,STM32F103C8T6 是整个系统的核心主控模块。
智能语音主要指通过语音合成技术和语音识别技术,为用户提供智能化服务。一般来说,用户只需要用说话的方式给服务终端发送命令,就能实现相应的操作控制。设计采用了LD3320 芯片作为语音交互模块,主要功能是采集语音信息转换为相应的操作指令,并与主控模块实现交互。使用时,用户先要喊出系统设定的语音控制代码“小智同学”,则可进入语音控制模式,LD3320 语音识别模块对用户喊出操作命令指令进行识别,与数据库内语音指令对比分析,匹配完成后即可实现语音操控功能,省去用户到处寻找遥控器的麻烦。
信息采集模块主要是通过各类传感器完成室内温湿度、照明强度、烟雾等有毒气体的采集、处理及传输,为主控模块的各种控制做判断依据。比如,温湿度采集模块通过采集室内温湿度信息,将室内温度信息发送给主控系统;主控系统分析判断室内温湿度是否正常,并通过指令控制家电设备来调节室内温度,同时在显示器上实时显示温度和湿度。光敏信息采集模块通过检测房间内的照明强度,完成预处理、信号转换等功能,并将信号传输给主控系统;主控系统根据室内光强分析判别是晚上还是白天,然后通过继电器组控制室内灯光的亮度。烟雾传感器模块利用其电路特性,将电导率变化和气体浓度转换为对应的信号,传给传输给主控系统;主控系统依据检测室内空气是否清洁,是否有火灾的情况,综合判别,并采取报警、自动开窗等相应的措施。
ESP8266 具有能耗低、传输数据快等优势,支持AT 语言的同时,只要通过智能云物联网平台提供的开源通信协议,就可以完成与云服务器的连接。这是选用ESP8266WiFi 模块作为桥接与云服务器通信的设计依据。远程控制模块主要完成从主控系统获取的信息上传到云端服务器,同时也可以接收手机APP 的控制指令发送给主控系统。为确保系统的高效运行,WiFi 模块需要实时与服务器保持联系。电路调试时,只需要将智能云开发平台提供的固件刷到ESP8266 串口WiFi 模块的Flash 中即可实现网络连接功能。
基于STM32 智能家居管理系统软件设计包括室内温湿度、照明强度、烟雾等有毒气体的数据采集、液晶屏的数据显示等程序的编写。主程序设计为循环执行结构,可根据语音指令和手机APP 指令产生的中断响应,STM32 芯片会进入相应中断子程序中完成信息处理。
该系统启动后,首先需要完成包括WiFi 模块、语音模块等外部硬件的初始化。主函数主要是实现采集烟雾模块的数据,通过STM32 完成对温湿度模块数据的读取,并对数据进行处理和转换,然后驱动OLED 液晶屏在相应位置显示相关数据,WiFi 通信模块会自动将相关数据上传到威途云平台服务器;手机APP 接入智能云平台服务器实时远程通讯获取相关信息。中断处理主要是通过智能云平台将控制指令从手机APP 发送到STM32 单片机;不断查询WiFi 模块,查看智能云是否有新的指令发送;当接收到新的指令时,输入中断处理子函数,根据不同的指令STM32 控制系统的相关功能模块。同时在智能终端上设置相应的界面供用户查看,从而实现对环境信息的监控。主程序流程图如图2 所示。
图2 主程序流程图
温湿度传感器数据采集程序设计是STM32 和DHT11 单总线通信完成,在MCU 发出一次启动信号后,DHT11 由低功率向高速度转变,并将40 比特的传感器内湿度和温度数据以 I/O 形式传送至单片机,进行数据采集和校验。DHT11 在等待主启动信号完成后,发出应答信号,并获取一次信号,使用者可以获取部分数据。DHT11 在没有收到STM 的启动信号下,不能收集温湿度,流程图如图3 所示。烟雾传感器数据采集程序设计思路可参考温湿度传感器数据采集程序设计。
图3 温湿度数据采集流程图
语音识别模块LD3320 和STM32 通过串口通信,对LD3320 芯片进行唤醒词和标志词设定,在STM32 编写程序进行串口通信。通过语音(一级指令)唤醒词唤醒LD3320,传达具体操作指令(二级指令)后再通过STM32进行完成控制,流程图如图4 所示。
图4 语音识别程序流程图
单片机和ESP8266 之间采用串口中断方式进行通信,为方便主函数调用,需先将命令进行解码并存储在相应的二维数组中。WiFi 串口在接收数据的时候,首先是检测串口有没有发生中断,如果发生了中断,就开始启动接收数据到缓存;接收完毕后通过程序算法解析或者有效的控制指令。设计时需注意,为避免数据信号重复,一旦运行通讯子程序,则需要关闭中断响应。
本设计选用集成度高、易开发的机智云物联网开发平台,来实现手机用户APP 和互联网服务器的搭建开发。机智云AIoT 为APP 与设备间数据交换提供一个良好的物联网开发平台,从而缩短了开发时间,提高设计效率,也降低系统设计的难度。设计任务是用户可以通过该APP 实时查询家电状态和居家环境,同时也可以发送控制信号至服务器,随时随地操控家用电器设备。
在制作出实物之后并安装好各个配件之后进行配网操作。打开电脑并连接网络,开启个人热点(个人热点频段选择2.4GHz),手机连接电脑热点,开始进行配置操作,在机智云的“我的设备”页面中选择一键配置,输入电脑热点账号及密码,进行下一步操作,对设备通电之后进入到搜索连接设备的页面,搜索完成后就出现了本设备——智能家居监测系统。如图5 所示。
图5 已连接设备图
各传感模块利用WiFi 模块将家中的温度、湿度等数据传送到机智云云端,通过手机APP 可以查看温度、湿度等数据,也可以通过手机APP 远程控制房间的设备,例如厨房灯、客厅灯、卧室灯、电扇等电器,模块调试显示界面,如图6 所示。
图6 智能语音系统APP 软件界面图
点击进入智能家居监测系统,就出现了具体的控制家居设备的操作页面、设置阈值页面以及环境中各项监测数据显示页面。如图7 和图8 所示。
图7 控制家居设备操作页面
图8 设置阈值、数据监测显示页面
本文的智能家居管理系统以STM32F103C8T6 为主控制器,基于信号采集、无线通信等技术,完成了室内温湿度、照明强度、烟雾等有毒气体的数据采集,语音智能识别和报警处理等模块软硬件设计及调试。综合应用机智云物联网开发平台,实现了家用电器通过WiFi 模块与手机APP 的互联互通。系统具有非特定人的语音识别系统识别、手机远程操作等功能,对居家环境进行实时监测和家用电器进行实时调控,实现了智能家居的网络智能化控制。