ESP8266无线模块—服务器与客户端相互通讯—基础应用与理解

前言

        学习了几天ESP8266模块,我对这个无线模块有了些初步的了解,说不上特别熟悉,以下是我对实现ESP8266模块的服务器的配置以及应用,另一个是作为客户端的应用以及配置,实现无线互联互通,这也是对无线模块学习了解的开端。

ESP8266硬件连接

        首先,你需要将 ESP8266 模块连接到计算机或其他微控制器。

连接 ESP8266 到 USB 转串口模块

这是我们ESP8266的PCB模型,主要是看它的VCC、GND、TX、RX:

        1.VCC 接 3.3V 电源

        2.GND 接地

        3.TXD 接 USB 转串口模块的 RX

        4.RXD 接 USB 转串口模块的 TX

        5.CH_PD 接 3.3V(有些模块可能标记为 EN 或 CH_EN)

        注意:ESP8266 的工作电压是 3.3V,接入 5V 会损坏模块

连接 GPIO0 到地(GND)(用于进入编程模式)。

在串口助手中打开:

选中ESP8266模块的USB串口号(我这里是COM26),波特率用115200,再打开串口就可以正常发送指令行了。

(检查硬件是否与上位机联通,可以在串口助手中发送“AT”指令,如果有回复“OK”说明连接成功;要是不成功,是不能成功发送指令的)


  以下是我对ESP8266模块的配置理解

一、ESP8266模块作为“服务器”的配置

       第一步:在串口调试助手中发送“AT”指令

          

        模块回复OK,说明硬件串口连接成功,模块启动成功

        第二步:在串口调试助手中发送“AT+CWMODE=3”

           

         模块回复OK,说明模块进入了进入AP兼station模式

      备注(“AT+CWMODE=1”为STA模式,这个指令的意思就是让ESP8266模块作为客户端去连接其他网络热点,在这里我们让ESP8266作为服务器,我们可以发送AT+CWMODE=2”,也可以是“AT+CWMODE=3”,等于2是AP模式,等于3是AP兼station模式,都是用于ESP8266模块去连接网络热点的AT指令)

        第三步:在串口调试助手中发送“AT+RST”

         

        AT+RST这个指令是重启模块(让模块启用指令模式),发送这条指令后模块回复OK后,就会执行出一堆乱码,不要去管,一直等到模块回复ready指令后,说明模块重启成功,也是成功进入了AP兼station模式

        第四步:发送“AT+CWSAP="网络名称","密码",频道号,加密模式”

        

        这个指令是给服务器模块配置他的网络名称与密码,能让其他设备去查找到网络,然后可以通过密码去让客户端成功连接(指令发送,待模块回复"OK",说明配置成功)我这里的网络名称为“LZH”,密码为“1234567890”,频道:“1”,加密模式:“WPA_WPA2_PSK”

        备注:AT+CWSAP=<ssid>,<password>,<channel>,<ecn>

各参数的含义如下:

  • <ssid>:热点的SSID(网络名称),字符串格式,最大长度为32字节。
  • <password>:热点的密码,字符串格式,长度为8到64字节。若不需要密码保护,可以设置为空字符串。
  • <channel>:Wi-Fi频道号,范围是1到13。
  • <ecn>:加密模式,取值范围如下:
    • 0:OPEN(无加密)
    • 1:WPA_PSK
    • 2:WPA2_PSK
    • 3:WPA_WPA2_PSK

        第五步:发送“AT+CIPMUX=1”

        

        这条指令的意思就是允许多个用户访问网络

        第六步:发送“AT+CIPSERVER=启动服务器,端口号”

        

        这样我们就配置好了我们服务器的端口号(我演示的是我所填写的端口号“8089”),启动TCP服务器

        第七步:发送"AT+CIFSR"

        

        该指令意思就是查我们配置的服务器的IP地址与MAC地址,所查询的IP地址用于我们另一个作为客户端的ESP8266模块去连接使用,手机端的TCP连接也是要用到的我们所配置服务器的IP地址与端口号

这样我们的服务端就算配置完毕;


二、ESP8266模块作为“客户端”的配置

