diff --git a/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino b/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino index 7e6c373..f262901 100644 --- a/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino +++ b/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino @@ -1,7 +1,5 @@ #include //this needs to be first, or it all crashes and burns... - #include //https://github.com/esp8266/Arduino - //needed for library #include #include @@ -9,6 +7,9 @@ #include //https://github.com/bblanchon/ArduinoJson +//Comment out this line if you are still using ArduinoJsonV5 +#define UseJsonV6 + //define your default values here, if there are different values in config.json, they are overwritten. char mqtt_server[40]; char mqtt_port[6] = "8080"; @@ -23,7 +24,6 @@ void saveConfigCallback () { shouldSaveConfig = true; } - void setup() { // put your setup code here, to run once: Serial.begin(115200); @@ -48,16 +48,22 @@ void setup() { std::unique_ptr buf(new char[size]); configFile.readBytes(buf.get(), size); + +#ifdef UseJsonV6 + DynamicJsonDocument json(1024); + auto deserializeError = deserializeJson(json, buf.get()); + serializeJson(json, Serial); + if ( ! deserializeError ) { +#else DynamicJsonBuffer jsonBuffer; JsonObject& json = jsonBuffer.parseObject(buf.get()); json.printTo(Serial); if (json.success()) { +#endif Serial.println("\nparsed json"); - strcpy(mqtt_server, json["mqtt_server"]); strcpy(mqtt_port, json["mqtt_port"]); strcpy(blynk_token, json["blynk_token"]); - } else { Serial.println("failed to load json config"); } @@ -69,8 +75,6 @@ void setup() { } //end read - - // The extra parameters to be configured (can be either global or just in the setup) // After connecting, parameter.getValue() will get you the configured value // id/name placeholder/prompt default length @@ -86,8 +90,8 @@ void setup() { wifiManager.setSaveConfigCallback(saveConfigCallback); //set static ip - wifiManager.setSTAStaticIPConfig(IPAddress(10,0,1,99), IPAddress(10,0,1,1), IPAddress(255,255,255,0)); - + wifiManager.setSTAStaticIPConfig(IPAddress(10, 0, 1, 99), IPAddress(10, 0, 1, 1), IPAddress(255, 255, 255, 0)); + //add all your parameters here wifiManager.addParameter(&custom_mqtt_server); wifiManager.addParameter(&custom_mqtt_port); @@ -99,7 +103,7 @@ void setup() { //set minimu quality of signal so it ignores AP's under that quality //defaults to 8% //wifiManager.setMinimumSignalQuality(); - + //sets timeout until configuration portal gets turned off //useful to make it all retry or go to sleep //in seconds @@ -124,12 +128,20 @@ void setup() { strcpy(mqtt_server, custom_mqtt_server.getValue()); strcpy(mqtt_port, custom_mqtt_port.getValue()); strcpy(blynk_token, custom_blynk_token.getValue()); + Serial.println("The values in the file are: "); + Serial.println("\tmqtt_server : " + String(mqtt_server)); + Serial.println("\tmqtt_port : " + String(mqtt_port)); + Serial.println("\tblynk_token : " + String(blynk_token)); //save the custom parameters to FS if (shouldSaveConfig) { Serial.println("saving config"); +#ifdef UseJsonV6 + DynamicJsonDocument json(1024); +#else DynamicJsonBuffer jsonBuffer; JsonObject& json = jsonBuffer.createObject(); +#endif json["mqtt_server"] = mqtt_server; json["mqtt_port"] = mqtt_port; json["blynk_token"] = blynk_token; @@ -139,19 +151,22 @@ void setup() { Serial.println("failed to open config file for writing"); } +#ifdef UseJsonV6 + serializeJson(json, Serial); + serializeJson(json, configFile); +#else json.printTo(Serial); json.printTo(configFile); +#endif configFile.close(); //end save } Serial.println("local ip"); Serial.println(WiFi.localIP()); - } void loop() { // put your main code here, to run repeatedly: - }