organDom
单片机学习小组
登录
直播中
王越建
7年用户
1436经验值
私信
关注
ESP8266模块是怎样通过WIFI与服务器进行通信的
开启该帖子的消息推送
ESP8266
服务器
WIFI
ESP8266芯片有哪几种工作方式呢?
开启网络调试助手的方法有哪几种呢?
ESP8266模块是怎样通过WIFI与服务器进行
通信
的?
回帖
(1)
张嘉
2022-2-22 09:52:11
一、ESP8266
ESP8266与HC-05蓝牙模块类似,都是一种串口转其他通信的模块,也就是说用这个模块我们不需要了解许多网络协议,仅仅靠串口通信就可以将我们的主控芯片连接到网络进行数据传输。
市面上有两种ESP8266模块,都是使用的同样的ESP8266芯片,只不过正点原子只引出了6个引脚,官方模块引出了8个引脚,如果我们不使用已经刷好的固件库(也就是不打算利用ESP8266芯片做一些控制)那么这两个模块没有太大使用区别。
市面上最主流的有两种版本,下面我会做简单的介绍。
正电原子模块
我是用正点原子开始学习的ESP8266,本来是想正点原子会有一些源代码和对应视频,但是找了半天只找到源代码和一个长达数十页的pdf,后来根据学长给的一个视频学习进度才有所进展。
从图片中我们不难看出,正点原子模块共有六个引脚
[tr]引脚功能[/tr]
VCC
3.3V或者5V
GND
接地
TXD
发送数据引脚
RXD
接收数据引脚
IO_0
复位(低电平有效)
RST
用于进入固件烧写模式,低电平是烧写模式,高电平运行
这次使用中我并没有直接用单片机进行数据的传输,而是直接连接到电脑先大致了解一下该模块的工作方式,所以我采用的是USB-TTL芯片和它相连然后连接电脑。
具体连接方式为
[tr]正点原子模块USB-TTL[/tr]
VCC
5V
GND
GND
TXD
RXD
RXD
TXD
这里网上建议该模块连接5V作为电源,因为有博主在3.3V使用的时候偶尔会有丢失数据的情况,所以我们就直接使用5V供电。
官方模块
下面的图片就是官方模块的实拍
从图片中我们可以清楚的看到有8个引脚伸出
[tr]引脚功能[/tr]
VCC
3.3V或者5V
REST
复位
CH_PD
高电平工作,低电平模块供电关闭
UTXD
发送数据(也可作为GPIO1)
URXD
接收数据
GPIO0
默认为WIFI状态STA
GPIO2
没找到具体用处
GND
接地
由于我们不对ESP8266的固件库进行修改,所以我们的连接方式和正点原子模块是差不多的,
唯一的区别就是CH_PD引脚也需要接电源
,原因可以从我上面给出的表格看到。
二、配置过程
首先给出需要用到的两个软件
下载安装好我们的软件后就进行我们硬件的连接
硬件连接依照第一部分的表格,将模块与USB-TTL进行连接,并将我们的USB连接到电脑。
1.初次问候
硬件连接之后我们就可以打开XCOM串口调试助手,串口波特率调整为
115200
,在对话框中输入AT并发送,如果我们的模块正常则会返回一个OK。
此时就代表我们和模块取得了第一次联系
这里如果返回的是十六进制数字,则需要我们将右列的16进制显示关闭。
2.连接WIFI
之后我们就需要将模块连接上WIFI,具体操作为
在对话框中发送:
AT+CWJAP=“无线网名称”,"无线网密码"
例如我的手机热点名称为:我是彭于晏 密码为12345678
则发送
AT+CWJAP=“我是彭于晏”,"12345678"
给它一段反应的时间,他就会返回 WIFI CONNECTED
如果模块正常返回OK但是在连接WIFI时出现错误,可能是AT指令发送的有问题,仔细检查是否语句中使用的为英文符号,账户密码是否正确。
3.开启我们的简单服务器
现在我们先暂且疏远我们的ESP8266,把串口助手晾在一旁,打开另一个我上传的软件,网络调试助手。
这里电脑要和模块连接到同一个路由器
这里需要设置
协议类型为TCP Server
本地主机地址
一般都是默认值
不需要我们更改
本地主机端口为
8080
之后点击打开。理想情况下会直接打开成功,但是我在使用的过程中就遇到了问题,总是显示bind()failed,后来查询后才明白是对应端口被占用,下面是我的解决方法。
开启网络调试助手方法一
首先按win+R打开运行
在对话框中输入cmd点击确定
之后在黑框中输入
netstat -ano
注意netstat后面是有一个空格的!
按回车就可以查询到我们的电脑各个端口的运行情况,找到8080端口,查看是什么程序在占用8080端口,例如下图我的8080端口就被 PID8584占用。
打开任务管理器,在详细信息中将该程序关闭。
关闭之后就可以开启8080端口了。
这里关闭的程序(Application Web Server)是上学期电路实验考试时附带的,现在咱也不敢删。
开启网络调试助手方法二
既然我们的8080端口被占用了,那我们就直接换一个端口进行使用,例如8082,8083等等等等,电脑端口数量很多,试一个不行还会有很多个,总会有没被使用的端口可以使用。
个人觉得第二个方法好
,但是了解一下为什么打不开8080也是挺好的。
4.模块连接服务器
这里发送AT指令:
AT+CIPSTART=“TCP”,“IP地址”,端口号
例如我的IP地址为192.168.1.110,端口使用的是8082,那我就发送
AT+CIPSTART=“TCP”,“192.168.1.110”,8082
图片上我第一次发送这个指令就失败了,因为用了中文符号,大家也应注意。
此时模块就连接上了我们电脑上开启的简单服务器。
5.开始通过WIFI与服务器通信
模块连接好服务器后,我们再发送一个AT指令将模块设置为透传模式
AT+CIPMODE=1 透传模式
之后发送开启透传
AT+CIPSEND 开启透传
当窗口返回>后,我们所发送的任何消息都会被认作为数据,现在就可以通过电脑的串口通信给模块数据,然后模块通过WIFI将数据发送给我们的简单服务器。
下面是我的自问自答
发送出去的消息在各自软件中是看不到的,只能看到接收到的消息
注意:这不是聊天软件,不要像我一样玩的停不下来
最后当我们想要退出数据传输模式时,我们需要在串口助手中发送三个加号,并取消勾选发送新行
总结
这篇文章主要描述该模块在STA模式下的工作流程,熟悉了工作方式后我们就可以尝试用单片机替代电脑进行串口数据传输,发送数据与接收数据。
下面是流程图
将来的串口通信将由单片机完成。
一、ESP8266
ESP8266与HC-05蓝牙模块类似,都是一种串口转其他通信的模块,也就是说用这个模块我们不需要了解许多网络协议,仅仅靠串口通信就可以将我们的主控芯片连接到网络进行数据传输。
市面上有两种ESP8266模块,都是使用的同样的ESP8266芯片,只不过正点原子只引出了6个引脚,官方模块引出了8个引脚,如果我们不使用已经刷好的固件库(也就是不打算利用ESP8266芯片做一些控制)那么这两个模块没有太大使用区别。
市面上最主流的有两种版本,下面我会做简单的介绍。
正电原子模块
我是用正点原子开始学习的ESP8266,本来是想正点原子会有一些源代码和对应视频,但是找了半天只找到源代码和一个长达数十页的pdf,后来根据学长给的一个视频学习进度才有所进展。
从图片中我们不难看出,正点原子模块共有六个引脚
[tr]引脚功能[/tr]
VCC
3.3V或者5V
GND
接地
TXD
发送数据引脚
RXD
接收数据引脚
IO_0
复位(低电平有效)
RST
用于进入固件烧写模式,低电平是烧写模式,高电平运行
这次使用中我并没有直接用单片机进行数据的传输,而是直接连接到电脑先大致了解一下该模块的工作方式,所以我采用的是USB-TTL芯片和它相连然后连接电脑。
具体连接方式为
[tr]正点原子模块USB-TTL[/tr]
VCC
5V
GND
GND
TXD
RXD
RXD
TXD
这里网上建议该模块连接5V作为电源,因为有博主在3.3V使用的时候偶尔会有丢失数据的情况,所以我们就直接使用5V供电。
官方模块
下面的图片就是官方模块的实拍
从图片中我们可以清楚的看到有8个引脚伸出
[tr]引脚功能[/tr]
VCC
3.3V或者5V
REST
复位
CH_PD
高电平工作,低电平模块供电关闭
UTXD
发送数据(也可作为GPIO1)
URXD
接收数据
GPIO0
默认为WIFI状态STA
GPIO2
没找到具体用处
GND
接地
由于我们不对ESP8266的固件库进行修改,所以我们的连接方式和正点原子模块是差不多的,
唯一的区别就是CH_PD引脚也需要接电源
,原因可以从我上面给出的表格看到。
二、配置过程
首先给出需要用到的两个软件
下载安装好我们的软件后就进行我们硬件的连接
硬件连接依照第一部分的表格,将模块与USB-TTL进行连接,并将我们的USB连接到电脑。
1.初次问候
硬件连接之后我们就可以打开XCOM串口调试助手,串口波特率调整为
115200
,在对话框中输入AT并发送,如果我们的模块正常则会返回一个OK。
此时就代表我们和模块取得了第一次联系
这里如果返回的是十六进制数字,则需要我们将右列的16进制显示关闭。
2.连接WIFI
之后我们就需要将模块连接上WIFI,具体操作为
在对话框中发送:
AT+CWJAP=“无线网名称”,"无线网密码"
例如我的手机热点名称为:我是彭于晏 密码为12345678
则发送
AT+CWJAP=“我是彭于晏”,"12345678"
给它一段反应的时间,他就会返回 WIFI CONNECTED
如果模块正常返回OK但是在连接WIFI时出现错误,可能是AT指令发送的有问题,仔细检查是否语句中使用的为英文符号,账户密码是否正确。
3.开启我们的简单服务器
现在我们先暂且疏远我们的ESP8266,把串口助手晾在一旁,打开另一个我上传的软件,网络调试助手。
这里电脑要和模块连接到同一个路由器
这里需要设置
协议类型为TCP Server
本地主机地址
一般都是默认值
不需要我们更改
本地主机端口为
8080
之后点击打开。理想情况下会直接打开成功,但是我在使用的过程中就遇到了问题,总是显示bind()failed,后来查询后才明白是对应端口被占用,下面是我的解决方法。
开启网络调试助手方法一
首先按win+R打开运行
在对话框中输入cmd点击确定
之后在黑框中输入
netstat -ano
注意netstat后面是有一个空格的!
按回车就可以查询到我们的电脑各个端口的运行情况,找到8080端口,查看是什么程序在占用8080端口,例如下图我的8080端口就被 PID8584占用。
打开任务管理器,在详细信息中将该程序关闭。
关闭之后就可以开启8080端口了。
这里关闭的程序(Application Web Server)是上学期电路实验考试时附带的,现在咱也不敢删。
开启网络调试助手方法二
既然我们的8080端口被占用了,那我们就直接换一个端口进行使用,例如8082,8083等等等等,电脑端口数量很多,试一个不行还会有很多个,总会有没被使用的端口可以使用。
个人觉得第二个方法好
,但是了解一下为什么打不开8080也是挺好的。
4.模块连接服务器
这里发送AT指令:
AT+CIPSTART=“TCP”,“IP地址”,端口号
例如我的IP地址为192.168.1.110,端口使用的是8082,那我就发送
AT+CIPSTART=“TCP”,“192.168.1.110”,8082
图片上我第一次发送这个指令就失败了,因为用了中文符号,大家也应注意。
此时模块就连接上了我们电脑上开启的简单服务器。
5.开始通过WIFI与服务器通信
模块连接好服务器后,我们再发送一个AT指令将模块设置为透传模式
AT+CIPMODE=1 透传模式
之后发送开启透传
AT+CIPSEND 开启透传
当窗口返回>后,我们所发送的任何消息都会被认作为数据,现在就可以通过电脑的串口通信给模块数据,然后模块通过WIFI将数据发送给我们的简单服务器。
下面是我的自问自答
发送出去的消息在各自软件中是看不到的,只能看到接收到的消息
注意:这不是聊天软件,不要像我一样玩的停不下来
最后当我们想要退出数据传输模式时,我们需要在串口助手中发送三个加号,并取消勾选发送新行
总结
这篇文章主要描述该模块在STA模式下的工作流程,熟悉了工作方式后我们就可以尝试用单片机替代电脑进行串口数据传输,发送数据与接收数据。
下面是流程图
将来的串口通信将由单片机完成。
举报
更多回帖
rotate(-90deg);
回复
相关问答
ESP8266
服务器
WIFI
请问能用
ESP8266
串口转
WIFI
模块
访问
服务器
吗?
2019-01-24
2414
ESP8266
作为TCP
服务器
是
怎样
进行
连接的
2022-01-14
1786
请问
ESP8266
WiFi
模块
怎么发送数据到
服务器
?
2019-04-30
8630
如何让两个
ESP8266
通过
WiFi
(TCP套接字)
进行
通信
?
2023-05-16
225
怎样
去使用
ESP8266
WIFI
串口
通信
模块
呢
2021-12-08
1995
ATK-
ESP8266
设置为
服务器
后
wifi
连接失败
2019-05-07
3777
esp8266WiFi
模块
使用经验分享
2021-10-22
2522
ESP8266
如何禁止休眠?
2023-04-27
148
怎样
才能让所有的
ESP8266
可以同时
通过
WiFi
连接到
ESP
32呢?
2023-03-01
183
如何使用EDP协议
通过
ESP8266
WIFI
模块
接入OneNET
服务器
来实现远程控制LED灯?
2021-06-16
1934
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击重新加载
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分