项目摘要:本项目以智能家居为主题,基于ESP8266的机智云平台控制系统,利用机智云平台和 ESP8266 WiFi模块、红外发射模块、STM32核心板、DHT11温湿度传感器模块,完成了与手机APP的通信交互、数据采集和显示的设计。通过手机APP实时查看传感器采集的温湿度数据,设计的红外发射模块模拟空调遥控器功能,使用手机APP控制红外发射模块发射调制信号实现对空调的开关控制,此外,设计还实现了对LED灯的控制,通过手机APP就可控制其亮灭。
引 言
近年来,智能家居行业的规模不断扩大,在物联网智能家居产品提供服务的同时,用户对传统智能家居产品的需求也在不断更新。产品功能和销售价格已经成为消费者的首要的参考指标。本设计针对物联网智能家居产品的功能和成本方面,设计了一款利用机智云平台,使用STM32F103RCT6结合ESP8266WiFi模块进行数据传输,实现对LED的智能控制、温湿度数据的采集和显示、以及红外信号的发送,实现了对家居的智能控制。
1
总体设计方案
考虑到外设中需要较大的驱动能力和较大的内存存储空间才能实现系统运算,故结合本设计的需求,本设计通过使用STM32F103RCT6作为主控制器,使用ESP8266WiFi 模块作为单片机与上位机系统间的通信模块。单片机采集外部的温湿度信息、空气中烟雾的浓度信息等,通过 WiFi 模块连接云平台,借助云平台与手机终端 APP 将信息传递给用户。用户通过手机终端APP 按键,向云平台传输字符信号,云平台通过 WiFi 模块向单片机系统发送控制指令,单片机接收到指令后,执行相应的操作。设计框图如图1所示。
2
系统硬件设计
本设计的硬件部分包括STM32F103RCT6开发板模块、ESP8266WiFi模块、红外发射模块等。
2.1 stm32f103rct6开发板
本设计使用的是STM32F103RCT6作为MCU,它的板载资源包括:2个高级定时器、48KBSRAM、256KBFLASH、2个基本定时器、4个通用定时器、2个DMA控制器(共12个通道)、5个串口、1个CAN、3个12位 ADC、1个12位 DAC及51个通用IO口等。相较与51单片机,其拥有更多的I/O口,功耗小,芯片性价比极高,板子的原理图如图1所示:
2.2 ESP8266WiFi模块
ESP8266 WIFI模块是应用最广泛的WIFI模块之一。ESP8266模块是一款优质的WIFI模块,不需要太多WIFI知识也可以上手。同时,ESP8266模块也是一个WIFI转串口的设备,只需要对串口进行编程和使用,就可以实现透传。
关于传输的方式,本设计采用的是透传模式,采用透传模式,可以避免每发送一次数据需要再发送一次AT+CIPSEND=的指令,使得使用体验更加方便,因此模式设置为透传模式,退出透传模式就给指令“+++”即可,
ESP8266与stm32的接线并不复杂,对应接线图如图2所示。
2.3 红外发射模块
红外通信的本质是对二进制数字信号进行调制和解调以使用红外通道进行传输,而红外通信接口是红外通道的调制解调器。
并设计通过发射不同的键值来控制空调的状态,ESP8266WIFI模块连接到红外发射管,根据接收到的信息发射红外线,如关闭空调、启动、制冷、制热、等等空调遥控功能的实现。要实现这个功能,首先要获取空调遥控器板上红外按钮的值。 ESP8266 使用红外接收器获取空调的红外键值,并将该红外键值烧录到 ESP8266WIFI 模块中。然后将ESP8266连接到红外发射管。
2.4 DHT11温湿度传感器模块
DHT11传感器采用简化的单总线通信,即只有一根数据线,系统中的数据交换,控制均由单总线完成。
DHT11是一款具有已校准数字信号输出的温湿度复合传感器。 它应用专用的温湿度传感技术和数字模块采集技术,可以实现高精度的测量值,具有可靠性较高、成本低适用范围较广、响应速度快、抗干扰能力强等特点。
它包含一个电阻式水分测量元件和一个NTC温度测量元件,并连接到一个单片机。 单片机等微处理器的电路连接可以实时采集局部湿度和温度。只需要一个 I/O 口,一个简单的单总线就可以实现 DHT11 和单片机之间的通信。传感器内40个bit的湿度和温度数据一次发送到单片机,并通过校验和的方法对数据进行校验,有效保证了数据传输的准确性。 DHT11 的功耗非常低,在 5V 电源电压下平均最大电流为 0.5mA。
DHT11 电路图及连线方式如图3所示,传感器的工作电压范围为3.3~5.5V,数据传输总线与stm32f103rct6的IO口相连接用于数据通讯和同步,采用单总线数据格式一次传送40 位数据,高位先出。
3
软件设计
3.1 WiFi传输函数
首先将STM32的Tx连接到ESP8266模块的Rx,将STM32的Rx连接到ESP8266模块的Tx进行初始化,然后设置串口中断,定义串口的发送函数,编写函数实现字符串发送功能。按下上位机APP按钮后,通过ESP8266模块向单片机发送字符指令。在单片机程序中接收到适当的符号后,将标志位的逻辑值赋给系统,在系统运行过程中,不断地扫描状态并执行相应的指令。
3.2 ESP8266固件烧录
将设备接入机智云平台首先需要对ESP8266WiFi模块进行固件烧录,可以直接在官网免费下载使用,烧录完成后,将采集到的数据可以实时上传到平台服务器。
先在烧录模式下将GPIO0接地,正常模式悬空,GPIO2也是悬空。选择对应的固件包,因为本设计是MCU开发,所以需要将DoNotChgBIN打上勾。最后点击START,开始下载。下载完成后将GPIO0连接的GND拔掉进入正常模式,然后关闭烧录固件模式,进行网络配置即可。
4
结论
本设计采用STM32F103RCT6作为主控模块,配备红外发射模块和DHT11温湿度传感器,传输方式采用ESP8266 WiFi模块。采集的温湿度数据发送至机智云平台。数据可以实时显示在用户的手机APP上。此外,红外发射模块和LED模块用作模拟房屋的空调和灯具。 APP对其进行管理,实现手机APP与数据的交互。