ESP32 在arduino中 将wifi参数和要连接的TCP服务器参数设为结构体保存在flash中,上电后取出这些参数连上wifi和tcp服务器
时间: 2024-03-14 09:46:38 浏览: 60
好的,这是一个非常常见的应用场景。我可以给你提供一些代码示例,来帮助你实现这个功能。
首先,你需要定义一个结构体来保存 WiFi 和 TCP 服务器的参数。例如:
```c
struct WifiTcpParams {
char ssid[32]; // WiFi SSID
char password[64]; // WiFi 密码
char server[64]; // TCP 服务器地址
int port; // TCP 服务器端口
};
```
然后,你可以使用 Arduino 的 EEPROM 库来将这个结构体保存在 Flash 存储中。例如:
```c
#include <EEPROM.h>
// 定义结构体
struct WifiTcpParams params;
void saveParams() {
// 将结构体写入 EEPROM
EEPROM.put(0, params);
EEPROM.commit();
}
void loadParams() {
// 从 EEPROM 中读取结构体
EEPROM.get(0, params);
}
void setup() {
// 初始化 EEPROM
EEPROM.begin(sizeof(params));
// 读取参数
loadParams();
// 连接 WiFi
WiFi.begin(params.ssid, params.password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
}
// 连接 TCP 服务器
WiFiClient client;
while (!client.connect(params.server, params.port)) {
delay(1000);
}
}
void loop() {
// 主循环
}
```
这样,每次上电时,你就可以从 Flash 存储中读取 WiFi 和 TCP 服务器的参数,并连接上相应的网络。需要注意的是,在保存参数之前,你需要先连接上 WiFi,并确保 TCP 服务器可用。否则,保存的参数可能是错误的,无法正常连接网络。
阅读全文