基于stm32的智能家居系统设计与实现
本文设计了一款基于STM32的智能家居系统,包含温湿度监测、烟雾报警、指纹门锁、语音提示和远程控制功能。系统采用模块化设计,包括DHT11温湿度模块、MQ2烟雾传感器、AS608指纹模块等硬件组件,通过ESP8266连接机智云平台实现远程交互。软件设计实现了灯光控制、环境监测、门禁管理和窗帘调节等功能,并支持APP远程操作。测试结果表明系统响应迅速,各模块协同工作良好,具备实时报警和状态提示功能。
3 智能家居硬件设计
通过技术可行性分析,确定本次课题设计的功能是STM32采集温湿度数据,并在LCD屏幕上显示温度和湿度;采集烟雾数据实现报警功能;采集指纹实现指纹开锁功能;语音播报模块在系统中充当提示工具;通信模块实现用户与单片机之间的远程交互。
3.1 总体设计
根据课题设计功能描述,设计智能家居系统,此系统主要架构通过STM32采集温湿度数据上报给机智云,并使用LCD显示温湿度;指纹模块控制门的开、关;采集烟雾值监控家居环境;APP端显示温湿度,可控制门、窗帘和LED灯。如图3-1是智能家居系统架构图。
图 31智能家居系统架构图
根据图3-1,最终确定本次实验用到的外设模块分别为DHT11温湿度模块、MQ2烟雾模块、AS608指纹模块、LCD模块(JXL12864)、语音播报模块(JQ8900)、LED灯、ESP8266通信模块以及步进电机。
结合功能需求和系统架构图,可将整个系统使用的硬件分为四个模块,分别为灯光模块、环境模块、门控模块、窗帘控制模块。表3-1列举出各模块所需外设。
3.2 模块硬件设计
3.2.1 通用模块硬件设计
根据表格3-1可得知,系统模块所需外设中有两个通用模块,分别为通信模块和语音播报模块。语音模块在系统中起辅助功能,通信模块功能是与机智云通信的介质。
表 31 系统模块所需外设
系统模块 涉及到的外设模块
灯光模块 LED JQ8900语音播报 ESP8266 按键
环境模块 DHT11温湿度 JQ8900语音播报 ESP8266 MQ2烟雾 LCD
门控模块 步进电机 JQ8900语音播报 ESP8266 指纹模块 按键
窗帘控制模块 步进电机 JQ8900语音播报 ESP8266
JQ8900语音播报模块支持MP3、WAV硬件解码,支持FAT文件系统。JQ8900拥有24位DAC输出,并且其内部采用DSP硬件解码。并且控制模式多样,不仅支持按键控制,而且支持串口指令模式。程序员可以通过串口发送相关指令达到语音的多样化控制,如顺序播放、循环播放、指定播放等功能。图3-2是JQ8900与STM32连接的原理图。
图 32 JQ8900应用原理图
4 智能家居软件设计
智能家居逻辑由以下几点构成:
灯光模块设计:用LED灯模拟家庭灯光,用户通过APP控制LED的亮灭,开或关灯操作完成后语音提示当前灯光状态。
环境模块设计:MQ2烟雾传感器检测厨房CO是否泄漏,如果浓度超标开启警报灯,将警报信息上传机智云,并播报警报信息,当警报信息处理后用户可通过按键关闭警报灯。
利用定时器每小时采集一次温湿度数据,将温湿度数据上报机智云并且显示在LCD屏幕上,并且判断温度是否在10℃-29℃之间,如果不在此范围则播报相应的提示信息,同样判断湿度是否在30%-70%之间,如果不在此范围则播报相应的提示信息。
门控模块设计:通过按键、指纹、APP控制门的开/关。当使用按键开门时,程序首先判断门的状态,实现开门或关门操作,并将门的状态上报机智云;APP也能够控制门的开启和关闭;指纹识别只能实现开门功能,当指纹识别成功时,语音提示验证成功,并且判断门是否打开,如果门关闭则执行开门操作;如果门已打开则语音提示门已打开;如果指纹识别失败则提示验证失败,不进行开门操作。
窗帘控制模块设计:APP可以通过百分比来控制窗帘打开程度,操作完成后语音提示操作完成。
APP:本次实验中使用机智云官方提供的APP,通过为ESP8266配网后,APP能够根据云端下发数据点创建视图,视图以云端的数据点为准。
4.1 模块软件设计
4.1.1 通用模块软件设计
本次智能家居应用设计是基于机智云平台开发的,如果要实现远程控制,就必须要实现工程接上机智云平台。实验中用ESP8266模块作为桥梁接入机智云,因此需要对ESP8266进行配网,配网模式有多种。
通信模块与STM32使用串口通信,为保证能够配网成功,就必须保证ESP8266与STM32之间的串口通讯是正常的,STM32与ESP8266之间的串口设置波特率为9600bps、无硬件流控制、无奇偶检验、1个停止位,数据发送格式为大端模式。
通信数据包格式分为:包头+包长度+命令+包序号+ Flags+有效负载+校验和。作为发送方除了包头,如果其他数据出现0xFF,需在0xFF后添加0x55,作为接收方遇到0xFF后将0xFF后面的0x55移除。STM32每隔一段时间将会上报当前状态,其数据包格式为:包头+包长度+命令+包序号+flags+校验和。图4-1是发送方的代码实现。
图 41发送方代码实现
机智云官方提供两种方式为ESP8266配网,通过串口发送SoftAP(0x01)或AirLink(0x02)指令,让ESP8266进入配网模式,配网成功后STM32可通过ESP8266对接机智云。
语音播报模块利用是利用串口发送指令控制指定语音播放,语音命名格式为四位数,如“0001.mp3”。一个完整的数据包共5个或6个字节。4-2图是播放特定语音的函数流程图。
图 42语音播报流程图
5 系统测试
系统测试流程分为以下几个步骤:
(1)灯光模块测试:用APP下发数据测试,控制灯光亮灭,同时聆听语音播报内容,检测播报内容是否正确。
(2)环境模块测试:DHT11温湿度模块,首先利用串口打印温湿度数据,确认DHT11温湿度读取函数是否编写正确,然后下载系统程序,将温湿度数据显示在LCD上,并上报机智云。观察LCD内数据与APP端数据是否一致。
(3)门控模块测试:测试按键、指纹、APP同时对门进行操作,观察是否出现冲突。
(4)窗帘模块测试:首先测试窗帘全部收拢时的计数值,然后测试APP能否实现百分比控制窗帘。
5.1 灯光模块测试
图5-1是APP端画面,图5-2是用APP点亮的客厅灯。测试过程中发现,如果频繁切换LED灯状态,LED和语音播报能够快速响应,做到系统的实时性。在频繁改变LED状态的过程中语音播报会打断上条正在播放的语音,做到实时播报。
图 51 APP开启LED灯
图 52 客厅灯
5.2 环境模块测试
MQ2烟雾传感器测试:用香烟测试MQ2烟雾传感器的温湿度灵敏度,当遇到浓烟时触发警报,此时语音播报警报信息,同时开启警报灯,并将警报信息上传机智云,APP端会弹出警报信息。如图5-3是烟雾报警灯开启状态,图5-4 APP弹窗显示警报信息。
图 53 烟雾报警灯
文章底部可以获取博主的联系方式,获取源码、查看详细的视频演示,或者了解其他版本的信息。
所有项目都经过了严格的测试和完善。对于本系统,我们提供全方位的支持,包括修改时间和标题,以及完整的安装、部署、运行和调试服务,确保系统能在你的电脑上顺利运行。
更多推荐

所有评论(0)