签到天数: 866 天 [LV.10]以坛为家III
|
本次测试将使用手机或者电脑和ESP模块进行数据通信。(是手机或电脑直接连接ESP wifi模块)本人电脑没有无线功能,所以一下测试以手机为例!
首先下载并安装相应软件:手机 app - 网络调试助手:
电脑端串口软件:
电脑端测试软件(本文中没做测试,测试方法和手机相同,可以参考)也给出,想用电脑测试的下载安装这个 - 调试助手:
模块通过FT232(USB串口设备)连接至电脑,这样我们可以通过串口软件观察数据通信!
1、手机做客户端-client,模块做服务端-server
首先配置模块为服务端:
AT+CWMODE=2 将模块配置到 AP 模式
AT+CWSAP="YFRobot_ESP","12345678",11,0 设置模块 AP 模式下的参数
YFRobot_ESP ---- 接入点名称
12345678 ---- 密码
11 ---- 通道号 (通道修改后需要+RST重启模块)
0 ---- 加密模式 0 - OPEN 1 - WEP 2 - WPA_PSK 3 - WPA2_PSK 4 - WPA_WPA2_PSK
AT+CIFSR 查询当前设备IP
+CIFSR:APIP,"192.168.4.1"
+CIFSR:APMAC,"1a:fe:34:99:9a:c1"
+CIFSR:STAIP,"192.168.1.110"
+CIFSR:STAMAC,"18:fe:34:99:9a:c1"
AT+CIPMUX=1 启动多路连接模式(最多接入5个设备 id:0~4)
AT+CIPSERVER=1,5000 开启server,client接入会自动按顺序占用一个连接。
注:AT+CIPMUX=1 情况下才能开启服务器。
前两条AT指令,配置一次即可,模块重启不会改变,第三条为查询指令;也就是说当模块下次重启时,只需配置最后两条AT指令!
至此,这样就配置好模块了,下面用手机连接到该模块,这个应该都会吧,打开无线网,搜索到该模块(上面设置的接入点名称),点击连接,如下图:AT+CWLIF 查询已连入设备 192.168.4.2,38:bc:1a:c7:18:47 -- 返回 IP 地址,MAC 地址
安装完APP 后,打开软件 按下图步骤操作(本人手机系统5.1):
可连接成功后,可以通过下面的AT指令查询连接状态:
AT+CIPSTATUS 查询连接状态
STATUS:3
+CIPSTATUS:0,"TCP","192.168.4.2",36594,1
参数
0 -- 连接的 id 号 (范围 0~4)
TCP -- 连接类型
192.168.4.2 -- IP地址
36594 -- 端口号
1 -- 本模块做 server 的连接(0 -- client)
ESP模块做为服务端想要给手机客户端发送数据,必须申请(不然不知道发给谁了):
AT+CIPSEND=0,15 申请发送15个字符数据 至 0 号客户端(客户端号按连接顺命名)
请求成功后,会显示符号“>”,这时直接发送已申请大小的数据即可:
hello client-0!
注:若输入数据大小大于申请大小,则数据不能完整发送
若输入数据大小小于申请大小,则等待输入数据输入满大小才进行发送
注:UDP模式下手机做客户端client,数据通信没有成功,具体原因不清楚
-------------------------------分割线------------------------------------------------------
2、模块做客户端-client,手机做服务端-server
wifi连接不变按照上面的步骤连接即可,然后手机端开启服务,模块连接手机!连接完成,即可进行数据通信,具体操作如图:
以下不同情况,都可参照上图操作顺来测试,模块配置指令略有不同!
模块配置指令如下:
TCP 连接 -----
● 单路连接:
AT+CIPMUX=0 单路连接设置(只有当连接都断开才可更改,可先AT+RST)
AT+CIPSTART="TCP","192.168.4.2",5000 建立 TCP 连接(类型,IP,端口号由手机开启服务决定,上图可见)
AT+CIPSEND=17 申请发送字符大小,回显字符 ">"
hello tcp server! 发送申请大小的字符串
手机端成功接收字符串:“hello tcp server!” 手机发送字符,ESP也同样可以接收到!
● 多路连接:
AT+CIPMUX=1 多路连接设置(只有当连接都断开才可更改,可先AT+RST)
AT+CIPSTART=0,"TCP","192.168.4.2",5000 建立 TCP 连接(和单路区别,需要参数 ID 号,范围0~4)
AT+CIPSEND=0,17 申请发送字符大小,回显字符 ">"
hello tcp server! 发送申请大小的字符串
手机端成功接收字符串:“hello tcp server!” 手机发送字符,ESP也同样可以接收到!
UDP连接 -----
● 单路连接:
AT+CIPMUX=0 多路连接设置(只有当连接都断开才可更改,可先AT+RST)
AT+CIPSTART="UDP","192.168.4.2",5000 建立 UDP 连接
AT+CIPSEND=17 申请发送字符大小,回显字符 ">"
hello udp server! 发送申请大小的字符串
手机端成功接收字符串:“hello udp server!” 手机发送字符,ESP也同样可以接收到!
● 多路连接:
AT+CIPMUX=1 多路连接设置(只有当连接都断开才可更改,可先AT+RST)
AT+CIPSTART=0,"UDP","192.168.4.2",5000 建立 UDP 连接(和单路区别,需要参数 ID 号,范围0~4)
AT+CIPSEND=0,17 申请发送字符大小,回显字符 ">"
hello udp server! 发送申请大小的字符串
手机端成功接收字符串:“hello udp server!” 手机发送字符,ESP也同样可以接收到!
UDP连接,AT+CIPSTART指令还有两个参数:
AT+CIPSTART=<id>,<type>,<addr>,<port>,<local port>,<mode>
<id> 0-4 连接的id号
<type> 字符串参数,表明连接类型
”TCP”建立TCP连接
”UDP”建立UDP连接
<addr> 字符串参数,远程服务器IP地址
<port> 远程服务器端口号
[<local port>] UDP传输时,设置本地端口
[<mode>] 0:收到数据后,不更改远程目标
1:收到数据后,改变一次远程目标
2:收到数据后,改变远程目标
最后两个参数只在UDP模式下有用,亲测有用。
----------------------------------------------------分割线-------------------------------------------------------------------------
注意:
1、发送数据时,数据结尾最好不带带回车换行,以防模块误判(AT指令结尾需要回车换行)
2、UDP连接完成后,手机端不弹出已连接的端口,也无法正常发送数据给模块(显示未连接);待模块发送一串数据后,手机端才出现已连接的端口并接收数据,然后才正常发送数据。
第二点和TCP 连接不同,不知道是否是 UDP 连接的原因?
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|