单片机交流
直播中

南风一号

8年用户 979经验值
擅长:EMC/EMI设计
私信 关注
[问答]

如何使用AT指令让ESP8266进行TCP通讯?

如何使用AT指令让ESP8266进行TCP通讯?

网络调试助手连接ESP8266与进行TCP通讯

回帖(1)

武彩霞

2021-9-28 15:05:13
附上一张在用的实验板图片:





一.STM32及串口基本知识学习

1.了解串口通讯基本概念

主要任务
阅读博客 https://blog.csdn.net/qq_43743762/article/details/97811470
任务解读
此博客专业知识较多,对于初学者不必仔细深入研究,只需要了解大概的概念即可。可以简单的暂时的理解为,STM32上的每一个串口提供了一个硬件的接口,单片机可以通过串口把各部分连接起来(仅仅是个人理解,不准确请见谅)
2.安装串口调试助手工具的使用 UartAssist.exe

任务解读
互联网上很多串口调试助手,学习资料里也有,在串口调试助手中,暂时需要更改的只有左上角的串口号,在STM32用USB连接电脑时,需要选择正确的串口号来锁定STM32,然后点击打开即可。
3.实现STM32和串口调试助手的互交

功能实现
使用STM32实验板,编译下载STM32Demo_V1(启用演示功能1),使用串口调试助手(波特率设置为115200)与单片机通讯。
操作过程
用Keil uVision5将STM32Demo_V1烧录到单片机,然后用USB线连接PC机,注意不是烧录接口,烧录接口在烧录完成之后应该拔下。然后打开串口调试助手,选择好串口号,点击打开即可,演示功能1是将发送内容返回。看见串口调试助手中有信息返回即表示成功。
二.TCP网络通讯基本知识学习

1.了解TCP相关的概念

学习TCP基本原理,客户端、服务端、IP地址、端口等基本概念。
这些东西不论在博客还是搜索引擎都能查到,只需要大概了解一下概念即可,这里不再解释。
2.熟练掌握网络调试助手并实现TCP客户端和服务端交互

功能实现
安装网络调试助手工具,启动一个TCP服务端,并启动一个客户端连接到此服务端,进行双向消息收发实验(注意TCP内容很多,不要太陷入细节,重点是完成服务端与客户端收发消息的实验)
细节解读
首先打开一个网络调试助手(学习资料有或者用搜索引擎自己下载一个),以本人上传的助手为例,协议类型包括TCP Server、TCP Client、UDP,分别表示TCP服务器、TCP客户端和UDP协议。
我们先新建一个自己电脑上的服务器,网络调试助手协议类型选择TCP Server,其余可以不用修改,然后点击打开,这样我们就在自己电脑上搭建好了一个最简单的服务器。
我们还需要一个客户端和服务器互交,我们再打开一个网络调试助手,协议类型选择TCP Client,远程主机地址和远程主机端口修改成服务器(就是另外一个网络调试助手)的本地主机地址和本地主机端口,然后点击连接。
之后就会看到两个网络助手连接成功,从一个助手发消息另外的一个助手就可以看到,这就是一个最简单的TCP服务器和TCP客户端的互交。
三.WIFI模块ESP8266的基本概念和实验

1.简单了解ESP8266的基本操作

主要任务
学习学习资料中的《ESP8266系列入门教程》《ESP8266 AT指令集》《ESP8266 AT指令使用示例》
任务解读
这几本书有很多的AT指令,我们通过向单片机输入AT指令来实现对WiFi模块的操作,单片机不像手机,想要连接wifi的话在屏幕上点几下就可以实现,单片机没有屏幕,但是有串口,我们通过串口向WiFi模块输入指令来启动它。而且很多AT指令暂时用不到,这几本书大概看一下即可,等用到了相关的功能,再次查阅即可。
几个注意点
关于WIFI模块ESP8266硬件的安装,在STM32F103C8T6中,WiFi模块的位置是在左上角,一共有8个针脚,对应好直接插入即可安装。详见开头的实验板图片,黑色的一个小板子就是WiFi模块。
在本人手上的STM32F103C8T6中,WiFi模块在串口1位置固定,而与PC进行的连接的是串口3(USB接口),在学习资料中的STM32Demo_V1_WIFI中的演示功能3中,主要是实现的是串口3与串口1的数据互交,然后通过WiFi模块发送出去。这个之后还会再仔细的讨论,这里仅仅是提一下。
2.使用AT指令让ESP8266进行TCP通讯

