Arduino如何实现 ESP8266wifi模块之间通信代码
时间: 2024-02-18 12:05:07 浏览: 68
下面是一个简单的示例代码,演示如何在两个ESP8266 wifi模块之间通过TCP连接进行通信。其中一个ESP8266 wifi模块作为TCP服务器,另一个ESP8266 wifi模块作为TCP客户端。
TCP服务器端代码:
```
#include <ESP8266WiFi.h>
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
WiFiServer server(80);
void setup() {
Serial.begin(9600);
delay(10);
// 连接无线网络
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
// 启动TCP服务器
server.begin();
Serial.println("Server started");
}
void loop() {
// 等待客户端连接
WiFiClient client = server.available();
if (!client) {
return;
}
// 读取客户端发送的数据
Serial.println("New client");
while (client.connected()) {
if (client.available()) {
String request = client.readStringUntil('\r');
Serial.println(request);
// 发送响应数据
client.println("Hello from server");
break;
}
}
// 关闭连接
client.stop();
Serial.println("Client disconnected");
}
```
TCP客户端端代码:
```
#include <ESP8266WiFi.h>
const char* ssid = "YourWiFiSSID";
const char* password = "YourWiFiPassword";
const char* serverIp = "192.168.1.100"; // TCP服务器的IP地址
int serverPort = 80; // TCP服务器的端口号
void setup() {
Serial.begin(9600);
delay(10);
// 连接无线网络
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
}
void loop() {
// 连接TCP服务器
WiFiClient client;
if (!client.connect(serverIp, serverPort)) {
Serial.println("Connection failed");
return;
}
// 发送数据到TCP服务器
client.println("Hello from client");
// 读取TCP服务器响应的数据
while (client.connected()) {
if (client.available()) {
String response = client.readStringUntil('\r');
Serial.println(response);
break;
}
}
// 关闭连接
client.stop();
Serial.println("Disconnected");
// 等待一段时间后再次连接
delay(5000);
}
```
在实际使用中,需要根据实际需求进行修改和优化。
阅读全文