ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)

专题文章:

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为服务端)

目录

  • 前言
  • 1、效果演示
  • 2、 实验目的
  • 3、指令
    • 3.1 本实验相关指令
    • 3.2 学习指令的方法
    • 3.3 指令用途和说明
  • 4、配置并且搭建TCP通讯
    • 4.1 准备工作 :
    • 4.2 配置 ESP8266
      • 第一步:与 ESP8266 达成通讯
      • 第二步:设置 ESP8266 模块为 SoftAP 模式(CWMODE = 2)
      • 第三步:设置WIFI信息
      • 第四步,连接 ESP8266 的热点
      • 第五步:设置 ESP8266 模块为多连接模式(CIPMUX=1)。
      • 第六步:开启 ESP8266 模块的 服务器(CIPSERVER = 1)。
    • 4.3 搭建 TCP 通讯

前言

  全文篇幅过于冗长,建议读者可先跳转至第4段落,完成本次实验(文章标题),达到实验结果后,如有不解疑惑,即可返回查阅前文,是本人学习过程中困惑点,经过学习解答的一点见解,或许能帮助解答你的一点疑惑。
进入正文:



1、效果演示

如图:

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第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 OK
AT+CWMODE= OK
AT+CWSAP=,,, OK
AT+CIPMUX= OK
AT+CIPSERVER=[,] OK
AT+CIPSEND=, >
AT+CWSAP? OK(查询 ESP8266 SoftAP 的配置参数)
AT+CIFSR OK(查询 ESP8266 模块本地 IP 地址)
AT+CWLIF OK(查询连接到 ESP8266 SoftAP 的 Station 信息)
AT+RST ready

ps:只有配置正常没有错误时,才会出现如上表中的响应(即窗口弹出的返回值)


3.2 学习指令的方法

  下面,我将先详细跟大家分享一下,我是如何从芯片数据手册中,了解相关指令作用的,然后读者照着思路去翻阅其余指令即可。表中剩余的相关指令,我会按照以我的理解阐述,因为目的在于能够理解并使用,所以有时不会拘束于专业术语,对此不要过于纠结了,如有出错点,希望读者指出,一同进步!
见下表:
ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第2张图片


阅读表中信息可知,有关AT+CWSAP指令有两类,一类是查询指令,另一类是设置指令。下面分别对这两种指令进行实验。

按照指令表所给指令,向ESP8266模块发送指令(就是往调试窗口 发送指令):

AT+CWSAP?

观察表中红色方框信息可知,该指令是查询指令,功能是 “ 查询 ESP8266 SoftAP 的配置参数。”
(ps:这句话需要注意的信息:ESP8266 SoftAP“表明已经将ESP8266设置为 SoftAP 模式)

响应(即窗口返回的信息)为:+CWSAP:,,,,,

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第3张图片

观察发现,当我们发送查询指令时,窗口就如期而至的弹出“一批数据”,并且数据与指令表的格式一一对应,固定的信息“+CWSAP : ”  我就不加以阐述,下面我们来对比着参数,一一了解:
     → 参数① “MY_ESP” :该参数表示的是热点的名称
例:当前 ESP8266 模块处于 SoftAP 模式提供的热点的名称为 “MY_ESP”。

   → 参数② “12345677” :该参数表示的是热点的密码
例:当前 ESP8266 模块处于 SoftAP 模式提供的 WIFI热点的密码 为“12345678”

→ 参数③ “1” :该参数表示的是网络通道号
此处我也不甚了解,故不加以说明

   → 参数④ “3” :该参数表示的是加密方式。
不甚了解,不加以说明

   → 参数⑤ “4” :该参数表示的是允许多少台设备接入热点。
例:此处我设置最多允许4台设备接入 ESP8266 提供的 WIFI 热点

   → 参数⑥ “0” :该参数表示的是开启广播SSID。
牵扯到通讯方面的知识,若想了解自行深入,此处必须打开广播,以免通讯故障

  以上便是发送 查询指令 时返回的各个参数代表的含义。
