王琰 郭燕
摘要:针对物联网家居行业日新月异的市场需求,文章提出了一种基于MCU的智能家居控制系统方案。该系统以AT89S51单片机为控制核心,通过与WiFi芯片ESP8266的通讯,采集并发送传感器信号、接收并执行手机APP的指令,实现家用电器开关的无线远程控制。
关键词:AT89S51;智能家居;ESP8266;手机APP
随着物联网及无线网络技术的发展,无线数据采集、传输因准确、快速、可靠,系统开发成本低和周期短,越来越成为研究热点[1]。本文介绍了如何通过AT89S51单片机实现家用电器开关的无线远程控制,同时从硬件和软件两个层面论述了系统方案的可行性。
1 总体设计方案
本系统通过单片机控制继电器的方式实现家用电器的通断控制,通过WiFi模块ESP8266将微控制单元(Microcontroller Unit,MCU)链接上外网,由手机APP发送信息,WiFi模块接收到信息后,再向MCU发送信号,MCU经过对信息的处理实现家电的智能控制,形成了一个控制通信网络。控制系统采用DHTir温湿度传感器和MQ-2烟雾气敏传感器检测室内环境数据,通过AT89S51进行传感器信号采集并通过WiFi模块传输到手机端显示,采用LCD液晶显示模块实时显示温湿度和每个继电器的工作状态,使用户实时了解室内环境。系统的总体设计如图1所示。手机通过安装APP文件作为上位机控制软件,登录服务器账号,连接主机(由AT89S51芯片组成)控制的UART-WiFi模块,用户根据室内环境情况对其发送指令,进行连接。单片机接收到信号控制继电器吸合或者断开实现家电开关。
2 硬件设计
2.1 MCU模块
MCU模块选用ATMEL公司的AT89S51芯片为核心的最小系统组成,AT89S51是一种低功耗、高性能CMOS的8位微控制器,在單芯片上,拥有灵巧的8位CPU和在线系统可编程Flash,为众多嵌入式控制应用系统提供高灵活有效的解决方案。本设计需要使用P3.0和P3.1 实现与WiFi模块的串口通信,其他I/O分别用于连接继电器控制信号、传感器数据信号以及LCD液晶显示数据信号。
2.2 ESP8266模块
WiFi模块选择乐鑫公司的基于UART接口的ESP8266-12芯片,该芯片具有价格低、配置高和兼容性强等优势,同时开发模式丰富简单[2]。该芯片使用ASCII码与手机进行通信,手机把编码变为ASCII码进行发射,UART-WiFi会接收ASCII码并产生中断给单片机。此WiFi模块可以通过终端像普通路由器一样设置和修改密码,也可以通过配置软件进行修改和设置,安全性能高。ESP8266-12与单片机串口通信接口及电源电路,TXD和RXD分别接单片机的P3.0和P3.1。ESP8266-12的9和11脚通过1 K上拉电阻接3.3 V电源。5 V电压经LM1117的电压变换后输出得到一个稳定平滑的逻辑数字3.3 V直流电压给WiFi模块供电。二极管IN4148反向截止起到保护电路的作用。拨动开关S1正常运行时接通P3.0接收模块发送的数据,下载程序时用S1断开WiFi模块,以防数据干扰。
2.3 室内环境采集模块
室内环境主要采集温湿度和可燃气体等环境状态,采用DHTir温湿度传感器检测室内温湿度,采用MQ-2烟雾气敏传感器检测室内可燃气体的浓度。传感器检测信号发送给单片机进行处理和显示。DHT11和MQ-2与AT89S51的连接相对简单。单片机的I/O口用来发收DATA串行数据,DATA用于微处理器与DHT11之间的通信和同步,采用单总线串行数据格式,一次通信时间4 ms左右。MQ-2传感器数字量输出信号端DO接到单片机I/O 口。传感器的电源端口分别接单片机的VDD和GND端。
2.4 LCD1602液晶显示电路
采用LCD1602液晶显示器显示网络连接、室内气体、温湿度以及开关状态等信息。1脚接地,2脚接+5 V电源,3脚为液晶显示器对比度调整端,通过一个10 K电位器调整对比度。4脚RS接P2.7用于寄存器的选择。5脚R/W接P2.6用于读写信号的控制,6脚EN为使能端接P2.5用于液晶模块的使能控制。7—14脚D0 — D7为8为双向数据线接单片机P0口。15和16脚分别为背光源正、负极。
2.5 继电器驱动模块
控制系统通过继电器的方式实现家电的通断控制或者灯的开关控制。单片机P2.0引脚输出一个低电平时,PNP型三极管9012导通,电流从+5 V电源经线圈再经9012回到GND形成回路,此时继电器线圈得电吸合,与线圈并联的LED灯点亮,2.2K分压电阻保证LED的3 V工作电压,IN4148二极管起到保护作用,接线端子J坷外接负载,通过WiFi控制,驱动负载的通断相当于一个智能开关。
2.6 手机APP
智能手机APP为网络调试助手安卓版。网络调试助手集成了 TCP/UDP客户端服务器,服务器端支持透明传输方式、自动反馈方式和手动发送方式。采用TCP客户端模式,通过配置IP地址和COM端口号实现APP与ESP8266通信[3]。手机APP界面包括室内环境值、家电的开关控制按钮等内容。
3 软件设计
采用ESP8266实现远程控制基本流程(见图2):单片机对ESP8266进行初始化,再将手机连上ESP8266的WiFi,然后再通过手机端发送指令,ESP8266接收到命令发给单片机,单片机根据执行相应的操作。单片机检测室内环境在液晶屏上显示并通过ESP8266将采集的室内环境参数发送到手机APP显示。
3.1 主程序设计
控制系统软件部分主要分为WiFi配置与通信、室内环境检测、继电器驱动、LCD液晶显示4部分。系统上电后进入初始化阶段读取系统参数,传感器模块启用,APP配网设置后,ESP8266配网成功直连数据服务器,传送相应的控制指令到MCU驱动继电器动作,同时实时回传数据到服务器,APP可以即时查看相关的数据。
第一步:单片机串口进行初始化。
第二步:单片机通过串口通信对ESP8266芯片进行初始化配置,使ESP8266工作在softAP模式,即无线接入点模式。ESP8266发射一个WiFi热点将手机或电脑等终端设备接入热点组建一个局域网。配置ESP8266WiFi热点SSID和密码等。
第三步:采集并发送室内环境参数,等待控制指令,接收到指令后执行相应的操作。
3.2 关键函数设计
关键函数包括主函数、串口处理函数、定时中断函数、室内环境读取子函数、显示子函数等5个部分,具体功能描述如表1所示。
4 结语
本文设计了一种基于单片机和ESP8266芯片的智能家居控制系统,从软件和硬件两个层面论述了该方案的可行性。在该系统基础之上,还可以增设定时打开与关闭家用电器、灯光的自动调节等其他智能控制功能。通过后期的不断改进和完善,该控制的功能将更加多样化,市场前景也会更加广阔。
[参考文献]
[1]吴允强,吴由松基于ESP8266的智能家居控制系统设计[J].电子测试,2017(21):9, 24.
[2]邵青青,周建华,徐晨,等.基于ESP8266+STM32的智能升降桌控制器[J].机械工程与自动化,2017(6):155-156.
[3]屈良潘,唐曼玲,刘静,等.基于ESP8266的LED灯无线远程控制设计[J].电子世界,2017(9):179, 181.