若该文为原创文章,转载请注明原文出处。
此篇记录如何使用APP,在局域网内和STM32通信,并远程控制。
一、原理
STM32通过串口AT指令控制ESP8266(ESP-01S), ESP8266会产生一个热点,并创建了TCP服务,手机连接热点,打开APP,APP会创建一个客户端,并连接ESP8266创建的TCP服务,连接成功后,就可以通信了

二、ESP8266 AT指令
1、复位ESP8266
AT+RST\r\n
2、设置AP模式
AT+CWMODE=2
3、设置WIFI的名称、密码、通道号、加密方式(4-WPA_WPA2_PSK)
AT+CWSAP=\"ESP8266_TEST\",\"1234567890\",1,4\r\n
4、打开多连接
AT+CIPMUX=1\r\n
5、建立TCP服务器,开放端口
AT+CIPSERVER=1,8080\r\n
6、设置服务器超时时间
AT+CIPSTO=2880\r\n
7、本机IP地址查询指令
AT+CIFSR\r\n
8、发送数据
AT+CIPSEND=0,<长度>,<内容>
9、接收数据
其它在网络中的无线设备发送到ESP-01S的数据会被模块通过串口发送到单片机。数据格式如下:
-
+IPD,0,15:This is message
-
+IPD,<客户ID>,<信息长度>:<信息内容>
需要在单片机的串口中断中接收解析以上的数据,就可以得到其它无线设备发送的信息。
三、整体流程及代码片段解析
1、初始化串口,使用STM32的PA2和PA3,串口2

2、 初始化ESP8266, 即打开热点,并创建TCP服务

3、接收数据,并解析

APP下发的数据格式是{"temp1:123,"temp2":134}为JSON格式,直接使用sscanf获取值
4、定时发送数据

先封装数据,也是JSON格式,然后发送AT指令AT+CIPSEND=0,在发送内容,APP就要可以接收了
四、框架图

五、APP通信过程

STM32使用ESP8266通过局域网通信大致流程
如有侵权,或需要完整代码,请及时联系博主。