资深版主
- 积分
- 10541
- 金钱
- 10541
- 注册时间
- 2017-2-18
- 在线时间
- 1908 小时
|
本帖最后由 peng1554 于 2019-9-21 15:44 编辑
昨天遇到一个用户反馈2个8266模块作为客户端连接1个8266模块作为服务器端不成功,所以写了这个帖子
该方法需要准备3个USB转TTL电路来分别接3个8266模块,模块接法是:
模块的RXD,TXD,VCC.GND分别接USB转TTL电路的TXD,RXD,5V,GND
帖子使用的模块为ATK-ESP8266模块,该模块带有ATK-ESP-01模组,模组烧写了正点原子8266固件,
如果不是用的该版本固件,请烧写,固件烧写方法见模块资料的ATK-ESP8266 WIFI用户手册_V1.3.pdf的固件烧写章节
模块资料:https://pan.baidu.com/s/19R-XAruYSmJVH1tpCTPNMw
这里我们使用模块1,模块2,模块3代表三个8266模块
模块1使用COM10通信,模块2使用COM4通信,模块3使用COM3通信
波特率:115200,8位数据位,1位停止位,无奇偶校验位
我们用模块1作为Tcp Sever,模块2和3都作为Tcp client,三个模块都连接同一个路由器
在同一个路由器下实现3模块之间的数据透传
各模块用到的AT指令如下图
一.设置模块1作为Tcp Server
串口助手依次发送这些指令给模块1
AT+RST
AT+CWMODE=1
AT+CWJAP="FAE","15902020353" //这里需要连接用户自己的路由,我这边路由SSID为FAE
AT+CIPMUX=1
AT+CIPSERVER=1,8080
AT+CIFSR
如下图,由下图知模块1的IP:192.168.0.106
二.设置模块2作为Tcp Client
串口助手依次发送这些指令给模块2
AT+RST
AT+CWMODE=1
AT+CWJAP="FAE","15902020353"
AT+CIFSR
AT+CIPSTART="TCP","192.168.0.106",8080
AT+CIPMODE=1
AT+CIPSEND
在发送完AT+CIPSTART="TCP","192.168.0.106",8080后,模块1会串口打印0,CONNECT表示模块2连上了模块1并且通道号为0
模块2的IP为192.168.0.108
上图便是实现模块2向模块1透传数据,也可以由模块1向模块2透传数据,模块1依次发送
AT+CIPSEND=0,11模块1数据
发送结果如下
三.设置模块3作为Tcp Client
串口助手依次发送这些指令给模块3
AT+RST
AT+CWMODE=1
AT+CWJAP="FAE","15902020353"
AT+CIFSR
AT+CIPSTART="TCP","192.168.0.106",8080
AT+CIPMODE=1
AT+CIPSEND
在发送完AT+CIPSTART="TCP","192.168.0.106",8080后,模块1会串口打印1,CONNECT表示模块3连上了模块1并且通道号为1
模块3的IP地址为:192.168.0.102
因为client端的模块2已经连上了Server端模块1 ,之前模块1已经分配给模块2通道0,所以模块1给模块2分配的是其他通道,
截图所示分配的是通道1
上图便是实现模块3向模块1透传数据,也可以由模块1向模块3透传数据,模块1依次发送
AT+CIPSEND=0,11
模块1数据
发送结果如下
最后附上3模块一起工作时的截图
|
|