接下来我们将用另外一块ESP8266模块进行客户端配置,用来去连接我们上面配置出来的服务器:

        第一步:还是老样子,发送“AT”指令

        

        这样回复收到“OK”说明硬件连接成功,模块启动成功

        第二步:发送“AT+CWMODE=1”

        

        模块回复OK,说明模块进入了进入STA模式,简单的意思就是成为客户端的模式

        第三步:还是要重启一下模块的,所以发送“AT+RST”

        

        服务器那里乱码截图可能看不清,现在给大家截清楚一点,还是解释一下“AT+RST”这个指令是重启模块(让模块启用指令模式),发送这条指令后模块回复OK后,就会执行出一堆乱码,不要去管,一直等到模块回复ready指令后,说明模块重启成功,也是成功进入了STA模式

        第四步:发送“AT+CWLAP”

        

        发送这条指令是去查找一下有哪些网络热点可以连接与查询到,很明显我们自己配置出来的服务器网络被搜索到了说明我们服务器的无线网络配置已经成功搭建,接下来我们就要去连接我们服务器的无线网络了

        第五步:这一步非常重要,是我们这个客户端去连接服务器的无线网络的一条指令:

                      发送“AT+CWJAP="LZH","1234567890"”

                      

        客户端发送这条指令,当收到回复,主要是看到这句“WIFI GOT IP”说明我们无线网络连接成功,这张图是服务器端的信息,说明我们连接成功  

这样我们的客户端就成功连接了服务器的无线网络     

        第六步:发送“AT+CIPMUX=0”

        

        这个命令用于设置多连接模式,这里参数 0 表示单连接模式,即 ESP8266 在任何时候只能处理一个 TCP/IP 连接,如果需要切换到多连接模式,可以使用 AT+CIPMUX=1。参数 1 表示多连接模式,ESP8266 可以同时处理多个(最多五个)TCP/IP 连接。

        第七步:发送“AT+CIPMODE=1”

        

        这个命令用于设置传输模式,这里参数 1 表示透传模式(Transparent Transmission Mode);进入透传模式

        换句话说,AT+CIPMODE=1 命令是用来将 ESP8266 配置为透传模式。在透传模式下,所有发送到模块的数据都会直接传输到连接的远程服务器,类似于串口通信,这样可以使数据传输更加简洁和高效

        如果需要退出透传模式,可以使用 AT+CIPMODE=0,参数 0 表示非透传模式,即普通模式。在这种模式下,数据传输是通过带有 AT 命令的数据包来进行的

总结:

  • AT+CIPMODE=1: 进入透传模式
  • AT+CIPMODE=0: 退出透传模式(进入普通模式)

透传模式通常用于需要快速和连续数据传输的应用场景,比如串口透传数据到远程服务器

        第八步:发送“AT+CIPSTART="TCP","192.168.4.1",8089”

        

        这个命令用于启动 TCP 或 UDP 连接:"TCP": 表示连接类型是 TCP;"192.168.4.1": 这是远程服务器的 IP 地址;8089: 这是远程服务器的端口号。

        换句话说,AT+CIPSTART="TCP","192.168.4.1",8089 命令是用来告诉 ESP8266 模块启动一个 TCP 连接,连接到 IP 地址为 192.168.4.1 且端口号为 8089 的服务器。

        在我们服务器端我们将会发现,看见这两段信息,说明我们的客户端正常连接上了我们的服务器,也表示可以正常通讯了

        第九步:发送“AT+CIPSEND”

        

        这个指令是开始透传,就是可以进行通讯的意思,在模块回应“>”我们就可以进行正常通讯,现在我们稍微展示一下,在客户端给服务器发送数据“Hello”,

我们服务器就会接收到这个字样信息,说明我们的客户端可以正常给我们的服务器发送完美的信息


接下来我们在服务器端给客户端发送消息:

        在服务器中,我们发送指令“AT+CIPSEND=0,4”

        

        在模块回应“>”我们就可以进行服务器给客户端发送消息了,现在展示一些,服务器给客户端发送数据“Hello”

        

        当出现这样的数据字样,说明我们的消息已经安全发送给了客户端,这里有一点我没有理解,就是服务器给客户端发信息,发送完指令“AT+CIPSEND=0,4”,每次只能发送一次数据,要是想多发还得重新再次发送这个指令“AT+CIPSEND=0,4”,这一点我没有明白,如果有高手看见,也可以为我答疑解惑一下,谢谢!

(还要说一下这个指令“AT+CIPSEND=0,4”,指令中“0”代表代号,“4”表示可以发送多长的数据长度)

        接下来我们看看客户端是否正常接收到了我们这个信息

        

        可以看到,我们客户端完美接收到数据


        到这里我们的ESP8266模块的服务器与客户端互联互通已经完美诠释,网上还有非常多的无线模块学习的教程,大家如果对无线、蓝牙等模块感兴趣的话,也可以上网多看看多学习学习,还要非常多的AT指令我没有向大家演示,等我熟练了,再向大家展示其他的AT指令,以后学习的路还很长,希望大家不要放弃前进的脚步,最后我送大家一句我的专业课老师常说的一句话:“在学习物联网专业知识的道路上是不可能一帆风顺的,为有不断克服困难,持续创新,未来的道路才是一片光明!

        谢谢大家的观看与借鉴!

  • 43
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值