admin 管理员组

文章数量: 887021

ESP8266 WIFI 模块通过TTL模块和手机通信


文章目录

  • ESP8266 WIFI 模块通过TTL模块和手机通信
  • 前言
  • 1、调试工具
  • 2、模块接线
  • 3、模块作为客户端 STA
    • 3.1、模块指令
    • 3.2、指令示例
    • 3.3、数据传输
  • 4、模块作为服务器 STA
    • 4.1、模块指令
    • 4.2、指令示例
    • 4.3、透传数据
  • 5、电脑网络助手通信 STA
    • 5.1、模块指令
  • 6、模块作为客户端 AP
    • 6.1、模块指令
    • 6.2、指令示例
  • 7、模块作为服务器 AP
    • 7.1、模块指令
    • 7.2、指令示例
  • 8、模块串口连接原子云服务器
  • 9、两个模式之间进行通信
    • 9.1、模块指令
  • 10、退出透传模式方法
  • 11、固件烧写
  • 总结


前言

随着物联网智能化的不断发展,越来越多人选择了无线通信设备,比如WiFi、蓝牙、Lora、zigbee、2G/4G模块等物联网无线通信模块,从而可以更好地达到无线控制目的。


1、调试工具

1.这款调试助手支持的功能比较齐全,可以自行到手机应用市场下载。

2.串口调试助手用的是正点原子提供的 XCOM 软件。

2、模块接线

如下图:

USB-TTL模块WiFi模块
VCC(5V)VCC(5V)
GNDGND
RXDTXD
TXDRXD
GNDIO_0 (刷固件)
  • IO_0 这个引脚是在刷固件时使用的,接到地就行,在通信时默认悬空(不接)即可。

3、模块作为客户端 STA

模块作为客户端时,那么手机就要选作服务器。

3.1、模块指令

STA 模式,TCP 客户端 配置指令
   指令					                              作用
AT    				                      //测试指令
AT+CWMODE=1				                  //设置模块 WIFI 模式为 STA 模式
AT+RST					                  //重启模块生效
AT+CWJAP="xxxx","xxxxxxxxx"	              //连接 WIFI热点,路由名字:xxx,密码:12345678
AT+CIPSTART="TCP","192.168.xx.xxx",8088	  //建立 TCP 连接到” 192.168.xx.xxx”,8088
AT+CIPMODE=1				              //开启透传模式
AT+CIPSEND				                  //开始传输
+++(不加回车,只发一次)				      //退出透传模式,发送一次即可(可以发+++后勾上发送新行再发AT测试是否退出透传模式)

3.2、指令示例

将模块通过USB-TTL模块接到电脑后选择串口端口号,波特率要根据模块来选择,后续可以自行用指令来配置合适的波特率。

1.发送AT指令测试模块是否连接成功,才可正常通信。这里要注意的是发指令时是要勾选这个回车换行的(发送新行),不然指令是发送返回失败的提示。

2.发AT+CWMODE=1 设置模块 WIFI 模式为 STA 模式

3.发送复位指令,重启后提示模板的固件版本信息等。

4.连接路由器网络,提示WIFI CONNECTED 表示成功连接上路由器 WiFi了。

5.手机建立TCP服务器,打开软件如下图:点击TCP服务器创建。

6.然后点击底部加号添加一个服务器。

7.填服务器的名称,地址是固定了的,无法修改,端口号随便一个四位数即可,最后点击保存。

8.建好的服务器如下图:点击进去服务器界面。

9.PC端调试助手发AT+CIPSTART=“TCP”,“192.168.31.244”,8088 建立 TCP 连接到”192.168.xx.xxx”,8088,这里的地址和端口必须要和创建的服务器保持一致。

10.PC发送后就可以在手机助手界面看到已连接的提示。

这里要注意手机和模块要在同一个局域网才可以(即手机和模块都连同一个WiFi)。

3.3、数据传输

电脑调试助手分别发送下面的指令:
AT+CIPMODE=1 开启透传模式
AT+CIPSEND 开始透传数据

在串口助手发送数据:



