ESP8266 WIFI 模块和手机通信

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、总结

  • 前言

    随着物联网智能化的不断发展,越来越多人选择了无线通信设备,比如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 (刷固件)
  • 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模块总体使用还是比较简单的,只要发对了指令就可以正常工作在对应的模式下,其它的指令就没有写出来了,具体可以去看指令集。

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

    物联沃分享整理
    物联沃-IOTWORD物联网 » ESP8266 WIFI 模块和手机通信

    发表评论