基于STM32的智能家居系统设计与实现

作者: 任富民

基于STM32的智能家居系统设计与实现0

关键词:STM32;智能家居;物联网

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)26-0080-03 开放科学(资源服务)标识码(OSID) :

0 引言

科技与经济的快速发展推动了社会进步,也改变了人们的生活方式和习惯。随着生活水平的提高,人们对家居环境的智能化需求不断增长。住宅不再仅仅是提供居住功能的空间,而是人们追求更高舒适度和生活品质的场所。智能家居应运而生,旨在实现家电的智能管理,简化操作,提高资源利用效率,并降低能源消耗。同时,智能家居系统能够监控室内温湿度、PM2.5等指标,实时监测空气质量,并根据数据提供健康提示,以保障用户的生活环境。

1 系统分析

1.1 需求分析

智慧家庭概念的普及预示着未来家庭生活将发生深刻的变革,它不仅能够提高生活便利性,还开启了新的智能化生活方式。人工智能技术的应用正在推动智能家居的智能化程度不断提升。人工智能技术的融入使智能系统能够实现更精准、高效的控制,系统可以收集和分析用户在不同房间的停留时间和频率等数据,以便更深入地了解用户的行为习惯和需求,从而提供更加个性化的服务。

1.2 可行性分析

本项目选择STM32F103VC8T6作为主控芯片,该芯片拥有100个管脚,最高72 MHz主频,具有强大的处理能力和高效率[1]。项目的外围设备都是市场上通用的型号,能够顺利在STM32平台上运行。本系统将集成温度测量、烟雾检测、指纹识别和遥控器等技术,这些技术源自校园和企业的技术积累,并将应用于云端并传输至手机应用程序。

2 智能家居硬件设计

2.1 总体设计

本项目采用STM32实现温度和水分数据的采集,并利用液晶屏显示数据[2]。门控系统由指纹模块管理,同时系统监测室内烟气的浓度。手机应用程序可以根据温度、湿度等信息远程控制门窗、窗帘和LED灯光。智能家居系统框架图如图1所示。

2.2 模块硬件设计

2.2.1 灯光模块硬件设计

LED灯主要用作模拟灯光和提示灯,其对应的接口分别为PA1、PC1、PC2、PC4、PC5。LED灯可模拟家庭环境灯光,同时作为提示灯和警报灯。警报灯与环境模块配合使用,提示灯与通信模块配合使用。

2.2.2 环境模块硬件设计

环境模块包括温度、湿度、烟雾、语音和液晶屏[2]。本系统选用DHT11(温湿度传感器)、MQ2-135(烟雾传感器)和12864(液晶显示模块)。DHT11传感器精确检测室内温湿度,通过STM32与ESP8266通信,用户可以通过手机应用程序调整环境参数,以确保室内环境舒适度[3]。在智能家居中,精确的温湿度控制至关重要,DHT11的数据监测和预防异常,实现智能舒适环境。STM32 通过PA4 单总线与DHT11 通讯,DHT11的DO端口同时负责数据发送和接收。

2.2.3 窗帘控制模块硬件设计

窗帘控制由步进电机、JQ8900 语音播报、ESP8266 共同完成开启和关闭窗帘操作,APP 通过ESP8226下发窗帘开启程度百分比,控制窗帘状态。

2.2.4 门控模块硬件设计

门控模块外部配置有步进电机、JQ8900语音播报、指纹模块、ESP8266通信模块和按键,其功能涵盖指纹识别、按键操作、APP控制开关及JQ8900语音提示。指纹系统采用AS608光学指纹系统,内置内存,断电不丢数据,可读取300个指纹。步进马达选择5-4相,可调节转动角度,扭矩大,保证窗户平稳转动[4]。驱动芯片选择DRV8833,具有低功耗、短路和故障保护等性能,稳定性好,可稳定驱动步进马达。

3 智能家居软件设计

3.1 模块软件设计

3.1.1 灯光模块软件设计

显示灯光模块由语音、LED和通信模块构成,用于理解灯光功能。LED操作被封装为可调用的函数。通过LED与JQ8900模块的配合,实现语音提示,同时支持功能调试。

3.1.2 环境模块软件设计

DHT11系统通过单总线控制,响应启动信号进入休眠。主信号启动后,开始发送信号,总线设为输入等待DHT11响应。接收数据后,总线拉高结束信号。数据包含4个字节的整数和小数,但系统仅处理整数部分。

3.1.3 窗帘模块外设软件设计

窗帘模块实现百分比开启功能,设定步进电机总步数为定值,通过数学转换分为100份。操作函数用全局变量存取当前窗帘开启程度,判断目标值选择开或关操作。函数流程图如图2所示。

3.1.4 门控模块软件设计

该门控制系统可通过按键、指纹和APP控制开关,具备开门、关门、指纹识别、录入指纹和按键初始化功能[5]。根据模块功能描述进行应用编程。

打开功能:门已开时不操作,门关后执行打开。

闭合功能:门已合时不操作,门开后执行关门。

系统支持指纹开锁,使用AS608指纹识别。检测到指纹时,STM32指令AS608获取指纹,并搜索指纹库比对。比对成功则开门,失败则退出。录入指纹时,AS608向用户发出两次采集指令,判断两次指纹是否相同,若相同则保存至指纹库。

3.2 系统功能设计

智能家居系统按需调用功能,CPU无须持续检测操作请求。本系统采用中断机制实现灯光、环境、门控和窗帘模块的操作。

