基于STM32的简易智能家居控制系统设计
2017-01-12刘榴何英昊李仁泽
刘榴++何英昊++李仁泽
摘 要:随着科技不断进步,智能化的思想也渐入人心,智能家居的应用越来越普遍。论文针对家用空调及电饭锅等设备,设计了一款基于STM32的智能家居控制系统。以STM32为控制核心,将室内的温湿度值发送至手机,并通过手机设定阈值,控制空调调整室内温湿度及电饭锅的工作时间。实验结果表明,该系统能够很好地完成工作要求。
关键词:智能家居;STM32;DHT11;WiFi
中图分类号:TP273 文献标识码:A 文章编号:2095-1302(2016)11-00-02
0 引 言
现代科学技术发达,人类在科技上有了历史性的突破,电子产品随处可见,一场电子风暴席卷而来。在新加坡有近30个社区,约5 000户家庭采用了“家庭智能化系统”[1]。智能家居设备由此变得愈加流行,深得人心。一方面,年轻人走在潮流前端,喜欢电子产品的方便快捷及其带来的舒适感,智能家居无疑成为了年轻人追求的新纪元;另一方面,老龄化日益严重,老年人对一些电子产品仍然处于陌生状态,为了方便老年人使用家用电器,智能家居也成为了家庭的不二选择。为了使人们的生活环境更加舒适,人们希望建造以住宅为平台,兼备建筑、网络通信、信息家电、设备自动化,集系统、结构、服务、管理等特点于一体的家居环境,智能家居的概念应运而生。本文针对智能家居中的空调和电饭锅,设计了一款基于STM32的智能家居控制系统,以STM32单片机为控制核心,通过手机控制空调调整室内温湿度和电饭锅的工作时间。实验结果表明,该系统能够很好地完成工作要求。
1 系统整体设计
该系统整体框图如图1所示。
本设计采用WiFi模块、STM32模块及温湿度传感器DHT11模块。其中STM32模块是接收和发送数据的主控模块,手机连接WiFi,通过WiFi接收DHT11检测的温湿度值后,手机设定阈值发送给单片机,单片机接收到数据后显示在LCD上。手机设定一个时间点,通过WiFi发送到单片机,当到达这个时间点后,控制电饭锅开始工作。
2 硬件设计
该智能家居控制系统以STM32为核心,通过WiFi模块与其他模块进行数据传输;DHT11采集环境的温湿度数据;手机模块进行阈值设计并发送至单片机;LCD液晶显示屏显示当前的温湿度以及手机发送的阈值;使用继电器代表电饭锅工作情况;利用可控制的小风扇实现空调降温功能。
2.1 STM32模块
STM32是兼容所有ARM工具和软件的32位闪存处理器,节能性能业界领先,在72 MHz频率下工作,功耗相比32位是市场中最低的。由于引脚多且兼容性十分优异,所以给开发者带来了最大的设计灵活性。该处理器处理速度快,内部资源相对比较丰富,所以STM32是用户的最佳选择。
2.2 ESP8266 WiFi模块
WiFi遍布全球各地,不仅传播速度快,还可以节省大量资金,受到了人们的青睐。本设计采用ESP8266 WiFi模块。ESP8266有着业内极富竞争力的封装尺寸和超低功耗技术,是一款超低功耗的UART-WiFi模块[2]。内置32位MCU,可兼作应用处理器,多样的封装样式丰富了顾客的选择。该模块应用领域十分广泛,如智能家居、掌上设备以及工业控制等,适合各种物联网应用场合,是专为移动通信设备和物联网应用设计的模块。WiFi模块的主要功能是连接手机App和单片机,把手机设定的阈值发送至单片机,单片机通过WiFi模块将数据显示在LCD上。
2.3 DHT11模块
DHT11是一款有已校准数字信号输出的温湿度传感器,采用专用数字模块采集技术,确保其可靠性和长期稳定性。该模块价格便宜,抗干扰能力强,性价比高,只占用一个I/O口,通信快,响应时间短,是苛刻场合的最佳选择[3]。DHT11模块用来测量周边环境的温湿度值,通过连接WiFi发送至手机,手机可通过温湿度值设定阈值来控制空调的温度变化。DHT11引脚连接图如图2所示。
2.4 显示模块
显示屏采用2.0tft液晶彩屏LCD,该LCD采用ILI9325驱动芯片。显示模块的主要作用是显示温湿度传感器测得的温湿度,显示手机设定的阈值以及判断环境温度是否在设定的阈值内,具有26万像素,大大提高了数据显示的图像质量。
2.5 其他硬件设计
家用电器部分主要以空调和电饭煲为研究对象,采用小风扇和LCD组合来替代空调,LCD显示空调的设定温度。当环境温度高于设定温度时,小风扇开启表示降温,LCD显示high;当环境温度低于设定温度时,小风扇停止运行,LCD显示low。电饭煲部分采用继电器来表示,设定工作时间,继电器会通过小灯亮灭来代表电饭锅开始工作和停止工作。
3 软件设计
3.1 空调部分
各模块进行初始化,手机连接WiFi后,发送阈值,DHT11读取所在环境的温湿度并发送到手机上,如果显示的温度数值在手机规定的阈值内,则液晶显示屏上显示normal,此时小电风扇不工作;如果温度高于手机设定的阈值的最大值,小风扇开始工作,降低周围环境的温度,LCD显示屏上显示high;如果温度低于手机设定的阈值的最小值,风扇不开启,LCD显示low。空调部分的程序流程图如图3所示。
3.2 电饭煲部分
各模块初始化,由定时器控制电饭煲的工作时间,以继电器表示电饭煲,继电器吸合代表电饭煲开始工作,继电器断开表示电饭煲停止工作。手机给单片机发送定时开和定时关的时间,给定一个时间开启继电器,之后开始计数,当计数到规定的数值时,继电器断开,电饭煲停止工作。电饭锅部分程序流程图如图4所示。
3.3 手机部分
手机部分利用Java语言设计了一个App,Java语言是一种跨平台、适合分布式设计的、面向对象的编程语言[4]。该App可以设定温湿度的阈值以及规定电饭煲自动工作的时间,再通过WiFi模块向单片机传输数据。手机App截图如图5所示。
4 结 语
本文设计了一个智能家居控制系统,实现了室内温湿度的测量,手机连接WiFi发送阈值控制空调温度,规定电饭煲自动工作的时间。但要达到实际应用水平,还需要进一步提高产品的性能,如安全性和稳定性,降低成本和能耗。
参考文献
[1]侯海涛.国内外智能家居发展现状[J].建材发展导向,2004,2(5):92-93.
[2]任林.带WIFI通信和RF遥控的智能门锁设计[J].IT时代周刊(论文专版),2015:77-79.
[3]韩丹翱,王菲.DHT11数字式温湿度传感器的应用性研究[J].电子设计工程,2013,21(13):83-85.
[4]王汝传.一种新型的程序设计语言—JAVA语言[J].南京邮电学院学报(自然科学版),1996(4):63-66.