功能实现
将STM32Demo_V1(启用演示功能3)下载带SMT32实验板上,并插上ESP8266模块,使用AT指令让ESP8266启动服务端和客户端,与网络调试助手进行TCP通讯。
详细说明
以下内容请翻阅学习资料中的《ESP8266AT指令使用示例》和"AT指令.txt"文件,配合食用!
WIFI演示程序没有配置WIFI的SSID和密码功能,需要手工配置SSID和密码。之后WIFI模块才能正常连接AP(热点)。
a.用Keil uVision5将STM32Demo_V1烧录到单片机,启动演示功能3
b.单片机威廉希尔官方网站 板使用USB线连电脑,用串口调试助手(115200波特率)发送命令
“AT+CWJAP_DEF=,”。如:AT+CWJAP_DEF=“CMCC-DTgx”,“密码”
c.待WIFI模块回应以下2条消息(串口调试助手接收到2条数据):
WIFI CONNECTED
WIFI GOT IP
就说明WIFI模块已经设置好了密码,连上了AP。
d.使用AT+CIFSR命令可以查询WIFI模块的IP地址:
AT+CIFSRbusy p…
+CIFSR:APIP,“192.168.4.1”
+CIFSR:APMAC,“2e:f4:32:58:18:b9”
+CIFSR:STAIP,“192.168.1.9”
+CIFSR:STAMAC,“2c:f4:32:58:18:b9”
OK
CIFSR:STAIP后面带的IP地址就是当前IP。
(其他AT命令参考ESP8266的手册)
提示
a.可以先用AT指令
AT+CWLAP
扫描附近的 AP 信息,这样就可以知道,WiFi模块到底找没找到要链接的那个热点。
b.演示功能3的功能在于实现如下的串口数据传输功能
PC机(串口调试助手)<------> 串口3<------> 演示功能3<------> 串口1<------> WIFI模块
在本人手上的STM32F103C8T6中,WiFi模块在串口1位置固定,而与PC进行的连接的是串口3,在演示功能3中,主要是实现的是串口3与串口1的数据互交,然后通过WiFi模块发送出去。
四.WIFI模块ESP8266的编程实验

1.网络调试助手连接ESP8266与进行TCP通讯

功能实现
将STM32Demo_V1_WIFI下载带SMT32实验板上,并插上ESP8266模块。(会自动启动TCP服务),网络调试助手连接ESP8266的TCP服务,进行TCP通讯。
任务解读
以下内容请翻阅学习资料中的《ESP8266AT指令使用示例》,配合食用!
a. 将学习资料中的STM32Demo_V1_WIFI烧录到单片机上(用烧录接口)
b.在PC机上运行一个网络调试助手,协议用TCP Server,作为一个云端服务器。
c. 单片机用USB连接PC,打开串口调试助手,连接STM32。
d.在串口调试助手中,输入AT指令,让ESP8266连接好WiFi,然后用





作为客户端连接PC上的服务器,连接之后会在串口调试助手和网络调试助手看到连接成功的信息
f.要想进行数据传输,请参考《ESP8266AT指令使用示例》中的AT指令实现数据的交互。
到此,WiFi模块(ESP8266)的使用部分的初步学习已经完成,接下来会根据WiFi模块的性能和单片机的数据传输性能进行进一步的学习。未完待续……
举报

更多回帖

发帖
×
20
完善资料,
赚取积分