3.2.1 灯光模块系统功能设计

智能家居逻辑体系中描述灯光是通过App端控制。此过程需要用到ESP8266下发云端的数据,通过switch进行分支选择,实现对应功能。

3.2.2 环境模块系统功能设计

定时器断续和外接断续用于环境模块的系统功能。MQ2烟雾传感器检测有毒气体超标时,触发外部中断0,实现警报灯启动、信息上报机智云和语音报警。

当触发烟雾警报时,警报灯开启并等待工作人员处理,当问题处理完后需要关闭警报灯,并上报问题已解决。温湿度测量间隔执行,数据通过计时器每小时上传至机智云,优化功耗和硬件效率。DHT11、语音、液晶和计时器协同,失败超200次则停止。信息更新实时,通过App和液晶显示。

3.2.3 门控模块系统功能设计

在该系统中,用户可利用指纹、按键或App三种方式中断实现开/关门。系统采用指纹识别模块,具备指纹录入、删除和识别功能。设计中,利用外部中断6处理指纹鉴别。指纹检测到时,触发外部中断6,进行指纹匹配。匹配成功则开门,否则发出声音提示。外部中断6实现指纹开门功能。

3.2.4 窗帘模块系统功能设计

窗帘模块的控制方式和灯光模块的控制相似,同样是利用串口中断2接收事件类型,通过switch函数实现开/关窗帘操作。窗帘操作函数的应用图如图3所示。

4 系统的软件设计

4.1 系统软件的设计思路

软件设计分为五个部分:语音识别、蓝牙通信、环境监测、显示及家电控制[6]。运行流程包括初始化设备模块接口、串口、蓝牙、ADC、PWM通道及OLED液晶,通过传感器实时采集温湿度、烟尘浓度及探测人体红外线。

4.2 语音识别程序设计

语音识别模组程序设计主要流程包括系统初始化、载入识别关键字清单及使用者语音输入比对输出。本文还提出基于数字信号处理技术的语音指令设计方法。语音识别程序设计流程图如图4所示。

4.3 蓝牙模块程序设计

该设计包括系统初始化、蓝牙与串口初始化以及讯号传送判断过程。移动端App定义控制命令,通过蓝牙模块实现数据传输[5]。蓝牙接收手机控制信号,通过串口发至主控单片机。单片机处理控制指令,若匹配则触发家庭功能控制。Bluetooth模块与单片机经串口2传输数据。

4.4 环境监测程序设计

4.4.1 DHT11温湿度检测

温湿度探测程序的设计流程如下:首先对模块进行初始化,在开始之后,会自动采集温度和湿度,并将采集到的数据存储起来,然后由 OLED 屏幕进行调用,最后在 OLED屏幕上显示出温度和湿度的数据。

4.4.2 MQ135空气质量检测

在空气质量检测程序设计中,首先执行硬件的初始化程序,之后对 ADC通道进行数据采集,将采集到的模拟量数据经过处理、ADC转换后,最后转化为数字量数据,从而在 OLED屏幕上实时显示出来。在采集到的数据数值达到或超过设定的危险阈值时,系统会发出蜂鸣声,发出警报。

4.4.3 HC-SR501人体红外检测

人体红外线感应探测主要是在安全模式下进行。

4.5 界面显示程序设计

接口的显示有两种方式。传统方式展示家庭装置运行状况及环境参数,操作中可实时更新界面。安全模式则适用于无人时,通过人体红外线感应器侦测入侵并发出警报[7]。正常工作状态下,烟气感应器检测有毒气体超标也会报警。两种显示方式可通过按钮切换。

5 系统测试

5.1 灯光模块测试

灯光模块测试主要关注灯光是否能按照系统指令正确开关。测试时,用单片机GPIO口控制灯光,通过串口中断接收指令[3]。如灯光模块响应异常或速度慢,须进一步排查和调试。步骤如下:1) 确保灯光模块与单片机连接正确,电路接通。2) 系统发送开启指令,观察灯光是否亮起。3) 系统发送关闭指令,观察灯光是否熄灭。4) 重复开启和关闭指令,验证稳定性和可靠性。

5.2 环境模块测试

MQ2烟雾传感器测试:用香烟测试MQ2烟雾传感器的烟雾浓度灵敏度,当遇到浓烟时触发警报,此时语音播报警报信息,开启警报灯,并将警报信息上传机智云,App端会弹出警报信息。同时,对定时器计数初值进行修正,每10分钟中断一次,观测LCD与APP内部的烟雾浓度。

5.3 门控模块测试

用户可通过App录入多个指纹并选择指纹ID。AS608芯片可存储300个指纹,满足日常需求[1]。操作有声音反馈。录入指纹后,用户可通过App、按键或指纹控制门的状态,其他操作不影响门运动。门的动作期间,其他操作不会干扰当前动作,符合系统设计原则。指纹识别测试图如图5所示。

5.4 窗帘模块测试

首先测试窗帘全部收起时的计数值,值为1024,然后App端通过百分比控制窗帘的状态,每一次操作完成后,语音会提示操作完成。

6 结束语

综上所述,本文通过STM32+机智云可以进行远程控制,通过烟雾传感器可以对家中的空气进行监控,通过指纹和 App可以对门和窗帘进行智能化的控制。此外,还可以通过语音播报来对用户进行提示。

上一篇 点击页面呼出菜单 下一篇