(ps:  “→”    表示  “对应” 关系)





下面我们按照这种思路来继续解读“ 设置指令 ”

调试窗口 发送(就是向 ESP8266模块发送指令)指令:

AT+CWSAP="MY_ESP","12345678",1,3,4,0

下图是实践的截图,

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第4张图片


查阅表中信息得知:
设置指令 格式为:AT+CWSAP=,,,[,][,。功能是设置 ESP8266 WIFI 的信息,其中最后两个参数可设置也可以不设置。其中参数,
表示 WIFI 热点的名称。
例:我将处于 " SoftAP " 模式下的 ESP8266 提供的 WIFI 热点名称,设置为 “MY_ESP”

表示 WIFI 热点的接入密码,最⻓为64 字节。
例:我将处于 " SoftAP " 模式下的 ESP8266 提供的热点密码,设置为“12345678”

表示网络通道号。
例:我将处于 " SoftAP " 模式下的 ESP8266 的通道号为通道1

表示加密方式。
例:我将处于 " SoftAP " 模式下的 ESP8266 的加密方式,设置为加密方式3,不同的加密方式具体作用区别是什么,我也不清楚

表示最多允许多少台设备接入热点,该参数发送指令时可算进去,不算进去也可以。
例:我将处于 " SoftAP " 模式下的 ESP8266 能接入的设备数量,设置最多允许4台设备接入热点

表示是否开启广播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个字节;
    多连接模式时发送指令“AT+CIPSEND=,表示向指定的设备一次发送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模式(与电脑搭建TCP通讯,ESP8266为服务端)_第5张图片



第二步:设置 ESP8266 模块为 SoftAP 模式(CWMODE = 2)

     设置前可先查询一下当前模式,发送" AT+CWMODE? “指令,蓝色方框所示
     发送” AT+CWMODE = 2 "指令,设置 ESP8266 工作模式为模式2,红色方框所示。

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第6张图片

  配置好这一步,处于 SoftAP 状态的 ESP8266 模块,本身充当着 WIFI的角色,为其他设备提供热点,也称为 AP (接入点)。
  下一步我们将配置 ESP8266 这个模块提供的 WIFI 信息 。大家可以理解为我们平常手机开热点给小伙伴连接时,为了不让无关人员连接进来蹭流量,也为了与其他的 WIFI 热点识别开,因此设置属于自己的 WIFI 热点名称和密码。同样的我们接下来也对 ESP8266 模块提供的 WIFI 热点进行这样的操作。



第三步:设置WIFI信息

     设置前可先查询一下当前模式,发送 " AT+CWSAP? “ 指令
     发送” AT+CWSAP=“MY_ESP”,“12345678”,1,3,4,0 " 指令,设置 ESP8266 的 WIFI 信息

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第7张图片

(因为我已经将模块 WIFI 信息设置好了,所以查询时的 WIFI 信息如图所示,默认配置的 WIFI 信息是不一样的,我懒得恢复出产设置了,因此给读者提个醒。)

  这时我们已经将 ESP8266 模块提供的 WIFI 信息设置为:WIFI 热点名称为“MY_ESP”,密码为“12345678”,通道号为1,加密方式3,最多允许 4 个设备接入,开启 SSID 广播。

第四步,连接 ESP8266 的热点

  我们打开电脑的 WIFI 热点识别,便会出现一个 “MY_ESP” 的 WIFI 热点,这时候想平常一样连接热点,点击输入密码即可连接上热点了。

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第8张图片


  成功接入热点后,下面我们便要开始着手搭建 ESP8266 模块和电脑之间的 TCP 通讯了。
这里简单阐述一下,电脑连上 ESP8266 模块提供的热点后,便与 ESP8266 模块组成了一个局域网,为电脑提供热点的ESP8266 在这个局域网中扮演着类似路由器的角色。电脑想要和 ESP8266 达成TCP通讯,必须得知道 ESP8266 模块在这个局域网内的IP地址,而且对于电脑来说,ESP8266 的 IP 地址也就是网关 IP 地址(二者是一样的),如何获取 ESP8266 的 IP 地址,或者说如何知道 ESP8266 的网关地址,以下为大家提供两种方法:

方法一 :发送 " AT+CIFSR? " 指令获取:

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第9张图片



方法二 :在电脑中查看电脑在该局域网中的网关地址:

①在电脑键盘上按,WIN + R,弹出运行框(左侧图),输入“cmd”,点击确定(或者回车键),便会弹出一个指令框(右侧)。
②在指令框中输入"ipconfig/all",然后按下回车键,便会弹出一堆信息。

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第10张图片


  找到无线局域网的区域,其中红色方框的便是该局域网中电脑的 IP 地址和 MAC 地址;绿色方框的便是该局域网中的网关地址,也就是 ESP8266 的IP 地址了。

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第11张图片

现在,知道了 ESP8266 的IP地址,就可以开始搭建 ESP8266 与电脑之间的TCP通讯了。





第五步:设置 ESP8266 模块为多连接模式(CIPMUX=1)。

     发送" AT+CIPMUX=1 " 指令。
(注意:这一步必须设置为多连接模式单连接模式时,下一步是开启不了 ESP8266 模块的 服务器 的 。)

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第12张图片




第六步:开启 ESP8266 模块的 服务器(CIPSERVER = 1)。

     发送" AT+CIPSERVER=1,8088 " 指令,开启 ESP8266 的 服务器,并且设置端口值为8088。

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第13张图片


  至此,对于 TCP 通讯,ESP8266 模块的配置工作已经完成,接下来我们将配置电脑方面,让 客户端 电脑连接上 服务端 ESP8266 模块,实现 TCP 通讯。






4.3 搭建 TCP 通讯

第一步,打开网络调试助手,搭建TCP通讯的服务端:
    选好协议类型
    填写上远程主机地址(就是 ESP8266 的 IP 地址);
    填写上远程主机端口(注:默认端口值是333,但是前面我们已经将端口值配置为 8088,该端口值可自由分配填写,但是要避免一些特殊端口);
    点击打开,就能连接上服务端开始通讯了;

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第14张图片


以下是两个设备之间的通讯页面:

ESP8266模块,SoftAP模式(与电脑搭建TCP通讯,ESP8266为服务端)_第15张图片

至此,ESP8266 与 电脑已经形成了 TCP通讯。本次实验, 完成 !





综上, ESP8266服务端 已经与电脑 客户端 达成了通讯。但是在信息传递上还有几个要点:
  此时 ESP8266 在 TCP 通讯中是服务端,而电脑是客户端
由于服务端 ESP8266 是多连接模式,因此不能开启透传模式。所以服务端 ESP8266 每次想要向客户端发送消息只能使用非透传模式

非透传模式

单连接模式
  发送信息前,得发送指令 " AT+CIPSEND=“多少个字节” " 。*
例: " AT+CIPSEND=5 " ,就是发送5个字节的信息*

多连接模式
  发送信息前,得发送指令 " AT+CIPSEND=“参数1”,“参数2” “,其中参数1表示接入的设备,每一台接入的设备标记加1,从0开始。如电脑A接入后电脑A设备标记为0。如果还有电脑B也接入,则电脑B设备标记为1。参数2,表示要发送多少个字节数
例:” AT+CIPSEND=0,10 " 表示向 ‘0’ 设备发送10字节的数据。


优点
  发送指令不会被当做信息发送出去。
缺点
  每次发送信息前都得发送指令 " AT+CIPSEND=“多少个字节” " ,并且要算自己发送的数据需要多少个字节。发送的字节数过多,发送数据不完全,发送到自己设定的字节数便截止不再发送;
发送的字节数过少,发完会接着从头继续发送,直到发送的数据达到自己设定的字节数。

你可能感兴趣的:(ESP8266模块,电脑,tcp/ip,stm32)