基于STM32和ZigBee的智能家居控制系统
2020-01-16陈新奋彭银桥
文/陈新奋 彭银桥
1 引言
随着科学技术的进步及人类自身生活水平与生活质量的提高,人们对于家居设备的智能化要求也越来越高,家居智能化已成为一种必然趋势。自从世界上第一座智能大厦在美国诞生以来,智能家居一直备受关注,其复杂的布线和高昂的价格让人望而止步,而无线通信技术的发展和智能手机的出现给智能家居的普及带来了新的生机。智能家居是指利用先进的计算机网络通信技术、嵌入式技术和传感控制技术将与家居生活有关的各种子系统,有机地结合在一起,通过统筹管理,使家居生活更加舒适和安全。
针对传统有线智能家居系统,网络布局复杂,灵活性与拓展能力差,不容易改造升级。运用新技术开发一种廉价、兼容性强、和结构简单的智能家居系统很有必要。为此设计一种基于STM32为核心处理器,通过与4G-LET通信技术、ZigBee组网通信结合的智能家居系统。用户实现了家居中各传感终端部件的数据收集,并根据状态和需求设置参数,实现对家居内环境、电器、报警子系统监控。此系统实现了家居的智能化操作、实时监控检测家居环境数据信息、安防报警和远程控制家电设备等功能。
2 系统设计
2.1 系统总体设计
图1:系统总体设计结构图
本文设计的系统主要由STM32主控制器、ZigBee无线传感网络、无线通信网关、远程服务器、数据库、各类智能终端、上位机等七大部分共同组成的家居设备智能化管控系统。图1是系统总体设计结构。系统可通过4G网络、ZigBee无线传感网络实现信息的互联互通。用户可以通过上位机或直接语音交互的方式向STM32主控制器发送指令,STM32主控制器接收用户命令后,通过串口把要操作的节点和命令发送给协调器,协调器接收消息后,判断用户是切换节点还是操作当前节点,再转换成命令消息,并转发相应的消息到对应的节点,节点接收消息并解析消息,从而来随时获取家居情况控制家居相应设备状态。建立的数据库是放在远程服务器上的,通过电脑可以随时调用出家居中的设备状态及近期室内的环境信息。
2.2 系统功能设计
智能家居控制系统设计主要包括室内环境检测、安防监测、家居设备状态控制3个主要模块。
室内环境检测单元包括:室内温度、湿度检测、污染物的气体浓度检测、光照强度检测和当前天气状况检测。ZigBee终端将这些信息联网发送到云服务器中。
安防监测单元包括:红外热释电监测、指纹验证和自动报警。如果家里出现了异常状况(如发生火灾),4G通信终端将会给主人拨打电话或发送短信通知。配备的指纹门禁终端能够提前录入主人指纹,并且通过红外热释电监测是否有人靠近门口,当有人靠近时则要求验证指纹。若指纹验证失败,则进行蜂鸣器报警以保证安全。
图2:STM32F103ZET6核心控制电路框图
图3:为DHT11传感模块的硬件电路图
家居设备状态控制单元包括:灯光亮度控制、窗帘控制、家电控制等。用户可以通过语音控制或上位机控制,进行家居基础设备有关命令的下达,中央处理器在接收到命令后,通过ZigBee模块将有关信息传递给智能终端,实现命令在智能终端上的具体体现。
3 系统硬件设计
3.1 主微处理器设计
本系统的硬件部分的核心微控制器采用的是意法半导体公司(ST公司)推出一款以ARM Cortex-M3为内核的STM32F103ZET6芯片,其最高72MHz工作频率,在存储器的0等待周期访问时可达1.25 DMips/MHz;片上集成256-512KB的Flash存储器,高达的SRAM存储器;多达9个通信接口,其中2个I2C接口,3个USART接口(支持ISO7816接口,LIN,IrDA接口和调制解调控制),2个SPI接口(18M位/秒),CAN接口(2.0B主动),USB 2.0全速接口;多达3个同步的16位定时器,每个定时器有多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道,达 140个具有中断功能的 I/O 端口。与其他单片机相比拥有性能高、成本低、功耗低等特点,可满足系统要求。图2是这个芯片在本系统硬件电路中的核心控制电路框图。
3.2 4G通信模块SIM7600CE
本系统的SIM7600CE是一款支持移动、联通和电信4G网络的高度集成化模块,具有性能高,成本低和功耗低等特点。利用该模块可以使远程控制端与家庭中网络相互连接,主体控制器和远程控制终端能够相互通信,发送控制指令,实际功能在操作中效果良好。
3.3 无线传输ZigBee模块
ZigBee技术是一种非常优秀的双向互通无线通讯技术,其技术方案是介于蓝牙技术和无线标记技术之间,它广泛应用于简单、低速、短距、少耗能、低成本的多种电气信息设备间的数据交换传递,所以ZigBee技术非常适用于智能家居系统。系统采用TI公司生产的CC2530芯片作为ZigBee模块的CPU,该芯片整合了 ZigBee RF前端、内存和基于 51内核的微控制器等。CC2530是广泛应用于智能家居系统的数据传输,具有灵敏度高和干扰性强,以及成本较低的优势。
3.4 智能语音模块设计
本系统采用的SYN7318语音模块是由一款龙邱科技公司最新推出的语音控制芯片。SYN7318中文语音交互模块集成了语音识别、语音合成和语音唤醒功能模块、是通过UART接口通讯方式接收命令帧。语音识别控制终端是用户与该家居智能控制系统的主要交互方式,用户可以通过语音唤醒功能实现语音识别,通过从云端返回的字符串,判断出用户的指令,把命令发给服务器,由服务器把命令转发给已上线的主控制器端,从而执行用户命令,实现智能家居的语音控制。例如调整当前室内亮度、开关电灯、开关电动门、开关窗帘、开关和设置空调、开关加湿器、开关排气风扇、开关排插、拨打电话、发送短信等等。同时,该终端还会做出相应的语音反馈,方便主人了解指令是否传达成功。
3.5 室内环境监测设计
该部分设计的功能用于监测家居室内的温度、湿度和光照强度等,通过采集的各类信息进行分析处理,当室内湿度太低时,加湿器会自动打开以增加湿度;当室内亮度不足或者过亮时,可变亮度灯和遮光窗帘会自动调整,以保持室内光强恒定;
幸好,有一个同事,帮了我很多忙。还有一些朋友,时不时来看我;出院后,他们带着我玩,外地和本地。抑郁症患者最重要的是多一些交流和沟通,少一个人在房间里闷着、胡思乱想。身边朋友们的好,是一种拯救。也因此,对所有人感恩,感激于每一个对你无偿伸出援手的人,还有那些不落井下石,给予只言片语安慰和鼓励的人,不仅是一种自觉的素质,更是一种必不可少的习惯和品性。
湿度传感器采用DHT11,DHT11是一款有已校准数字信号输出的温湿度传感器。其精度湿度+-5%RH,温度+-2℃,量程湿度20-90%RH,温度0~50℃。具体的电路模块设计策略为:DHT11的3脚连接ZigBee的IO引脚,1脚连接 3.3V-5V直流电源端,2脚接GND。图3是DHT11传感模块的硬件电路图。
光传感器采用GY-30, GY-30采用ROHMBH1750FVI芯片,基于标准NXP IIC通信协议,可对广泛的亮度进行1勒克斯的高精度测定,供电范围3.3V-5V,光照范围0-65535lx。具体的电路模块设计策略为:GY-30的2脚连接ZigBee的IIC总线时钟引脚, 3脚连接ZigBee的IIC总线数据引脚,1脚连接 3.3V-5V直流电源端,4脚接GND。图4是GY-30传感模块的硬件电路图。
3.6 消防报警设计
该部分设计的功能用于实时监测家居室内的烟雾浓度,根据预设好的阈值进行报警提示或静默运行,以提升用户室内烟雾浓度是否超标,以此作为消防报警系统是否运行的参照。选择MQ-2烟雾及可燃气体传感模块,该传感器共4个引脚,其中2个用于检测信号的传输,2个用于电源和地线的连接,结构简单,成本低廉,能够实现对烟雾、液化气、酒精挥发气体的检测。具体的电路模块设计策略为:MQ-2的3脚连接ZigBee的IO引脚,1脚连接 3.3V-5V直流电源端,2脚接GND。图5是MQ-2传感模块的硬件电路图。
3.7 系统电源管理设计
图4:为GY-30传感模块的硬件电路图
图5:为MQ-2传感模块的硬件电路图
图6:电源稳压电路原理图
为了增加系统的可靠性和安全性,在城市电网供电的基础上增加电池供电来降低系统因市电断电造成的故障。当外部电源断开时,继电器内部导通,由电池给外部系统供电,当外部电源接入时,继电器内部关闭,电池和系统电源之间断开,外部电源对系统供电。图6是电源稳压电路原理图。
增加了切换电路的设计,让家居系统在意外停电的瞬间保存所有家居设备的工作状态以及传感器采集回来的数据,并在复位后稳定恢复所有数据。
4 系统软件设计
4.1 Linux系统中的Web服务器搭载
远程服务器采用阿里云公司的阿里云服务器,它提供可扩展的计算容量,且拥有公网唯一IP,理论上在任何地方只要能连接因特网,就可以与服务器进行通信。通过阿里云服务器,我们可以快速部署应用程序,并使用CPU、内存、硬盘等资源。我们的服务器是在Linux Centos7操作系统下的Socket编程实现的,所有的函数均来自Linux下的Socket函数库,利用Socket进程和IO流等技术与家中的设备、上位机程序等建立连接进行通信。
图7:上位机与主控通信的流程图
图8:ZigBee协调器程序流程图
4.2 上位机交互方案
Web端软件方面,我们使用C#编写了上位机与云服务器通信。主要起到远程监控家居环境数据信息,对家居的设备发送控制命令。图7是上位机与主控通信的流程图。
4.3 ZigBee协调器设计
图9:远程服务器工作框架
4.4 ZigBee终端节点设计
ZigBee终端节点程序主要是实现接收协调器发来的信息、传感器收集的数据和控制相应设备功能。终端节点上电后,会进行硬件电路的初始化,然后搜索是否有ZigBee无线网络,如果有ZigBee无线网络再自动加入,然后接收发送数据到协调器,判断消息指令,执行相应的控制命令。图9是ZigBee终端节点程序流程图。
5 系统测试
整个系统在硬件平台搭建好后,进行软件的编程和调试后,需要对系统进行一个全面的测试,来验证系统功能的实现和稳定性。
测试过程中,在上位机的控制界面里,进行相应的操作,就可以实现对空调、排气扇、加湿器、电动窗帘、电灯和插座等家居设备控制,每种家电设备都进行了30次开关,结果表明设备响应及时,开关灵敏度较好。
为了保证家居智能控制系统的安全性,配备的指纹门禁终端能够提前录入主人指纹,并且通过红外热释电监测是否有人靠近门口,当有人靠近时则要求验证指纹。若指纹验证失败,则进行蜂鸣器报警以保证安全。系统还能够通过采集的各类信息进行分析处理,当室内湿度太低时,加湿器会自动打开以增加湿度;当室内亮度不足或者过亮时,可变亮度灯和遮光窗帘会自动调整,以保持室内光强恒定;发生煤气泄漏或污染气体浓度太大(达到一定阈值)时,排气风扇会自动打开进行排气,同时报警以及远程通知主人;当室外天气下雨时,如果大门开着,则会自动关闭大门,防止流水进屋;在夜间,当室内的红外传感器感应到有人时,灯光会自动亮起,做到人在灯亮,人走灯灭等等。
6 结束语
通过糅合现有的传感检测技术和自动控制技术,借助4G-LET网络、互联网和云服务器,结合 ZigBee 短距离无线组网通信设计了智能家居控制系统。系统实现了家电设备和家居环境的远程和实时监控。系统具有结构简单、控制精确、扩展性和兼容性强及成本低等优点,因此系统的市场应用前景较好,对于智能家居的发展具有一定的意义。