Esp8266网页配网添加云端密钥的完整版示例
时间: 2023-09-14 17:15:56 浏览: 59
以下是一个完整的示例,演示如何在ESP8266的网页配网页面中添加云端密钥并保存到EEPROM中:
```cpp
#include <EEPROM.h>
#include <ESP8266WiFi.h>
#include <WiFiManager.h>
// 定义EEPROM地址
#define EEPROM_SIZE 512
#define CLOUD_KEY_ADDR 0
void setup() {
// 初始化串口
Serial.begin(115200);
// 读取云端密钥
String cloudKey = readCloudKey();
// 初始化WiFiManager
WiFiManager wifiManager;
wifiManager.autoConnect("ESP8266AP");
// 等待WiFi连接
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
// 输出WiFi信息
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
// 设置Web服务器回调函数
wifiManager.setSaveConfigCallback(saveConfigCallback);
wifiManager.setWebServerCallback(webServerCallback);
// 启动Web服务器
wifiManager.startWebPortal();
}
void loop() {
// 在循环中不执行任何操作
}
// 保存配置回调函数
void saveConfigCallback () {
String cloudKey = WiFiManagerParameter("cloud_key").getValue();
writeCloudKey(cloudKey);
}
// Web服务器回调函数
void webServerCallback (WiFiManager *wifiManager) {
// 添加表单项
WiFiManagerParameter cloudKeyParam("cloud_key", "Cloud Key", readCloudKey().c_str(), 64);
wifiManager->addParameter(&cloudKeyParam);
}
// 读取云端密钥
String readCloudKey () {
String cloudKey = "";
for (int i = 0; i < 64; i++) {
char c = EEPROM.read(CLOUD_KEY_ADDR + i);
if (c == 0) {
break;
}
cloudKey += c;
}
return cloudKey;
}
// 写入云端密钥
void writeCloudKey (String cloudKey) {
for (int i = 0; i < cloudKey.length(); i++) {
EEPROM.write(CLOUD_KEY_ADDR + i, cloudKey[i]);
}
EEPROM.write(CLOUD_KEY_ADDR + cloudKey.length(), 0);
EEPROM.commit();
}
```
在这个示例中,我们使用了WiFiManager库来实现网页配网功能,并添加了一个名为“Cloud Key”的文本输入框,用于输入云端密钥。在保存配置回调函数中,我们读取了文本输入框中的内容,并将其保存到EEPROM中。在Web服务器回调函数中,我们添加了文本输入框,以便在网页配网页面中显示云端密钥。
请注意,这个示例中的代码仅供参考,您需要根据实际情况进行修改和优化。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)