记录一下基于STC89C52RC单片机对ESP-01S无线WiFi模块的开发(路由服务器模式)。
ESP-01S模块的路由服务器模式和设备模式开发思路相似,开发之前对ESP-01S模块的测试和波特率修改是一样的,差别只在于AT指令的不同。
记录一下代码编写的逻辑和过程:
1、用到的AT指令(发送AT指令时需新行发送):
AT+CWMODE=3------设置ESP-01S模块为设备和路由双模模式。(本章内容的开发是基于ESP-01S模块作为路由和服务器的开发)。指令执行成功反馈“OK”。
AT+CIPMUX=1------设置ESP-01S模块可以被多个设备连接。指令执行成功反馈“OK”。
AT+CIPSERVER=1------设置ESP-01S模块建立服务器。指令执行成功反馈“OK”。
AT+CIPSEND=0,48------设置ESP-01S模块向0通道发送48个字节。指令执行成功反馈“OK”。
2、代码逻辑:
单片机发送“AT+CWMODE=3”指令。
等待“OK”反馈。
收到“OK反馈”后,LED1闪烁,发送“AT+CIPMUX=1”指令。
等待“OK”反馈。
收到“OK反馈”后,LED1闪烁,发送“AT+CIPSERVER=1”指令。
等待“OK”反馈。
收到“OK反馈”后,LED1闪烁。
等待“0,CONNECT”反馈。
(将电脑连接ESP-01S模块发出的WiFi信号,WiFi名字为“AI-THINKER_XXXXXX”,打开网络调试助手将PC机设置为TCP设备,输入本地主机地址(经过多次测试一般是192.168.4.2)和远程主机地址(经过多次测试一般是192.168.4.2:333)后,连接ESP-01S模块服务器,连接成功后,会向单片机反馈“0,CONNECT”。)
收到“0,CONNECT”反馈后,LED1常亮。
循环发送“AT+CIPSEND=0,48”指令和向PC机(网络调试助手)发送“I am sending you a string every three seconds.\r\n”字符串。
在循环发送字符串的过程中接收PC机(网络调试助手)发送到单片机的“open”和“clos”字符串以控制LED2的亮灭。
3、代码Gitee
在ESP-01S模块的路由服务器模式开发中,“AI-THINKER_XXXXXX”WiFi信号会时常中断和消失,或者PC机检测不到这个WiFi,遇到这种情况只能将单片机重新上电,重新测试一次。