基于stm32的智能家居系统设计与实现
本文研究了一种基于STM32的智能家居系统设计与实现。系统采用STM32F103VC8T6为主控制器,集成温湿度检测、烟雾报警、指纹门锁、远程控制等功能模块,通过机智云平台实现手机APP远程监控。硬件设计包括DHT11温湿度模块、MQ2烟雾传感器、AS608指纹模块等;软件设计实现环境监测、智能控制、语音提示等功能。测试结果表明系统能实时响应指令,准确采集环境数据并报警,各模块协同工作稳定。未来可
2 系统分析
2.1 需求分析
2.1.1 市场需求
由十九大的报告可以看出,人们的生活水平在上升,人们生活所需物质丰富。为此,人们将会有更多更好的物质需求。衣食住行与人们密切相关,智能家居就是“住”的表现之一。未来智能家居能够普及到每一个家庭,到那时人们不会觉得智能家居是虚幻的、难以理解的,它是被人们理解和所需的。目前家居都在向智能靠拢,就拿洗衣机来说从当初的半自动升级为全自动,而现在正在向智能靠拢,用户可用手机APP选择洗衣机的洗衣、甩干、消毒等功能。
随着科技发展,智能家居将会进一步完善。智能家居的研发成本和生产成本将会越来越低,这也就预示着将来大部分家庭都会进入智能化时代。到那时,智能家居系统将会更加智能,它将会被植入AI技术实现人工智能,从而摆脱事事都需要人为操作的时代,如它可以根据大数据分析用户每个时间段在家里某个房间停留的时间长度、时间段、频率,并结合当前温湿度,通风条件等因素来智能控制房间里的各种参数,实现AI智能管理。
在未来随着智能家居的智能化程度提升,智能家居的市场需求将会越来越广阔,智能家居技术相当于在家雇佣了一个电子保姆,全年无休为用户提供最全面的服务。
2.1.2 功能需求
智能照明控制:灯光是一个家庭中最基础的部分,生活中经常会出现忘关灯现象,用户就希望能够实现远程控制灯光的亮灭,减少能源损耗。
智能门窗控制:每天手动开启窗帘太过于繁琐,并且用户希望外出时可通过APP查看窗帘状态,根据用户需求实现远程控制,可以使用APP按照百分比来控制窗帘。进入家里需要用到钥匙开启,有时忘带钥匙锁在门外,用户希望通过密码锁、指纹锁或手机APP控制门的开启与关闭,能够有效解决被锁门外的情况。
智能环境控制:家居环境是否舒适是判定智能家居系统好坏的重要指标之一。气候随着季节而变化,温度湿度都会发生变化,用户希望系统能够实时采集室内温湿度,并将温湿度显示在屏幕上,用户可根据自己需求控制室内温度和湿度。目前绝大部分家庭都在使用煤气,室内气体环境监控也被人们需求,人们希望能够实时监测室内煤气是否泄漏,是否失火。系统将警报实时上报,用户可以第一时间知道警报信息。
2.2 可行性分析
2.2.1 技术可行性分析
(1)本次课题设计外设用到的GPIO口较多,STM32F103VC8T6有100引脚,其最高主频能够达到72MHz,具有处理能力强、处理效率高等特点。因此选择STM32作为主控。
(2)本次课程设计运用到的外设都是市面上常见的模块,能够稳定运行于STM32开发板。
(3)通过功能需求分析本次设计需要用到温湿度测量技术、烟雾测量技术、指纹识别技术、远程控制等技术,利用远程技术将数据上传云端,然后下发给APP,各外设与STM32使用SPI、UART通信,所用技术都是学校和公司实习所学。
3 智能家居硬件设计
通过技术可行性分析,确定本次课题设计的功能是STM32采集温湿度数据,并在LCD屏幕上显示温度和湿度;采集烟雾数据实现报警功能;采集指纹实现指纹开锁功能;语音播报模块在系统中充当提示工具;通信模块实现用户与单片机之间的远程交互。
3.1 总体设计
根据课题设计功能描述,设计智能家居系统,此系统主要架构通过STM32采集温湿度数据上报给机智云,并使用LCD显示温湿度;指纹模块控制门的开、关;采集烟雾值监控家居环境;APP端显示温湿度,可控制门、窗帘和LED灯。如图3-1是智能家居系统架构图。
图 31智能家居系统架构图
根据图3-1,最终确定本次实验用到的外设模块分别为DHT11温湿度模块、MQ2烟雾模块、AS608指纹模块、LCD模块(JXL12864)、语音播报模块(JQ8900)、LED灯、ESP8266通信模块以及步进电机。
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)