摘要 : 本文是利用 51 单片机基础知识结合 wifi 通信技术完成的一套可通过手机无线遥控家电开关系统设计。整个系统以 STC89C51 单片机为核心,采用业界主流的 ESP8266wifi 模块作为通信模块,家电开关的自动控制部分采用 3 路继电器开关来实现。本系统的硬件成本较低,可在实际生活中应用,在中职单片机课程教学中具有较高的使用和推广价值。
关键词 : 单片机 ;wifi 遥控 ; 家电开关
0 引言
单片机课程的学习,设计与实践对学生知识的理解与掌握至关重要,贴切生活的实训项目设计能使学生从被动的接受枯燥的理论知识转到主动的理论探究,可极大地调动学生学习的积极性和主动性,更重要的是学生动手能力、发现问题和解决问题的能力可以得到质的提升。现代社会,人们生
活质量不断提高,家庭中的家用电器不断增多,人们对于操控家用电器的便利性也要求越来越高。在物联网概念下,基于单片机与无线通信技术的 wifi 无线家电开关控制系统,在居住空间内可通过手机随时随地地开关电器,为人们的生活提供极大的便利。而目前中职的单片机教材中,wifi 技术的内容基本没涉及,为了使学生在学习单片机技术时,激发学生的学习兴趣,初步掌握 wifi 技术跟单片机技术的结合,特设计这个基于单片机的 wifi 家电开关控制系统。本系统可在实际生活中应用,也适合在单片机教学中推广。
1 wifi 家电开关控制系统的整体方案设计
自从 ESP8266wifi 模块上市以来,由于其成本低,性能高而备受关注。根据设计和功能及教学方面的要求,本系统主要采用了 51 单片机技术、自动控制技术和无线通信技术,通过手机 APP 控制用电设备。
整个系统主要由五大部分组成,分别是智能手机 APP、电源管理部分、51 单片机最小系统、ESP8266wifi 模块通信部分、继电器开关控制及发光二极管指示部分。整个系统结构简单、性能稳定可靠、可操作性强,并且成本低廉。系统的设计框图如图 1 所示。
2 wifi 家电开关控制系统硬件设计
2.1 电源管理系统设计
电源部分设计的质量对整个系统设计至关重要,由于系统单片机和 ESP8266wifi 模块需要的电压不同,51 单片机的工作电压为 5V,单片机电源供电由外接 5V 电源提供,而8266wifi 模块的工作电压为 3.3V,因此 8266wifi 模块 3.3V电压由 AMS1117-3.3V 稳压输出提供。
2.2 ESP8266wifi 通信系统设计
本设计通信模块使用业界主流 8266wifi 模块。ESP8266硬件接口丰富,适用于各种物联网应用场合,其作为一个透传模块使用, URXD、UTXD 分别连接 51 单片机的 TXD 和RXD,VCC 和 CH_PD 管 脚 接 3.3V 电 压,GND 接 地(8266wifi模块要和单片机共地才能正常工作),只需要连接这些管脚,ESP8266 模块就可以正常工作了。本设计单片机与 ESP8266通信方式采用 AT 命令方式,首先由单片机对 ESP8266 模块进行初始化,ESP8266 通过 WIFI 接收到手机发送的命令后传入单片机,单片机再进行相应的操作。
2.3 单片机最小系统设计
单片机最小系统是中职生学习单片机的必学内容,也是基于单片机的系统设计的最基础的部分,是系统的控制核心。相对来说,最小系统的构建比较简单,只涉及到了晶振电路、复位电路以及 EA/VPP 端的高电平。设计单片机最小系统,选择合适的单片机非常重要。由于本系统功能相对较少,8位单片机就可以实现设计的功能要求,且价格较低,因此本设计选择 STM 公司出品的 STC89C51 单片机。这款单片机可以直接从 RXD 和 TXD 引脚直接进行通信,非常方便。完成最小系统电路设计后,对其测试。第一步,检测晶振是否能正常起震,第二步,把相应的 IO 口控制程序置入单片机,可通过控制一个发光二极管的发光情况来测试。最后是测试复位电路功能是否正常。
2.4 家电控制电路设计
本设计家电控制电路部分采用 3 路继电器实现控制,单片机通过 IO 口输出高低电平控制继电器的通断,从而控制外部家电电源的通断。为了方便操作和观察继电器的吸合和断开,在继电器端接一个 LED 灯,通过观察 LED 灯的亮灭来了解继电器的状态,当 LED 灯亮时,说明相应的继电器吸合,当LED 灯不亮时,说明相应的继电器吸合。整个系统设计原理图如图 2 所示。
3 wifi 家电开关控制系统软件设计
系统软件设计,编程使用 C 语言,编译环境为 Keil。单片机软件主要是串口初始化、ESP8266 模块的初始化(如设置模块 wifi 模式为 AP 模式,并设置 wifi 名称和密码等)、接收模块转发的数据、根据收到的数据处理串口中断来完成对继电器的控制。部分程序如下 :
Uart_Init();
ms_delay(2000);
ESP8266_Set("AT+CWMODE=2");// 设置路由器模式 2
(AP 模式 )
ms_delay(2000);
ESP8266_Set("AT+RST");// 重 新 启 动 wifi 模 块
ms_delay(2000)ESP8266_Set("AT+CWSAP=\"wifi_
yuan\",\"123456789\",11,4");// 设置 wifi 名称和密码
ms_delay(2000);
ESP8266_Set("AT+CIPMUX=1");// 开启多连接模式,允
许多个各客户端接入
ms_delay(2000);
ESP8266_Set("AT+CIPSERVER=1,5000");// 启 动 TCP/
IP 实现基于网络 // 控制
ms_delay(2000);
ESP8266_Set("AT+CIPSTO=0");/ 永远不超时
ES=1;// 允许串口中断
4 系统的调试
在本设计中,单片机的串口中断的波特率设为 9600,在将 ESP8266 模块与单片机硬件连接之前,先通过电脑用 USBTTL 模块连接好 ESP8266 模块,将 ESP8266 模块的波特率改 为单片机能使用的 9600bps,再将模块插到系统中。在手机上安装手机端控制软件,手机接入到 ESP8266 模块发射的无线wifi 网络,打开控制软件设置好 IP 和端口就可以连接单片机开关控制系统了,按对应的按键就可以控制继电器吸合或断开,从而控制家电的开关。
通过实际测试,系统成功完成了设计的功能,通过点击手机上的按键能成功地让对应的继电器吸合或断开(对应的LED 灯亮或灭),从而控制接到继电器上的家电电源的通和断。
5 结束语
这次设计的系统能够实现利用 wifi,通过操控手机遥控家用电器的开关。 因为本设计只是一个非常入门的设计,使用到的无线网络也仅仅是局域网,操作指令也很简单,传输的数据量也很小,比较适合中职学生的学习水平,可以在中职单片机教学中推广。
因系统没有涉及到手机接收单片机发来的信息的功能,也没涉及到利用互联网进行连接控制的功能。下一步,我们计划对系统进行完善,加入以上两个功能,同时对软件进行优化。