上面的就是串口调试助手和手机网络助手对发数据的过程。如果这个调试通过了就可以用程序发指令收发数据啦,可以用于手机和单片机开发板通信了。
在发+++退出透传模式时,注意退出透传模式时是不需要勾发送新行的,否则就把+++当数据处理了。

4、模块作为服务器 STA

模块作为服务器时,那么手机就要选作客户端。

4.1、模块指令

STA 模式,TCP 服务器 配置指令
   指令					                              作用
AT    				                      //测试
AT+CWMODE=1				                  //设置模块 WIFI 模式为 STA 模式
AT+RST					                  //重启模块生效
AT+CWJAP="xxx","xxxxxxx"	              //连接 WIFI热点,路由名字:xxx,密码:12345678
AT+CIPMUX=1				  				  //开启多连接模式,即可以连接多个客户端
AT+CIPSERVER=1,8086						  //开启服务器,端口号为 8086
AT+CIFSR				                  //查询WiFi设备IP,用于客户端
AT+CIPSEND=0,5				              //向 ID0 发送 5 字节的数据(多少个字符就对应输入多少,5则表示5个字符)
12345  				                      //模块发送数据,在该模式下,每发一次数据之前都要发一次AT+CIPSEND=0,5指令才可以,接收端则不用每次都发,直接发数据即可。

4.2、指令示例

1.发送AT指令测试模块是否连接成功,才可正常通信。这里要注意的是发指令时是要勾选这个回车换行的(发送新行),不然指令是发送返回失败的提示。

2.发AT+CWMODE=1 设置模块 WIFI 模式为 STA 模式

3.发送复位指令,重启后提示模板的固件版本信息等。

4.连接路由器网络,提示WIFI CONNECTED 表示成功连接上路由器 WiFi了。

5.依次发送下面的指令:
AT+CIPMUX=1 开启多连接模式
AT+CIPSERVER=1,8086 开启服务器,端口号为 8086
AT+CIFSR 查询WiFi设备IP,用于客户端

6.手机建立TCP客户端,打开软件如下图:点击TCP客户端创建。

7.点击底部的加号添加。

8.编辑信息,名字随便起,IP是WiFi模块的IP,端口号是上面指令发的8086。

9.创建好的TCP 客户端如下图:

10.进入客户端界面,正常连接成功是会提示连接成功的,如果没有,可以再次在电脑发送AT+CIPSERVER=1,8086指令就可以提示连接上了。

4.3、透传数据

提示连接成功之后可以正常收发数据了。

在该模式下,电脑发送数据,每发一次数据之前都要发一次AT+CIPSEND=0,5指令才可以正常发送数据,否则提示错误。手机端则不用每次都发,直接发数据即可。

上面的就是串口调试助手和手机网络助手对发数据的过程。
该模式下透传完数据之后不需要发+++退出透传,直接发AT指令就可进入配置模式了。

5、电脑网络助手通信 STA

另外如果不想用手机,可以在电脑用网络调试助手测试,步骤一样的,都是建立服务器的过程,特别要注意的就是网络要在同一个局域网。

5.1、模块指令

STA 模式,TCP 服务器 配置指令
   指令					                              作用
AT    				                      //测试
AT+CWMODE=1				                  //设置模块 WIFI 模式为 STA 模式
AT+RST					                  //重启模块生效
AT+CWJAP="Ryan","12345678"	              //连接 WIFI热点,路由名字:Ryan,密码:12345678
AT+CIPSTART="TCP","192.168.1.168",8080	  //建立 TCP 连接到” 192.168.1.XXX”,8080
AT+CIPMODE=1				              //开启透传模式
AT+CIPSEND				                  //开始传输
+++(不加回车,只发一次)				      //退出透传模式

对应发相应的指令

开启透传模式后,可以给网络调试助手发送数据了

网络调试助手可以手动串口调试助手发过来的信息了,同时也可以发送数据到串口调试助手

发送+++退出数据透传,不要回车。

这里要注意的是,虽然退出了透传模式,但是网络调试助手还是可以给串口调试助手发消息的,只是串口助手数据发不出而已。

