STM32+ESP8266局域网通信

若该文为原创文章,转载请注明原文出处。

此篇记录如何使用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的数据会被模块通过串口发送到单片机。数据格式如下:

  1. +IPD,0,15:This is message

  2. +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通过局域网通信大致流程

如有侵权,或需要完整代码,请及时联系博主。

相关推荐
禾川兴 1324240068837 分钟前
国产芯片解析:龙讯HDMI Splitter系列:多屏共享高清
单片机·fpga开发·适配器模式
猫猫的小茶馆3 小时前
【PCB工艺】软件是如何控制硬件的发展过程
开发语言·stm32·单片机·嵌入式硬件·mcu·51单片机·pcb工艺
柒月玖.6 小时前
基于AT89C52单片机的轮胎压力监测系统
单片机·嵌入式硬件·mongodb
多多*7 小时前
Java设计模式 简单工厂模式 工厂方法模式 抽象工厂模式 模版工厂模式 模式对比
java·linux·运维·服务器·stm32·单片机·嵌入式硬件
Android洋芋7 小时前
C语言深度解析:从零到系统级开发的完整指南
c语言·开发语言·stm32·条件语句·循环语句·结构体与联合体·指针基础
云山工作室8 小时前
基于FPGA的智能垃圾分类装置(论文+源码)
单片机·fpga开发·毕业设计·毕设
小麦嵌入式13 小时前
Linux驱动开发实战(九):Linux内核pinctrl_map详解与优势分析
linux·c语言·汇编·驱动开发·stm32·嵌入式硬件·硬件工程
傍晚冰川17 小时前
【STM32】最后一刷-江科大Flash闪存-学习笔记
笔记·科技·stm32·单片机·嵌入式硬件·学习·实时音视频
电子艾号哲19 小时前
STM32单片机入门学习——第1-2节: [1-1、2]课程和STM32简介
stm32·单片机·学习
annekqiu19 小时前
MPLAB X IDE 环境中配置字的注意点
c语言·单片机