我的代码输出中有一些我不明白的东西。我的猜测是问题是由于[当然是我]......使用“struct”+“arduinoJson”来存储配置值。
我制作了这个只连接到 Wifi 的简单代码;
要么使用硬编码设置
loadConfigHarcoded(); // 值的串行打印:OK和“WiFi 成功!”
要么使用反序列化Json
loadConfigFromJson(); // 值的串行打印:好的,但是“WiFi 连接失败!”
有什么我错过的吗?
完整代码:
#include <ESP8266WiFi.h>
#include <ArduinoJson.h>
const char* ssid = "my_ssid";
const char* password = "my_password";
String confJson = "{\"ssid\": \""+String(ssid)+"\", \"password\": \""+String(password)+"\"}";
struct sConfig {
const char* ssid;
const char* password;
const char* host;
};
sConfig config;
void loadConfigHarcoded() {
config.ssid = ssid;
config.password = password;
}
void loadConfigFromJson() {
DynamicJsonDocument docConfig(1024);
DeserializationError err = deserializeJson(docConfig, confJson);
if (!err) {
config.ssid = docConfig["ssid"];
config.password = docConfig["password"];
}
}
void setup() {
Serial.begin(115200);
Serial.println();
loadConfigHarcoded(); // Serial print of values are OK ; and "WiFi Success!"
//loadConfigFromJson(); // Serial print of values are OK ; but "WiFi Connect Failed!"
Serial.print("SSID=");
Serial.println(config.ssid);
Serial.print("PSWD=");
Serial.println(config.password);
WiFi.mode(WIFI_STA);
WiFi.begin(config.ssid, config.password);
if (WiFi.waitForConnectResult() != WL_CONNECTED) {
Serial.println("WiFi Connect Failed!");
} else {
Serial.println("WiFi Success!");
}
}
void loop() {
}