ESP8266 WIFI 模块和手机通信
ESP8266 WIFI 模块通过TTL模块和手机通信
文章目录
前言
随着物联网智能化的不断发展,越来越多人选择了无线通信设备,比如WiFi、蓝牙、Lora、zigbee、2G/4G模块等物联网无线通信模块,从而可以更好地达到无线控制目的。
1、调试工具
1.这款调试助手支持的功能比较齐全,可以自行到手机应用市场下载。
2.串口调试助手用的是正点原子提供的 XCOM 软件。
2、模块接线
如下图:
USB-TTL模块 | WiFi模块 |
---|---|
VCC(5V) | VCC(5V) |
GND | GND |
RXD | TXD |
TXD | RXD |
GND | 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、固件烧写
在之前使用的基础上,烧写固件之前,注 意 I0_0 需 在 模 块 上 电 之 前 连 接 到 GND, 然 后 打 开 固 件 烧 写 软 件ESPFlashDownloadTool.exe 。点击 START,然后重新给模块上电,即可自动烧录。
我双击这个软件的时候,啥反应都没有,于是把整个文件夹拷贝到桌面就可以正常打开了,估计是中文路径太长了导致无法打开。
依次添加这两个固件,路径【正点原子】WIFI模块ATK-ESP8266资料\6,ESP8266相关资料\固件烧写及说明\原子云固件v2.4
选择相关的参数,注意串口号的选择,然后点击START。
重新给模块上电,等待烧写完成
最后提示完成就表示刷好了。
9、总结
上面是WiFi模块的一些简单测试过程,感觉蛮好玩的,由于时间有限,只是测试了STA模式的,没有时间去测试AP模式了,后续可以抽空的话,再去玩玩。
8266WiFi模块总体使用还是比较简单的,只要发对了指令就可以正常工作在对应的模式下,其它的指令就没有写出来了,具体可以去看指令集。
在后面补充一下,电脑调试助手输入指令是需要选择半角输入法(即是英文输入法),如果是中文输入法的话,会提示指令错误的,特别是双引号,之前学习就踩了这些坑。