两个esp32实现手法数据,给出发送方和接收的程序
时间: 2024-02-25 09:54:40 浏览: 105
ESP8266串口接收发送.rar_C语言_esp8266_keil_stc12_串口接收
5星 · 资源好评率100%
以下是两个ESP32之间通过Wi-Fi实现数据传输的例子,其中一个ESP32为发送方,另一个ESP32为接收方。
发送方程序:
```
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const IPAddress remote_ip(192, 168, 1, 2); // 接收方的IP地址
const uint16_t remote_port = 1234; // 接收方的端口号
void setup() {
Serial.begin(115200);
// 连接Wi-Fi网络
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// 设置UDP客户端
udp.beginPacket(remote_ip, remote_port);
}
void loop() {
// 生成数据
float data = random(0, 1000) / 10.0;
// 发送数据
udp.write((uint8_t*)&data, sizeof(data));
udp.endPacket();
Serial.print("Sent data: ");
Serial.println(data);
delay(1000);
}
```
在上述代码中,我们使用了WiFi库来连接Wi-Fi网络,并使用UDP协议发送数据。在setup()函数中,我们首先连接到Wi-Fi网络,然后使用udp.beginPacket()函数设置接收方的IP地址和端口号。
在loop()函数中,我们生成一些数据,并使用udp.write()函数将数据发送到接收方。然后使用udp.endPacket()函数结束数据包的发送。最后,我们打印发送的数据。
接收方程序:
```
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const uint16_t local_port = 1234; // 接收方的端口号
void setup() {
Serial.begin(115200);
// 连接Wi-Fi网络
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
// 设置UDP服务器
udp.begin(local_port);
}
void loop() {
// 接收数据
if (udp.parsePacket()) {
float data;
udp.read((uint8_t*)&data, sizeof(data));
Serial.print("Received data: ");
Serial.println(data);
}
delay(10);
}
```
在上述代码中,我们同样使用了WiFi库来连接Wi-Fi网络,并使用UDP协议接收数据。在setup()函数中,我们首先连接到Wi-Fi网络,然后使用udp.begin()函数设置接收方的端口号。
在loop()函数中,我们使用udp.parsePacket()函数检查是否有数据包到达。如果有,我们使用udp.read()函数读取数据,并打印接收到的数据。请注意,我们使用了一个小的延迟来避免CPU过度占用。
请注意,以上代码仅为演示目的,您需要根据您的具体需求进行修改和优化。
阅读全文