两个esp8266互相通讯
时间: 2023-11-25 19:05:40 浏览: 254
两个ESP8266之间可以通过串口通信或者Wi-Fi通信进行互相通讯。下面是两种通信方式的介绍:
1. 通过串口通信
a. 硬件连接:将两个ESP8266的TX引脚分别连接到对方的RX引脚,将两个ESP8266的RX引脚分别连接到对方的TX引脚。
b. 程序设计:在每个ESP8266上编写程序,通过串口发送和接收数据。例如,一个ESP8266发送数据的代码如下:
```python
import machine
import time
uart = machine.UART(0, 115200) # 初始化串口
uart.write('Hello, ESP8266!') # 发送数据
time.sleep(1) # 等待1秒钟
```
另一个ESP8266接收数据的代码如下:
```python
import machine
import time
uart = machine.UART(0, 115200) # 初始化串口
while True:
if uart.any():
data = uart.read() # 读取数据
print(data) # 输出数据
time.sleep(0.1) # 等待0.1秒钟
```
2. 通过Wi-Fi通信
a. 硬件连接:将两个ESP8266分别连接到同一个Wi-Fi网络中。
b. 程序设计:在每个ESP8266上编写程序,通过Wi-Fi发送和接收数据。例如,一个ESP8266发送数据的代码如下:
```python
import socket
import time
addr = ('192.168.1.100', 8080) # 接收方的IP地址和端口号
s = socket.socket() # 创建socket对象
s.connect(addr) # 连接到接收方
s.send('Hello, ESP8266!') # 发送数据
s.close() # 关闭socket
time.sleep(1) # 等待1秒钟
```
另一个ESP8266接收数据的代码如下:
```python
import socket
import time
addr = ('', 8080) # 本地IP地址和端口号
s = socket.socket() # 创建socket对象
s.bind(addr) # 绑定到本地IP地址和端口号
s.listen(1) # 监听连接
conn, addr = s.accept() # 接受连接
while True:
data = conn.recv(1024) # 接收数据
if not data:
break
print(data) # 输出数据
conn.close() # 关闭连接
s.close() # 关闭socket
```
阅读全文