专题文章:
ESP8266模块,STA模式(与电脑搭建TCP通讯,ESP8266为客户端)
ESP8266模块,STA模式(与电脑搭建TCP通讯,ESP8266为服务端)
ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为客户端)
ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端) ☆
ESP8266模块,STA模式(与手机搭建TCP通讯,ESP8266为客户端)
ESP8266模块,STA模式(与手机搭建TCP通讯,ESP8266为服务端)
ESP8266模块,SoftAP模式(与手机搭建TCP通讯,ESP8266为客户端)
ESP8266模块,SoftAP模式(与手机搭建TCP通讯,ESP8266为服务端)
前言
全文篇幅过于冗长,建议读者可先跳转至第4段落,完成本次实验(文章标题),达到实验结果后,如有不解疑惑,即可返回查阅前文,是本人学习过程中困惑点,经过学习解答的一点见解,或许能帮助解答你的一点疑惑。
进入正文:
1、效果演示
如图:
(
ps:
图片中有两个窗口,
左侧窗口是 ESP8266 调试串口,此时充当着 TCP 通讯中的 服务端;
右侧窗口是 网络调试助手窗口,本次实验中的电脑设备窗口,充当着 TCP 通讯中的 客户端。
左侧窗口的蓝色方框内的信息是,客户端 电脑发送给 服务端 ESP8266 的信息
右侧窗口的绿色方框内的信息是,服务端 ESP8266 发送给 客户端 电脑的信息
)
2、 实验目的
☆ 将ESP8266模块配置为SoftAP模式(AP)、服务端。并且搭建TCP通讯,与PC实现通讯功能 。
(ps:PC:Personal Computer。译:个人电脑)
3、指令
3.1 本实验相关指令
配置ESP8266为Station模式时,需要的用到的相关指令:
AT指令 | 响应(也就是返回值) |
---|---|
AT | OK |
ATE<mode> | OK |
AT+CWMODE=<mode> | OK |
AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn> | OK |
AT+CIPMUX=<mode> | OK |
AT+CIPSERVER=<mode>[,<port>] | OK |
AT+CIPSEND=<link ID>,<length> | > |
AT+CWSAP? | OK(查询 ESP8266 SoftAP 的配置参数) |
AT+CIFSR | OK(查询 ESP8266 模块本地 IP 地址) |
AT+CWLIF | OK(查询连接到 ESP8266 SoftAP 的 Station 信息) |
AT+RST | ready |
ps:只有配置正常没有错误时,才会出现如上表中的响应(即窗口弹出的返回值)
3.2 学习指令的方法
下面,我将先详细跟大家分享一下,我是如何从芯片数据手册中,了解相关指令作用的,然后读者照着思路去翻阅其余指令即可。表中剩余的相关指令,我会按照以我的理解阐述,因为目的在于能够理解并使用,所以有时不会拘束于专业术语,对此不要过于纠结了,如有出错点,希望读者指出,一同进步!
见下表:
阅读表中信息可知,有关AT+CWSAP指令有两类,一类是查询指令,另一类是设置指令。下面分别对这两种指令进行实验。
① 按照指令表所给指令,向ESP8266模块发送指令(就是往调试窗口 发送指令):
AT+CWSAP? |
观察表中红色方框信息可知,该指令是查询指令,功能是 “ 查询 ESP8266 SoftAP 的配置参数。”
(ps:这句话需要注意的信息:ESP8266 SoftAP“表明已经将ESP8266设置为 SoftAP 模式)
响应(即窗口返回的信息)为:+CWSAP:<ssid>,<pwd>,<chl>,<ecn>,<max conn>,<ssid hidden>
OK
下图是我往调试窗口发送查询指令以及返回的参数值(响应),根据截图对比着表中信息来逐一了解。
观察发现,当我们发送查询指令时,窗口就如期而至的弹出“一批数据”,并且数据与指令表的格式一一对应,固定的信息“+CWSAP : ” 我就不加以阐述,下面我们来对比着参数,一一了解:
<ssid> → 参数① “MY_ESP” :该参数表示的是热点的名称。
例:当前 ESP8266 模块处于 SoftAP 模式提供的热点的名称为 “MY_ESP”。
<pwd> → 参数② “12345677” :该参数表示的是热点的密码。
例:当前 ESP8266 模块处于 SoftAP 模式提供的 WIFI热点的密码 为“12345678”
<channel> → 参数③ “1” :该参数表示的是网络通道号。
此处我也不甚了解,故不加以说明
<rssi> → 参数④ “3” :该参数表示的是加密方式。
不甚了解,不加以说明
<rssi> → 参数⑤ “4” :该参数表示的是允许多少台设备接入热点。
例:此处我设置最多允许4台设备接入 ESP8266 提供的 WIFI 热点
<rssi> → 参数⑥ “0” :该参数表示的是开启广播SSID。
牵扯到通讯方面的知识,若想了解自行深入,此处必须打开广播,以免通讯故障
以上便是发送 查询指令 时返回的各个参数代表的含义。
(ps: “→” 表示 “对应” 关系)
下面我们按照这种思路来继续解读“ 设置指令 ”。
② 向调试窗口 发送(就是向 ESP8266模块发送指令)指令:
AT+CWSAP="MY_ESP","12345678",1,3,4,0 |
下图是实践的截图,
查阅表中信息得知:
该 设置指令 格式为:AT+CWSAP=<ssid>,<pwd>,<chl>,<ecn>[,<max conn>][,<ssid hidden>]。功能是设置 ESP8266 WIFI 的信息,其中最后两个参数可设置也可以不设置。其中参数,
<ssid> 表示 WIFI 热点的名称。
例:我将处于 " SoftAP " 模式下的 ESP8266 提供的 WIFI 热点名称,设置为 “MY_ESP”。
<pwd> 表示 WIFI 热点的接入密码,最⻓为64 字节。
例:我将处于 " SoftAP " 模式下的 ESP8266 提供的热点密码,设置为“12345678”
<chl> 表示网络通道号。
例:我将处于 " SoftAP " 模式下的 ESP8266 的通道号为通道1
<ecn> 表示加密方式。
例:我将处于 " SoftAP " 模式下的 ESP8266 的加密方式,设置为加密方式3,不同的加密方式具体作用区别是什么,我也不清楚
<max conn> 表示最多允许多少台设备接入热点,该参数发送指令时可算进去,不算进去也可以。
例:我将处于 " SoftAP " 模式下的 ESP8266 能接入的设备数量,设置最多允许4台设备接入热点
<ssid hidden> 表示是否开启广播SSID。
例:我将处于 " SoftAP " 模式下的 ESP8266,设置为开启广播SSID。默认设置是开启广播的,建议不要关闭广播,否则可能会对设备之间的通讯有影响
以上便是对指令 “AT + CWSAP” 的相关知识的学习,其他的指令也可以参照此过程,试验一下,其他指令我将只大致阐述其作用。
3.3 指令用途和说明
根据上面一条详细指令的学习,我们需要知道有一个意识,就是设置指令和查询指令,在格式上只是个别的不同,如“xxx?”是查询指令。而相同的“xxx=”便是设置指令了。下面我会在兼有这两种指令的旁边标记“☆☆☆”,事后可以自己调试时试试看。
AT |
说明:用来确认是否与模块达成通讯的。
用途:无特别功能用处。
ATE |
说明:该指令用于是否“回显”自己发送的指令命令。
用途:发送指令“ATE0”,关闭回显。这时发送指令时,串口软件只会显示响应信息,不会显示发送的指令;
发送“ATE1”,开启回显。这时发送指令时,串口软件即会显示响应信息,也会显示发送的指令信息。
AT+CWMODE ☆☆☆ |
说明:该指令用于配置或查询ESP8266模块的工作模式(共三种模式)。
用途:发送指令“AT+CWMODE=1”,设置模块为Station模式,该模式下ESP8266是需要连接其他热点的设备,本身不是热点;
发送指令“AT+CWMODE=2”,设置模块为SoftAP模式,该模式下ESP8266模块自身便是一个热点,等待其他设备的接入,注意两种模式的区别(就是连接与被连接的区别);
发送指令“AT+CWMODE=3”,设置模块为SoftAP+Station模式,该模式下ESP8266模块既可以是Station站点(接入其他热点),也可以是SoftAP接入点(WIFI),本次实验设置ESP8266为模式1,Station站点模式,接入电脑的热点。
tip:“AT+CWMODE?”为查询指令,查询当前ESP8266处于什么模式。
AT+CWSAP ☆☆☆ |
说明:用来设置 ESP8266 自身 WIFI 热点信息,或用来查询 ESP8266 自身 WIFI 热点信息的。
用途:具体用途已经在上面详细例子中总结完毕,此处便不多加赘述。
tip:“AT+CWSAP?”为查询指令,查询当前 ESP8266 自身 WIFI 热点的信息。
AT+CIPMUX ☆☆☆ |
说明: 建⽴ TCP 、UDP 或 SSL 连接时,设置模块的连接模式(单连接模式或多连接模式)。
用途: 发送指令“AT+CIPMUX=0”,设置模块为单连接模式;
发送指令“AT+CIPMUX=1”,设置模块为多连接模式。
注意:ESP8266不同模式下,设置为什么样的连接模式,可能会对具体的实现功能有影响,比如 Station 模式下,只能设置为单连接模式,才能连接上WIFI热点,设置为多连接模式时是连接不上热点的(个人理解便是一个模块不能连接多个热点吧,得专一,所以只能是单连接模式)。而SoftAP模式下,可以设置为多连接模式,这时 ESP8266 作为WIFI热点,可以被多个设备连接。
tip:“AT+CIPMUX?”为查询指令,查询当前ESP8266处于什么连接模式。
AT+CIPSERVER |
说明: ESP8266 处于工作模式2,其他设备连接上 ESP8266 提供的热点时,如需要进一步搭建TCP 通讯,此时可将 ESP8266 模块设置为服务端,而开启或关闭服务端便是通过该指令实现的。但是开启服务端有一个前提条件,那就是必须是在多连接模式 (AT+CIPMUX=1)下,才能开启 TCP 服务器。
用途: 单连接模式时,该指令无意义且报错error。
多连接模式时,发送指令AT+CIPSERVER=1,8088”,参数1取值范围 [0,1] ,0表示关闭服务器,1表示建立服务器;参数2表示端口号,可自行设定,但是避免常用的端口号,如8080等。例:此处我设置为:建立服务器,并且端口值设置为8088
AT+CIPSEND |
说明:搭建好通讯时,发送信息的作用
用途: 单连接模式时发送指令“AT+CIPSEND=<length>”表示一次发送length个字节;
多连接模式时发送指令“AT+CIPSEND=<link ID>,<length>”表示向指定的设备一次发送length个字节。
例:" AT+CIPSEND=0,16 "表示向第一台接入的设备发送16个字节的信息
以上是普通传输模式下,每一次传输信息时需要进行的操作。ESP8266只会发送指定好的字节数,超出的将不发送出去。
透传模式时发送指令“AT+CIPSEND”表示进入信息透传功能,此时发送信息前不用再发指令,不管发什么都将被认为是信息发送出去,包括指令也将被认为是信息而发送出去,如果需要重新恢复指令的作用,得先退出“透传模式”,具体操作在下文的实验配置中有解说,此处不加以赘述。
AT+CIFSR |
说明: 查询ESP8266模块的本地IP地址和物理地址,①当ESP8266为Station模式,连接上WIFI热点时,发送该指令可以查询ESP8266模块分配到的IP地址和物理地址;②当ESP8266为SoftAP模式时,发送该指令可以查询ESP8266此时的IP地址和物理地址。(注:一般设备都只有唯一的一个物理地址。)
用途:发送指令“AT+CIFSR”模块ESP8266将返回自己当前模式下分配到的IP地址和物理地址。
AT+CWLIF |
说明:用来查询接入 ESP8266 模块提供热点的设备的IP地址。
用途:发送指令“ AT+CWLIF ”时,返回的参数有,接入设备的 IP 地址 和 MAC 地址(物理地址)。
AT+RST |
说明:令ESP8266模块复位重启。
用途:发送指令“AT+RST”,模块重新启动。
4、配置并且搭建TCP通讯
4.1 准备工作 :
① ESP8266 模块
②一个 USB 转 TTL 的转串口设备;
③两种串口软件,一个 串口调试软件 ,用来调试 ESP8266 模块;一个 网络调试助手 软件,用来搭建TCP 客户端;
ESP8266 与 转串口设备连接图如下:
实物图如下,可照着线的颜色比对比对:
将转串口设备接入电脑USB口,打开设备管理器出现该端口说明识别成功 (而后用调试窗口选择该端口时,便能和 ESP8266 通讯了。)
准备工作完成,接下来开始配置 ESP8266 模块,让电脑连接上ESP8266模块提供的热点,并且搭建TCP通讯.。
4.2 配置 ESP8266
第一步:与 ESP8266 达成通讯
〇打开串口调试软件
①选择USB识别到的端口
②打开串口
③发送" AT "指令
如下图所示,窗口响应OK,证明此时调试助手软件已成功与 ESP8266 模块达成通讯。
第二步:设置 ESP8266 模块为 SoftAP 模式(CWMODE = 2)
① 设置前可先查询一下当前模式,发送" AT+CWMODE? “指令,蓝色方框所示
② 发送” AT+CWMODE = 2 "指令,设置 ESP8266 工作模式为模式2,红色方框所示。
配置好这一步,处于 SoftAP 状态的 ESP8266 模块,本身充当着 WIFI的角色,为其他设备提供热点,也称为 AP (接入点)。
下一步我们将配置 ESP8266 这个模块提供的 WIFI 信息 。大家可以理解为我们平常手机开热点给小伙伴连接时,为了不让无关人员连接进来蹭流量,也为了与其他的 WIFI 热点识别开,因此设置属于自己的 WIFI 热点名称和密码。同样的我们接下来也对 ESP8266 模块提供的 WIFI 热点进行这样的操作。
第三步:设置WIFI信息
① 设置前可先查询一下当前模式,发送 " AT+CWSAP? “ 指令
② 发送” AT+CWSAP=“MY_ESP”,“12345678”,1,3,4,0 " 指令,设置 ESP8266 的 WIFI 信息
(因为我已经将模块 WIFI 信息设置好了,所以查询时的 WIFI 信息如图所示,默认配置的 WIFI 信息是不一样的,我懒得恢复出产设置了,因此给读者提个醒。)
这时我们已经将 ESP8266 模块提供的 WIFI 信息设置为:WIFI 热点名称为“MY_ESP”,密码为“12345678”,通道号为1,加密方式3,最多允许 4 个设备接入,开启 SSID 广播。
第四步,连接 ESP8266 的热点
我们打开电脑的 WIFI 热点识别,便会出现一个 “MY_ESP” 的 WIFI 热点,这时候想平常一样连接热点,点击输入密码即可连接上热点了。
成功接入热点后,下面我们便要开始着手搭建 ESP8266 模块和电脑之间的 TCP 通讯了。
这里简单阐述一下,电脑连上 ESP8266 模块提供的热点后,便与 ESP8266 模块组成了一个局域网,为电脑提供热点的ESP8266 在这个局域网中扮演着类似路由器的角色。电脑想要和 ESP8266 达成TCP通讯,必须得知道 ESP8266 模块在这个局域网内的IP地址,而且对于电脑来说,ESP8266 的 IP 地址也就是网关 IP 地址(二者是一样的),如何获取 ESP8266 的 IP 地址,或者说如何知道 ESP8266 的网关地址,以下为大家提供两种方法:
方法一 :发送 " AT+CIFSR? " 指令获取:
方法二 :在电脑中查看电脑在该局域网中的网关地址:
①在电脑键盘上按,WIN + R,弹出运行框(左侧图),输入“cmd”,点击确定(或者回车键),便会弹出一个指令框(右侧)。
②在指令框中输入"ipconfig/all",然后按下回车键,便会弹出一堆信息。
找到无线局域网的区域,其中红色方框的便是该局域网中电脑的 IP 地址和 MAC 地址;绿色方框的便是该局域网中的网关地址,也就是 ESP8266 的IP 地址了。
现在,知道了 ESP8266 的IP地址,就可以开始搭建 ESP8266 与电脑之间的TCP通讯了。
第五步:设置 ESP8266 模块为多连接模式(CIPMUX=1)。
① 发送" AT+CIPMUX=1 " 指令。
(注意:这一步必须设置为多连接模式。单连接模式时,下一步是开启不了 ESP8266 模块的 服务器 的 。)
第六步:开启 ESP8266 模块的 服务器(CIPSERVER = 1)。
① 发送" AT+CIPSERVER=1,8088 " 指令,开启 ESP8266 的 服务器,并且设置端口值为8088。
至此,对于 TCP 通讯,ESP8266 模块的配置工作已经完成,接下来我们将配置电脑方面,让 客户端 电脑连接上 服务端 ESP8266 模块,实现 TCP 通讯。
4.3 搭建 TCP 通讯
第一步,打开网络调试助手,搭建TCP通讯的服务端:
①选好协议类型;
②填写上远程主机地址(就是 ESP8266 的 IP 地址);
③填写上远程主机端口(注:默认端口值是333,但是前面我们已经将端口值配置为 8088,该端口值可自由分配填写,但是要避免一些特殊端口);
④点击打开,就能连接上服务端开始通讯了;
以下是两个设备之间的通讯页面:
至此,ESP8266 与 电脑已经形成了 TCP通讯。本次实验, 完成 !
综上, ESP8266服务端 已经与电脑 客户端 达成了通讯。但是在信息传递上还有几个要点:
此时 ESP8266 在 TCP 通讯中是服务端,而电脑是客户端。
由于服务端 ESP8266 是多连接模式,因此不能开启透传模式。所以服务端 ESP8266 每次想要向客户端发送消息只能使用非透传模式。
非透传模式:
单连接模式,
发送信息前,得发送指令 " AT+CIPSEND=“多少个字节” " 。*
例: " AT+CIPSEND=5 " ,就是发送5个字节的信息*文章来源:https://www.toymoban.com/news/detail-764199.html
多连接模式,
发送信息前,得发送指令 " AT+CIPSEND=“参数1”,“参数2” “,其中参数1表示接入的设备,每一台接入的设备标记加1,从0开始。如电脑A接入后电脑A设备标记为0。如果还有电脑B也接入,则电脑B设备标记为1。参数2,表示要发送多少个字节数
例:” AT+CIPSEND=0,10 " 表示向 ‘0’ 设备发送10字节的数据。
优点:
发送指令不会被当做信息发送出去。
缺点:
每次发送信息前都得发送指令 " AT+CIPSEND=“多少个字节” " ,并且要算自己发送的数据需要多少个字节。发送的字节数过多,发送数据不完全,发送到自己设定的字节数便截止不再发送;
发送的字节数过少,发完会接着从头继续发送,直到发送的数据达到自己设定的字节数。文章来源地址https://www.toymoban.com/news/detail-764199.html
到了这里,关于ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!