ESP8266深度学习之五通过两个ESP8266芯片实现相互通信功能(AT模式)

一、设计基本思路
要实现两个ESP8266相互通信,常规方案是需要一个ESP8266做服务器,另外一个做客户端,这样就建立起了CS架构。当然,作为客户端的ESP8266与之前相比没有什么本质差别,重点是服务器端的ESP8266我们需要考虑如何设计。
二、硬件环境搭建
这里我们使用两个ESP8266-01S的芯片进行测试,其它芯片用起来是一样的,因此我们简化处理。
三、软件环境配置
为了更好的实现环境测试,首先确保服务器端的01S已经刷了AT固件。本人正常是首先连接好ESP8266芯片后,通过发送AT指令,查看回显状态,如下:
AT测试
这里本人使用的是ESP8266调试工具2.3版本,在安信可网站上有下载链接,如果有这个软件的需求,也可以评论留言,我专项发给大家。
如果没有回显信息,且ESP8266设备连接正常,则需要进行烧录,具体烧录方法和之前我写的MicroPython的烧录方法一样,只需下载烧录固件即可,下载固件在安信可官网和我的CSDN的下载里也有。
以上条件具备的前提下,首先我们设置服务器:
(一)设置ESP8266工作模式:AT+CWMODE=2 或者 AT+CWMODE=3,2为AP模式,3为兼容模式,这两个都行,建议使用AP模式。返回结果正常为OK。
(二)设置连接限制,习惯上执行指令:AT+CIPMUX=1,代表使用多连接、即多个设备可连接本设备。返回结果正常为OK。
(三)建立服务器server指令: AT+CIPSERVER=1,7000 代表开启服务器,端口号为7000。当然,端口号为自定义值,一般设置四位数,不低于1024,以免影响其它协议端口使用。返回结果正常为OK,且模式连接模式是TCP模式。
如果有客户端申请连接,显示为: 0,CONNECT,0代表是第一个客户端的编号。
(四)建议WIFI服务器的账户、密码和通道号:AT+CWSAP=“JM_ESP”,“23456789”,11,3 其中11为通道号,需要设置在1-13之间,相当于建立了一个连接通路。用户名和密码是根据个人喜好自定义的。当然,设置成功以后,系统也是反馈OK。
经过以上四步,系统基本的服务器能力已经建立起来了。在打开电脑或者手机WIFI后,会出现一个JM_ESP的WIFI网络。我们可以尝试连接测试。效果如下图:
wifi连接效果
(五)要想知道服务器的IP地址是多少,可以使用如下指令:AT+CIFSR
反馈的结果如下:
+CIFSR:APIP,“192.168.4.1”
+CIFSR:APMAC,“2e:f4:32:54:14:32”
芯片模式的服务器IP地址就是.4.1,后面是MAC地址。
下面再用手机网络调试助手测试下TCP模式:
客户端发送界面:
手机端情况

服务器接收界面:可以看到,服务器端接收到的数据有+IPD,0,3:123
其中+IPD是固定的,0代表设备编码,3代表我们设置服务器时的3的序号,123是发送的内容。
服务器接收代码
相应的服务器发送给客户端的数据信息需要如下指令:
AT+CIPSEND=0,4 这里0代表设备编号,4代表需要发送的字节数,然后qwert是需要发送的内容。
由于我们只设置发送4个字节,我们敲了5跟字节,那么客户端只能显示qwer,t是发送不出去的。
111
先写到这里,下阶段再把ESP8266替换为客户端进行配置即可。比较简单,待后续加上吧。
四、注意问题
(一)在服务器需要发送的数据大小与实际发送大小不一致时,发送的信息会有问题。
比如需要发送4个字节,我们只敲了123,则结构客户端接收信息为1231,敲了12的话,接收的信息为1212.即系统会补全不够的字节信息,当然多出来的话,系统就直接截断一部分数据了。
(二)在实际测试时,有时候设置了服务器端口后,仍然无法连接TCP协议,目前采用的处理方案时保存现有配置后重启再执行端口配置指令。

发布了11 篇原创文章 · 获赞 16 · 访问量 2088

猜你喜欢

转载自blog.csdn.net/qxrobot/article/details/103547837