arduino环境esp32c3 保存wifi的ssid,密码,保存tcpserver的ip地址和端口
时间: 2024-03-02 19:15:27 浏览: 285
在 ESP32-C3 上保存 WiFi 的 SSID 和密码以及 TCP Server 的 IP 地址和端口,您可以使用 EEPROM(电可擦除可编程只读存储器)来实现。
首先,您需要安装并导入 EEPROM 库。打开 Arduino IDE,依次点击“工具”>“管理库”,然后搜索并安装 "EEPROM" 库。
下面是一个示例代码,演示了如何在 ESP32-C3 上保存和读取 WiFi SSID、密码以及 TCP Server 的 IP 地址和端口:
```cpp
#include <WiFi.h>
#include <EEPROM.h>
// 定义常量
#define SSID_SIZE 32
#define PASSWORD_SIZE 64
#define IP_SIZE 16
#define PORT_SIZE 6
// 定义地址偏移量
int ssid_offset = 0;
int password_offset = ssid_offset + SSID_SIZE;
int ip_offset = password_offset + PASSWORD_SIZE;
int port_offset = ip_offset + IP_SIZE;
void setup() {
// 初始化串口
Serial.begin(115200);
// 初始化 EEPROM
EEPROM.begin(512);
// 读取保存的配置信息
String ssid = readFromEEPROM(ssid_offset, SSID_SIZE);
String password = readFromEEPROM(password_offset, PASSWORD_SIZE);
String ip = readFromEEPROM(ip_offset, IP_SIZE);
String port = readFromEEPROM(port_offset, PORT_SIZE);
// 如果配置信息为空,则进行初始配置
if (ssid == "" || password == "" || ip == "" || port == "") {
ssid = "your_wifi_ssid";
password = "your_wifi_password";
ip = "your_tcpserver_ip";
port = "your_tcpserver_port";
// 保存配置信息
saveToEEPROM(ssid_offset, ssid);
saveToEEPROM(password_offset, password);
saveToEEPROM(ip_offset, ip);
saveToEEPROM(port_offset, port);
}
// 连接 WiFi
WiFi.begin(ssid.c_str(), password.c_str());
// 等待连接成功
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
// 主循环
}
// 从 EEPROM 中读取数据
String readFromEEPROM(int offset, int size) {
String data = "";
for (int i = offset; i < offset + size; i++) {
char c = EEPROM.read(i);
if (c == '\0') {
break;
}
data += c;
}
return data;
}
// 将数据保存到 EEPROM
void saveToEEPROM(int offset, String data) {
for (int i = offset; i < offset + data.length(); i++) {
EEPROM.write(i, data[i - offset]);
}
EEPROM.write(offset + data.length(), '\0'); // 添加字符串结束符
EEPROM.commit(); // 提交更改
}
```
在这个示例中,我们首先定义了保存配置信息的大小和地址偏移量。然后,在 `setup()` 函数中,我们从 EEPROM 中读取保存的配置信息。如果配置信息为空,则进行初始配置,并将配置信息保存到 EEPROM 中。
然后,我们使用读取到的 WiFi SSID 和密码来连接 WiFi,并打印连接状态和 IP 地址。
`readFromEEPROM()` 函数用于从 EEPROM 中读取数据,`saveToEEPROM()` 函数用于将数据保存到 EEPROM 中。
请注意,这只是一个示例代码,您可以根据实际需求进行修改和扩展。
希望对您有所帮助!如有任何疑问,请随时提问。
阅读全文