ESP8266与51单片机无线通信控制LED灯实现思路其实很简单.串口通信中我们很容易就可以实现发送字符控制LED的反转,其实要实现无线通信,无非就是要用无线的ESP8266WiFi模块去代替有线的串口通信收发数据,以下案例中发的相关数据进入串口中断服务程序中,串口中断收到数据,进行条件判断,从而去执行中断服务程序中的指示,进而控制LED灯的反转.
实战经验分享
硬件: 51单片机 ESP8266-01模块 USB转TTL DCDC降压器 干电池 面包板 杜邦线若干
编程软件:keil
1.ESP8266的三种工作模式
(1)AP模式(模块作为热点,可以发散出wifi信号,实现手机或电脑直接与模块通讯,实现局域网无线控制)
(2)STA模式(模块通过路由器连接互联网,手机或电脑通过互联网实现对设备的远程控制)
(3)STA+AP模式(两种模式的共存即可通过互联网控制可实现无缝对接切换)
注:AT指令网上有,这里不做过多介绍,下面调试用到的都做了详细介绍.
2.ESP8266可以实现的主要功能
(1)串口透传(数据传输可靠性好,Max为46088bps)
(2)PWM调控(灯光调节,三色LED调节,电机调速)
(3)GPIO控制(控制开关,继电器等)
3.ESP8266与USB转TTL的连接
图一为ESP8266的接线方法用于图二中的2,图二中的1可以直接与电脑的USB接口相连,上电后ESP8266红灯常亮,蓝灯闪烁2~3下,模块正常可刷入AT指令.
4.ESP8266工作模式的选择及AT指令的刷入
ESP8266配置成服务器(PC或单片机发指令):
AT
AT+CIOBAUD=9600 (波特率设置成功后要更改后再进行设置其它波特率)
AT+RST
AT+CWMODE=2
AT+CWSAP="esp8266","0123456789",11,4
AT+CIPMODE=0
AT+CIPMUX=1
AT+CIPSERVER=1,8090
注:把以上AT指令刷入ESP8266模块,刷入成功都会返回ok,蓝色部分的指令掉电后不会被抹去,红色部分的指令掉电后会被自动抹去,每次重启模块都要进行配置一遍,故在ESP初始化函数中都要加上红色部分的指令.
5.ESP8266与51单片机的连接(附加外接电源的连接)
RXD TXD VCCCHPD GND
TXD RXD GND
VCC GND
ע:ESP8266的CHPD要与VCC短接拉高,ESP8266模块供电为3.3V,外接电源要通过DCDC降压器把电压稳定在3.3V,模块上电成功后红灯常亮,蓝灯闪烁2~3次证明模块启动成功,此时打开手机WiFi可以搜索到模块发散出来的热点,然后在接入单片机的RXD和TXD,单片机上电启动(代码已烧入的情况下)此时打开STC串口调试助手,AT指令会回显在接收缓冲区,没有回显则证明ESP8266与51单片机没有连接成功,假如模块在上电时就已经接入了RXD和TXD此时ESP8266模块会红灯和蓝灯长亮则模块直接没有启动成功,打开手机WiFi直接找不到ESP8266发散出来的热点(这些小问题不注意的话都会导致连接失败,蛋疼的是本人在连接测试时都被这些小问题拌倒过,望后来者引起注意)
6.实现ESP8266对51单片机的LED灯的无线控制
ESP8266在AP模式下发散出来一个热点,模块作为服务器TCP server.
手机APP或网络调试助手作为客服端TCP client 去访问服务器,从而实现无线控制.
这里介绍一下手机APP对LED无线控制的具体操作过程:
(1)手机上下载一个TCP连接或NetAssist的APP
(2)打开手机WiFi可以搜索到ESP8266点击连接,连接成功后会有提示说"此热点无上网功能,是否切换"点击否.
(3)打开手机APP,点击TCP client 连接,输入AT指令中获取的IP地址,选择端口号,点击连接.
(4)连接成功后,输入字符小写的o就会打开LED灯,输入小写字符f关闭LED灯.
7.STC89 C51实现代码
说明:因本人能力有限,错误的地方还请大家指出,一起成长一起进步.以上的所有资料都是经过整合拼接并加入了自己的一些想法完成的,希望对大家有所帮助!
欢迎学习交流 QQ:2997323077