arduino esp32自动重连wifi和TCP代码
时间: 2023-10-26 10:05:07 浏览: 220
物联网嵌入式ESP32开发Arduino例程03-WiFi-TCP客户端Client网络通讯.rar
5星 · 资源好评率100%
以下是Arduino ESP32自动重连WiFi和TCP的代码示例:
```c++
#include <WiFi.h>
#include <WiFiClient.h>
#include <WiFiMulti.h>
#include <WiFiClientSecure.h>
#include <ESPmDNS.h>
#include <WiFiUdp.h>
#include <ArduinoJson.h>
const char* ssid = "your_SSID";
const char* password = "your_PASSWORD";
const char* host = "your_host";
const int port = 8080;
WiFiMulti wifiMulti;
WiFiClient client;
void setup() {
Serial.begin(115200);
wifiMulti.addAP(ssid, password); // 添加WiFi网络
}
void loop() {
if ((wifiMulti.run() == WL_CONNECTED) && (client.connected() == false)) { // 检查是否连接WiFi和TCP
Serial.println("WiFi connected");
Serial.println("Connecting to server...");
if (client.connect(host, port)) { // 连接TCP服务器
Serial.println("TCP connected");
} else {
Serial.println("TCP connection failed");
}
}
if (client.connected() && client.available()) { // 检查TCP连接和数据
String response = client.readStringUntil('\n');
Serial.println(response);
}
if (!client.connected()) { // 若TCP连接断开,重连
client.stop();
delay(1000);
if (wifiMulti.run() == WL_CONNECTED) {
client.connect(host, port);
}
}
}
```
该代码使用WiFiMulti库添加WiFi网络并检查连接状态,使用WiFiClient库连接TCP服务器并检查连接状态和数据,如果连接中断,则使用client.stop()断开连接并等待1秒钟,然后尝试重新连接。注意,该代码仅适用于单个TCP连接。如果需要处理多个TCP连接,则需要使用WiFiClient类的数组。
阅读全文