6、模块作为客户端 AP

模块作为客户端时,那么手机就要选作服务器。

6.1、模块指令

AP 模式,TCP 客户端 配置指令
   指令					                              作用
AT    				                      //测试指令
AT+CWMODE=2				                  //设置模块 WIFI 模式为 AP 模式
AT+RST					                  //重启模块生效
AT+CWSAP="ATK-ESP8266","12345678",1,4     //AP 参数:SSID 为 ATK-ESP8266,密码为 xxx,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=0								  //开启单连接模式
AT+CIFSR				                  //查询模块IP,与客户端建立连接时用到
AT+CIPSTART="TCP","192.168.xx.xxx",8086	  //建立 TCP 连接到” 192.168.xx.xxx”,8088
AT+CIPMODE=1				              //开启透传模式
AT+CIPSEND				                  //开始传输
+++(不加回车,只发一次)				      //退出透传模式,发送一次即可(可以发+++后勾上发送新行再发AT测试是否退出透传模式)

6.2、指令示例

略:可以参考上面的STA的用法,用法一样。

7、模块作为服务器 AP

模块作为客户端时,那么手机就要选作服务器。

7.1、模块指令

AP 模式,TCP 服务器 配置指令
   指令					                              作用
AT    				                      //测试指令
AT+CWMODE=2				                  //设置模块 WIFI 模式为 AP 模式
AT+RST					                  //重启模块生效
AT+CWSAP="ATK-ESP8266","12345678",1,4     //AP 参数:SSID 为 ATK-ESP8266,密码为 xxx,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=1								  //开启多连接模式,作为服务器最多支持5个客户端连接,id分配顺序是0-4
AT+CIPSERVER=1,8086			              //开启 SERVER(服务器)模式,设置端口为 8086(自己定义)
AT+CIFSR				                  //查询模块IP,与客户端建立连接时用到
AT+CIPSEND=0,5							  //向 ID0 发送 5 字节数据包
12345   								  //模块发送数据,在该模式下,每发一次数据之前都要发一次AT+CIPSEND=0,5指令才可以,接收端则不用每次都发,直接发数据即可。

7.2、指令示例

略:可以参考上面的STA的用法,用法一样。

8、模块串口连接原子云服务器

原子云即原子云服务器,是ALIENTEK(正点原子)推出的物联网云服务平台,它可以实现数据的远程监控、转发和管理等功能,在未来也会持续更新更多的功能以满足用户的需求。原子云域名为:loud.alientek,端口号为:59666。

原子云服务器地址入口:https://cloud.alientek/, 进去之后注册账号和设置登录密码。

WiFi模块连接云服务器之前需要确保该模块是否有刷了对应云服务器的固件才行,如果模块里面没有对应的固件的话是无法连接云服务器的。比如WiFi模块需要连接原子云,那么模块里面就需要有原子云的固件支持才行。

原子云固件目录:

固件烧写步骤可以参考下面章节的固件烧写步骤教程即可。

注意:在连接原子云服务器之前,模块需要设置为 STA 模式,然后模块连接 wifi 路由器,最后使用配置指令AT+ATKCLDSTA 就可以连接原子云服务器了。

指令如下:

            WiFi模块连接原子云服务器 配置指令
   指令					                              作用
AT    				                           //测试指令
AT+CWMODE=1                                    //设置模块为 STA 模式
AT+CWJAP="xxx","xxx"                           //模块连接 Wifi 路由器
AT+ATKCLDSTA="33597475321057190297","12345678" //连接原子云服务器,添加编号和密码

准备工作都完成后就可以进行连接了。

第一步:创建一个原子云服务器的ESP8266 WiFi设备。如下:


新增完成后是这个效果:
此时,可以看到设备的状态是处于断开的。需要等WiFi模块连接成功后才可以提示已连接,并进行消息的收发。

第二步:打开串口调试助手。

依次按照上面的指令步骤发即可。

调试助手回显OK后表示已经连接上了原子云了,服务器这边也可以有提示已连接的字样如下。

