两个esp32 利用arduino互相通讯
时间: 2023-07-03 22:14:49 浏览: 452
ESP32获取和风天气
两个ESP32之间可以通过串口通讯或者WiFi通讯进行互相通讯,下面分别介绍这两种方式的实现方法:
1. 串口通讯方式:
(1)在每个ESP32上安装Arduino IDE,并将它们连接到电脑上。
(2)打开Arduino IDE,选择Tools -> Board,选择ESP32 Dev Module。
(3)选择Tools -> Port,选择每个ESP32所连接的串口。
(4)在第一个ESP32上上传以下代码:
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello from ESP32 1!");
delay(1000);
}
(5)在第二个ESP32上上传以下代码:
void setup() {
Serial.begin(9600);
}
void loop() {
if (Serial.available()) {
Serial.println(Serial.readString());
}
}
(6)在第二个ESP32的串口监视器中,可以看到第一个ESP32发送的消息。
2. WiFi通讯方式:
(1)在每个ESP32上安装Arduino IDE,并将它们连接到电脑上。
(2)打开Arduino IDE,选择Tools -> Board,选择ESP32 Dev Module。
(3)选择Tools -> Port,选择每个ESP32所连接的串口。
(4)在第一个ESP32上上传以下代码:
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
WiFiServer server(80);
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
server.begin();
}
void loop() {
WiFiClient client = server.available();
if (client) {
Serial.println("New client connected");
while (client.connected()) {
if (client.available()) {
String request = client.readStringUntil('\r');
Serial.println(request);
client.println("Hello from ESP32 1!");
}
}
Serial.println("Client disconnected");
}
}
(5)在第二个ESP32上上传以下代码:
#include <WiFi.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop() {
Serial.println("Sending request to ESP32 1");
WiFiClient client;
if (client.connect("ESP32_1_IP", 80)) {
Serial.println("Connected to server");
client.println("GET / HTTP/1.1");
client.println("Host: ESP32_1_IP");
client.println("Connection: close");
client.println();
while (client.connected()) {
if (client.available()) {
String response = client.readStringUntil('\r');
Serial.println(response);
}
}
client.stop();
} else {
Serial.println("Connection failed");
}
delay(5000);
}
(6)将代码中的“your_SSID”和“your_PASSWORD”替换为你的WiFi SSID和密码。
(7)将代码中的“ESP32_1_IP”替换为第一个ESP32的IP地址,可以在第一个ESP32的串口监视器中查看。
(8)在第二个ESP32的串口监视器中,可以看到第一个ESP32发送的消息。
阅读全文