接下来就可以通过串口调试助手和原子云进行数据透传了。点击右边的消息收发按钮,弹出消息框,输入。

两边就可以进行数据的收发了。

注意:
1、一段时间不收发数据,服务器是会断开的。
2、突然需要断开服务器,只能把模块的电拔掉,无法用指令断开服务器的。

9、两个模式之间进行通信

实现两个模块之间的通信,可以一个模块配置为AP模式,另外一个配置为STA的。

9.1、模块指令

AP 模式 配置指令
   指令					                              作用
AT    				                      //测试指令
AT+CWMODE=2				                  //设置模块 WIFI 模式为 AP 模式
AT+RST					                  //重启模块生效
AT+CWSAP="ATK-ESP8266","12345678",1,4     //AP 参数:SSID 为 ATK-ESP8266,密码为 xxx,通道号为 1,加密方式为:WPA_WPA2_PSK
AT+CIPMUX=1								  //开启多连接模式,作为服务器最多支持5个客户端连接,id分配顺序是0-4
AT+CIFSR				                  //查询模块IP,与客户端建立连接时用到
AT+CIPSERVER=1,8086			              //开启 SERVER(服务器)模式,设置端口为 8086(自己定义)
AT+CIPSEND=0,5							  //向 ID0 发送 5 字节数据包
12345   								  //模块发送数据,在该模式下,每发一次数据之前都要发一次AT+CIPSEND=0,5指令才可以,接收端则不用每次都发,直接发数据即可。
STA 模式 配置指令
   指令					                              作用
AT    				                      //测试
AT+CWMODE=1				                  //设置模块 WIFI 模式为 STA 模式
AT+RST					                  //重启模块生效
AT+CWJAP="ATK-ESP8266","12345678"	      //连接 WIFI热点,路由名字:Ryan,密码:12345678
AT+CIPSTART="TCP","192.168.xxx.xxx",8086  //建立 TCP 连接到” 192.168.xxx.XXX”,8086,AP模式下以查询到
AT+CIPMODE=1				              //开启透传模式
AT+CIPSEND				                  //开始传输
98765   								  //模块发送数据
+++(不加回车,只发一次)				      //退出透传模式

配置完上面的指令后就可以正常通信了.

10、退出透传模式方法

在通信结束后,需要发+++退出透传模式。

注意:发送+++时,不能勾选发送新行,即不能添加回车换行处理,否则发送会不成功,直接就把你的+++当作数据来处理了。

下图是正常通信的样子:

操作步骤如下

第一步:在发送区输入+++
第二步:取消勾选发送新行
第三步:点击发送,点击一次发送即可

退出后的提示如下:

可以看到有OK返回了,正常回到测试指令步骤了。

11、固件烧写

在之前使用的基础上,烧写固件之前,注 意 I0_0 需 在 模 块 上 电 之 前 连 接 到 GND, 然 后 打 开 固 件 烧 写 软 件ESPFlashDownloadTool.exe 。点击 START,然后重新给模块上电,即可自动烧录。

我双击这个软件的时候,啥反应都没有,于是把整个文件夹拷贝到桌面就可以正常打开了,估计是中文路径太长了导致无法打开。

依次添加这两个固件,路径【正点原子】WIFI模块ATK-ESP8266资料\6,ESP8266相关资料\固件烧写及说明\原子云固件v2.4

选择相关的参数,注意串口号的选择,然后点击START。

重新给模块上电,等待烧写完成


最后提示完成就表示刷好了。


总结

上面是WiFi模块的一些简单测试过程,感觉蛮好玩的,由于时间有限,只是测试了STA模式的,没有时间去测试AP模式了,后续可以抽空的话,再去玩玩。

8266WiFi模块总体使用还是比较简单的,只要发对了指令就可以正常工作在对应的模式下,其它的指令就没有写出来了,具体可以去看指令集。

在后面补充一下,电脑调试助手输入指令是需要选择半角输入法(即是英文输入法),如果是中文输入法的话,会提示指令错误的,特别是双引号,之前学习就踩了这些坑。

本文标签: 模块 通信 手机 WiFi