This error is caused by using a 6.x.x version of the ArduinoJson library with code that was written for a pre-6.x.x version of the library.
You have two options to solve the problem:
A. Downgrade the library to a version that is compatible with your code
For now, this is probably the best option because the 6.x.x version of the ArduinoJson is still in beta so it makes sense to wait until the new API is stabilized before porting your code. This is even recommended by the ArduinoJson developers:
https://arduinojson.org/v5/faq/error-jsonbuffer-was-not-declared-in-this-scope/
- Sketch > Include Library > Manage Libraries…
- Wait for the download to finish.
- In the «Filter your search…» box, type: «arduinojson».
- Click on «ArduinoJson by Benoit Blanchon».
- From the «Select version» dropdown menu, select «Version 5.13.2».
- Click «Update». Wait for the update to finish.
- Click «Close».
Now your code will compile. If you have File > Preferences > Check for updates on startup enabled, you will continue to get updatable library notification for the ArduinoJson library but you need to refrain from updating back to a 6.x.x version or the error will come back.
B. Update your code to be compatible with the 6.x.x version of the ArduinoJson library
In this case you need to modify your deserialization code to use the new DynamicJsonDocument
instead of the old DynamicJsonBuffer
:
if (httpCode == 200) {
// Parsing
const size_t bufferSize = JSON_OBJECT_SIZE(1) + 50;
DynamicJsonDocument jsonDocument(bufferSize);
DeserializationError error = deserializeJson(jsonDocument, http.getString());
if (error) {
Serial.println("There was an error while deserializing");
}
else {
JsonObject root = jsonDocument.as<JsonObject>();
// Parameters
int Mode = root["mode"]; // 1
Serial.print("Name:");
Serial.println(Mode);
}
}
You can get more details about this here:
https://arduinojson.org/v6/doc/upgrade/
Comments
bblanchon
changed the title
5.13.2 broke JsonBuffer
error: ‘JsonBuffer’ was not declared in this scope
Jun 20, 2018
bblanchon
changed the title
error: ‘JsonBuffer’ was not declared in this scope
JsonBuffer was not declared in this scope /
Jul 11, 2018
bblanchon
changed the title
JsonBuffer was not declared in this scope /
JsonBuffer was not declared in this scope / JsonBuffer does not name a type
Jul 11, 2018
bblanchon
changed the title
JsonBuffer was not declared in this scope / JsonBuffer does not name a type
JsonBuffer was not declared in this scope / does not name a type
Jul 11, 2018
bblanchon
changed the title
JsonBuffer was not declared in this scope / does not name a type
🔥 JsonBuffer was not declared in this scope / does not name a type
Jul 11, 2018
tobozo
added a commit
to tobozo/M5Stack-SD-Updater
that referenced
this issue
Jul 16, 2018
Repository owner
locked as off-topic and limited conversation to collaborators
Jan 15, 2019
Страница 1 из 2
-
Недавно купила новый для себя модуль ESP8266
Загрузила одну программу Blink из примеров Arduino IDE
После этого ничего не компилирует
Помогите, пожалуйста, решить эту проблему -
Что значит
выкладывайте ошибки, код.
Не забывайте про тэги, для удобного чтения. -
#include <ESP8266WiFi.h>
#include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>
//объявляю библиотекиchar ssid[] = «***»; //мой wifi
char password[] = «***»; //пароль#define BOTtoken «***» //токен бота
WiFiClientSecure client;
UniversalTelegramBot bot(BOTtoken, client); //переменная для шифрованного соединенияString keyboardJson = «[[«/help«]]»; //клавиатура бота
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
while(WiFi.status() != WL_CONNECTED){
delay(500);
}
}void loop() {
int numNewMessages = bot.getUpdates(
bot.last_message_received + 1);
handleNewMessages(numNewMessages);
} //проверка на новые сообщения, если такие сообщения есть, обрабатываем ихvoid handleNewMessages(int numNewMessages){
for(int i = 0; i < numNewMessages; i++){
String chat_id = String(bot.messages.chat_id); //проверяем каждое сообщение и запоминаем id
String text = bot.messages.text; //записываем в переменную текст сообщения
if(text == «/help») {
bot.sendMessageWithReplyKeyboard(chat_id,
«Choose from one of the following options»,
«», keyboardJson, true);
}
if(text == «/help») {
bot.sendMessageWithReplyKeyboard(chat_id,
«Choose from one of the following options»,
«», keyboardJson, true);
}//если приходит сообщение с этим текстом, отвечаем …
}
}Последнее редактирование: 30 янв 2019
-
(у меня теперь скриншоты с телефона не загружаются) -
Онжела!Вставь Его правильно!В нужное место!
Последнее редактирование: 30 янв 2019
-
Добавь строку #include <ArduinoJson.h>
-
Добавила, с ней тоже ничего не работает(
-
@Angelina Dementeva, скетч не компилируется или не работает? Telegram блокируется, попробуйте проверить его доступность
-
К сожалению, именно не компилируется
Можете объяснить что это значит?
-
Если не компилируется — копируете вывод компилятора об ошибках и вставляете его в сообщение на форуме (длинный вывод компилятора прячете под спойлер ). ping — утилита для проверки соединения, запускается из командной строки Windows.
Daniil и NikitOS нравится это.
-
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:85:26: error: ‘ArduinoJson::JsonObject’ has no member named ‘measureLength’
int length = payload.measureLength();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:92:13: error: ‘ArduinoJson::JsonObject’ has no member named ‘printTo’
payload.printTo(out);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::getMe()’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:269:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:269:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:270:22: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& root = jsonBuffer.parseObject(response);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:272:11: error: ‘ArduinoJson::JsonObject’ has no member named ‘success’
if(root.success()) {
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘int UniversalTelegramBot::getUpdates(long int)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:305:5: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:305:23: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:306:24: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& root = jsonBuffer.parseObject(response);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:308:14: error: ‘ArduinoJson::JsonObject’ has no member named ‘success’
if (root.success()) {
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:312:48: error: ‘class ArduinoJson670_0_0::ObjectSubscript<const char*>’ has no member named ‘size’
int resultArrayLength = root[«result»].size();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:316:62: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::enable_if<true, ArduinoJson670_0_0::ObjectSubscript<const char*> >::type {aka ArduinoJson670_0_0::ObjectSubscript<const char*>}’
JsonObject& message = root[«result»][«message»];
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessage(String, String, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:379:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:379:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:380:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:394:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:394:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:395:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:404:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:411:21: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:412:29: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«keyboard»] = keyboardBuffer.parseArray(keyboard);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:432:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:432:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:433:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:442:70: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:444:21: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:445:36: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«inline_keyboard»] = keyboardBuffer.parseArray(keyboard);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp: In member function ‘String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)’:
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:514:3: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:514:21: error: expected ‘;’ before ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:515:25: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& payload = jsonBuffer.createObject();
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:533:72: error: invalid initialization of non-const reference of type ‘ArduinoJson::JsonObject& {aka ArduinoJson670_0_0::ObjectRef&}’ from an rvalue of type ‘ArduinoJson670_0_0::ObjectRef’
JsonObject& replyMarkup = payload.createNestedObject(«reply_markup»);
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:535:23: error: expected ‘;’ before ‘keyboardBuffer’
DynamicJsonBuffer keyboardBuffer;
^
E:UserДокументыArduinolibrariesUniversalTelegramBotsrcUniversalTelegramBot.cpp:536:31: error: ‘keyboardBuffer’ was not declared in this scope
replyMarkup[«keyboard»] = keyboardBuffer.parseArray(keyboard);
^
exit status 1
Ошибка компиляции для платы Generic ESP8266 Module. -
1. Вам нужна библиотека ArduinoJson версии 5.13.4 — в менеджере библиотек в выпадающем списке можно выбрать нужную версию
2. Поправьте —bot.messages[i].text
bot.messages[i].chat_id— к сообщениям обращаемся по индексу
-
Теперь выдаёт новые ошибки
warning: espcomm_sync failed
error: espcomm_open failed
error: espcomm_upload_mem failed
error: espcomm_upload_mem failed -
В итоге, я разобралась с ошибками, но команда не появилась в телеграмм боте. Совсем уже не знаю в чем проблема( Могла ли я сломать как-то этот модуль?
-
@Angelina Dementeva, api.telegram.org пингуется? Добавьте вывод в UART отладочных сообщений библиотеки UniversalTelegramBot
void setup() {
Serial.begin(9600);
bot._debug=true; // выводим отладочную информацию
… -
Откройте командную строку и выполните команду:
C:Userss.user>ping api.telegram.orgОбмен пакетами с api.telegram.org [149.154.167.220] с 32 байтами данных:
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=103мс TTL=53
Ответ от 149.154.167.220: число байт=32 время=104мс TTL=53Статистика Ping для 149.154.167.220:
Пакетов: отправлено = 4, получено = 4, потеряно = 0
(0% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 103мсек, Максимальное = 104 мсек, Среднее = 103 мсекУ Вас так?
Страница 1 из 2
. Я получаю следующую ошибку, когда пытаюсь скомпилировать этот код, можно ли исправить это срочно, пожалуйста, посмотрите в нем.
Arduino: 1.8.5 (Linux), плата: «Стандартный модуль ESP8266, 80 МГц, ck, 26 МГц, 40 МГц, QIO, 512 КБ (без SPIFFS), v2 предварительно собранный (MSS = 536), отключено, нет, 115200»
/root/Arduino/Blink2/Blink2.ino: В функции ‘void setup ()’:
Blink2: 51: ошибка: DynamicJsonBuffer не был объявлен в этой области
DynamicJsonBuffer jsonBuffer;
^
/ корень / Arduino / Blink2 / Blink2. ino: 51 : 9: примечание: предлагаемая альтернатива:
В файле, включенном в / root / Arduino / libraries / ArduinoJson / src / ArduinoJson / DynamicJsonDocument. hpp: 10 : 0,
из / корень / Arduino / библиотеки / ArduinoJson / src / ArduinoJson. hpp: 9 ,
из /root/Arduino/libraries/ArduinoJson/src/ArduinoJson.h:9,
из / root / Arduino / Blink2 / Blink2. ino: 10 :
/ корень / Arduino / библиотеки / ArduinoJson / SRC / ArduinoJson / Память / DynamicJsonBuffer. hpp: 159 : 5: примечание: ‘ArduinoJson :: Internals :: DynamicJsonBuffer’
DynamicJsonBuffer;
^
Blink2: 51: ошибка: ожидается ‘;’ перед ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
Blink2: 52: ошибка: ‘jsonBuffer’ не был объявлен в этой области
JsonObject & json = jsonBuffer.parseObject (buf.get ());
^
Blink2: 53: ошибка: «класс ArduinoJson :: JsonObject» не имеет члена с именем «printTo»
json.printTo (серийный);
^
Blink2: 130: ошибка: DynamicJsonBuffer не был объявлен в этой области
DynamicJsonBuffer jsonBuffer;
^
/ корень / Arduino / Blink2 / Blink2. ino: 130 : 5: примечание: предлагаемая альтернатива:
В файле, включенном в / root / Arduino / libraries / ArduinoJson / src / ArduinoJson / DynamicJsonDocument. hpp: 10 : 0,
из / корень / Arduino / библиотеки / ArduinoJson / src / ArduinoJson. hpp: 9 ,
из /root/Arduino/libraries/ArduinoJson/src/ArduinoJson.h:9,
из / root / Arduino / Blink2 / Blink2. ino: 10 :
/ корень / Arduino / библиотеки / ArduinoJson / SRC / ArduinoJson / Память / DynamicJsonBuffer. hpp: 159 : 5: примечание: ‘ArduinoJson :: Internals :: DynamicJsonBuffer’
DynamicJsonBuffer;
^
Blink2: 130: ошибка: ожидается ‘;’ перед ‘jsonBuffer’
DynamicJsonBuffer jsonBuffer;
^
Blink2: 131: ошибка: ‘jsonBuffer’ не был объявлен в этой области
JsonObject & json = jsonBuffer.createObject ();
^
Blink2: 141: ошибка: «класс ArduinoJson :: JsonObject» не имеет члена с именем «printTo»
json.printTo (серийный);
^
Blink2: 142: ошибка: «класс ArduinoJson :: JsonObject» не имеет члена с именем «printTo»
json.printTo (configFile);
^
Для «ArduinoJson.h» найдено несколько библиотек.
Используется: / root / Arduino / libraries / ArduinoJson
Не используется: / root / Arduino / libraries / ArduinoJson-master
статус выхода 1
DynamicJsonBuffer не был объявлен в этой области
В этом отчете будет больше информации с
«Показать подробный вывод во время компиляции»
опция включена в Файл -> Настройки.
DEV Help Wanted
Good First Issue
bug
Все 22 Комментарий
Это данный код https://github.com/tzapu/WiFiManager/tree/master/examples/AutoConnectWithFSParameters
Когда я хочу иметь возможность отправлять пользовательские параметры через диспетчер Wi-Fi, такие как имя пользователя и пароль mqtt, когда я обращаюсь к ссылке, указанной в документации, и компилирую программу, я получаю указанную выше ошибку, не могли бы вы, пожалуйста, почему я получаю эту ошибку , я получаю ту же ошибку и с другими примерами.
Я получил ответ: проблема была в ArduinoJson, версия 6 — это бета-версия, используйте версию 5x, чтобы исправить эту проблему.
ок, я не видел blink.ino ничего о wm.
Я думаю, что в какой-то момент, кажется, придется обновить примеры.
- [x] примеры обновления для совместимости с будущей библиотекой arduinojson
пожалуйста, исправьте этот код для arduino ide 1.6.4 и aduinojson 5.13.2
#include <FS.h> //this needs to be first, or it all crashes and burns...
#include <ESP8266WiFi.h> //https://github.com/esp8266/Arduino
//needed for library
#include <DNSServer.h>
#include <ESP8266WebServer.h>
#include <WiFiManager.h> //https://github.com/tzapu/WiFiManager
#include <ArduinoJson.h> //https://github.com/bblanchon/ArduinoJson
//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";
char blynk_token[34] = "YOUR_BLYNK_TOKEN";
//flag for saving data
bool shouldSaveConfig = false;
//callback notifying us of the need to save config
void saveConfigCallback () {
Serial.println("Should save config");
shouldSaveConfig = true;
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println();
//clean FS, for testing
//SPIFFS.format();
//read configuration from FS json
Serial.println("mounting FS...");
if (SPIFFS.begin()) {
Serial.println("mounted file system");
if (SPIFFS.exists("/config.json")) {
//file exists, reading and loading
Serial.println("reading config file");
File configFile = SPIFFS.open("/config.json", "r");
if (configFile) {
Serial.println("opened config file");
size_t size = configFile.size();
// Allocate a buffer to store contents of the file.
std::unique_ptr<char[]> buf(new char[size]);
configFile.readBytes(buf.get(), size);
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.parseObject(buf.get());
json.printTo(Serial);
if (json.success()) {
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");
}
}
}
} else {
Serial.println("failed to mount FS");
}
//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
WiFiManagerParameter custom_mqtt_server("server", "mqtt server", mqtt_server, 40);
WiFiManagerParameter custom_mqtt_port("port", "mqtt port", mqtt_port, 6);
WiFiManagerParameter custom_blynk_token("blynk", "blynk token", blynk_token, 32);
//WiFiManager
//Local intialization. Once its business is done, there is no need to keep it around
WiFiManager wifiManager;
//set config save notify callback
wifiManager.setSaveConfigCallback(saveConfigCallback);
//set static ip
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);
wifiManager.addParameter(&custom_blynk_token);
//reset settings - for testing
//wifiManager.resetSettings();
//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
//wifiManager.setTimeout(120);
//fetches ssid and pass and tries to connect
//if it does not connect it starts an access point with the specified name
//here "AutoConnectAP"
//and goes into a blocking loop awaiting configuration
if (!wifiManager.autoConnect("AutoConnectAP", "password")) {
Serial.println("failed to connect and hit timeout");
delay(3000);
//reset and try again, or maybe put it to deep sleep
ESP.reset();
delay(5000);
}
//if you get here you have connected to the WiFi
Serial.println("connected...yeey :)");
//read updated parameters
strcpy(mqtt_server, custom_mqtt_server.getValue());
strcpy(mqtt_port, custom_mqtt_port.getValue());
strcpy(blynk_token, custom_blynk_token.getValue());
//save the custom parameters to FS
if (shouldSaveConfig) {
Serial.println("saving config");
JsonObject& json = jsonBuffer.createObject();
json["mqtt_server"] = mqtt_server;
json["mqtt_port"] = mqtt_port;
json["blynk_token"] = blynk_token;
File configFile = SPIFFS.open("/config.json", "w");
if (!configFile) {
Serial.println("failed to open config file for writing");
}
json.printTo(Serial);
json.printTo(configFile);
configFile.close();
//end save
}
Serial.println("local ip");
Serial.println(WiFi.localIP());
}
void loop() {
// put your main code here, to run repeatedly:
}
Используйте правильные ограждения кода для кода, вы просите кого-нибудь исправить это за вас, или это содержит исправление?
Спасибо за отзыв!
Исходный код копирую по ссылке: https: //github.com/tzapu/WiFiManager/blob/master/examples/AutoConnectWithFSParameters/AutoConnectWithFSParameters.ino
Очень нужно, но не могу исправить ошибку:
DynamicJsonBuffer не был объявлен в этой области
: Arduino: 1.6.4 (Windows 7), плата: «NodeMCU 1.0 (модуль ESP-12E), 80 МГц, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200»
esp8266_final.ino: В функции void setup ():
esp8266_ final: 51 : ошибка: ‘DynamicJsonBuffer’ не был объявлен в этой области
esp8266_final. ino: 51 : 9: примечание: предлагаемая альтернатива:
В файле, находящемся в C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson / DynamicJsonDocument. hpp: 10 : 0,
из C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson. hpp: 9 ,
из C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson.h: 9,
из esp8266_final. ino: 10 :
C: Users Administrator Documents Arduino библиотеки arduino_173318 src / ArduinoJson / Memory / DynamicJsonBuffer. hpp: 159 : 5: примечание: ‘ArduinoJson :: Internals :: DynamicJsonBuffer’
DynamicJsonBuffer;
^
esp8266_ final: 51 : ошибка: ожидается ‘;’ перед ‘jsonBuffer’
esp8266_ final: 52 : ошибка: ‘jsonBuffer’ не был объявлен в этой области
esp8266_ final: 53 : error: ‘class ArduinoJson :: JsonObject’ не имеет члена с именем ‘printTo’
esp8266_ final: 54 : ошибка: «класс ArduinoJson :: JsonObject» не имеет члена с именем «успех»
esp8266_ final: 130 : ошибка: ‘DynamicJsonBuffer’ не был объявлен в этой области
esp8266_final. ino: 130 : 5: примечание: предлагаемая альтернатива:
В файле, находящемся в C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson / DynamicJsonDocument. hpp: 10 : 0,
из C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson. hpp: 9 ,
из C: Users Administrator Documents Arduino libraries arduino_173318 src / ArduinoJson.h: 9,
из esp8266_final. ino: 10 :
C: Users Administrator Documents Arduino библиотеки arduino_173318 src / ArduinoJson / Memory / DynamicJsonBuffer. hpp: 159 : 5: примечание: ‘ArduinoJson :: Internals :: DynamicJsonBuffer’
DynamicJsonBuffer;
^
esp8266_ final: 130 : ошибка: ожидается ‘;’ перед ‘jsonBuffer’
esp8266_ final: 131 : ошибка: ‘jsonBuffer’ не был объявлен в этой области
esp8266_ final: 141 : ошибка: «класс ArduinoJson :: JsonObject» не имеет члена с именем «printTo»
esp8266_ final: 142 : error: ‘class ArduinoJson :: JsonObject’ не имеет члена с именем ‘printTo’
Для «WiFiManager.h» найдено несколько библиотек.
Используется: C: Users Administrator Documents Arduino libraries WiFiManager-master
Не используется: C: Users Administrator Documents Arduino libraries WhareHauoraWiFiManager
Для «ArduinoJson.h» найдено несколько библиотек.
Используется: C: Users Administrator Documents Arduino libraries arduino_173318
Не используется: C: Users Administrator Documents Arduino libraries ArduinoJson
DynamicJsonBuffer не был объявлен в этой области
В этом отчете будет больше информации с
«Показать подробный вывод во время компиляции»
включен в Файл> Настройки.
Это касается проблем и ошибок, не публикуйте здесь вопросы поддержки, спасибо
В идеале мы должны определить, какая версия и дескриптор, хотя это всего лишь пример, а не часть библиотеки.
@tablatronix Heya — Я планирую использовать эту библиотеку для библиотеки Adafruit IO Arduino (https://github.com/adafruit/Adafruit_IO_Arduino) и буду рад работать над этой проблемой. Не могли бы вы назначить его мне?
Не банкомат, но вы можете пиарить это против ветки разработки
Может быть, как-то добавить поддержку в рассматриваемом примере для обеих версий?
Это все еще в бета-версии? Может быть, сделать ветку для следующей версии arduinojson 6 или чего-то еще
Библиотека ArduinoJSON все еще находится в стадии бета-версии 6.x. Я собираюсь найти версию в примере (если они выставят версию) и обработать ошибку.
Ребята, у меня код все еще не компилируется даже после того, как я понизил версию библиотеки arduinojson. Может кто-нибудь мне помочь? Пробовал версию 5.12.1, 5.12.2 и даже 5.13
Arduino: 1.8.9 (Windows 10), плата: «NodeMCU 1.0 (модуль ESP-12E), 80 МГц, флэш-память, отключено, все SSL-шифры (наиболее совместимые), 4M (без SPIFFS), v2 Нижняя память, отключено, нет» , Только эскиз, 115200 «
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 95 : 11: ошибка: DynamicJsonBuffer — это класс из ArduinoJson 5. Пожалуйста, посетите arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson версии 6
DynamicJsonBuffer jsonBuffer;
^
C: Users srjew Documents Arduino libraries arduino-youtube-api-master src YoutubeApi.cpp: в функции-члене ‘bool YoutubeApi :: getChannelStatistics (String)’:
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 95 : 20: ошибка: ‘jsonBuffer’ не был объявлен в этой области
DynamicJsonBuffer jsonBuffer;
^
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 97 : 10: ошибка: «ArduinoJson :: JsonObject» не имеет члена с именем «успех»
if (root.success ()) {
^
статус выхода 1
Ошибка компиляции для платы NodeMCU 1.0 (модуль ESP-12E).
В этом отчете будет больше информации с
«Показать подробный вывод во время компиляции»
опция включена в Файл -> Настройки.
Я должен исправить это, я постараюсь сделать это на этой неделе, я нажал v0.15-beta, но он все еще не отображается в диспетчере библиотек arduino, понятия не имею, wtf — это сделка с arduino
Arduino: 1.8.9 (Windows 10), плата: «NodeMCU 1.0 (модуль ESP-12E), 80 МГц, флэш-память, отключено, все SSL-шифры (наиболее совместимые), 4M (без SPIFFS), v2 Нижняя память, отключено, нет» , Только эскиз, 115200 «
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 95 : 11: ошибка: DynamicJsonBuffer — это класс из ArduinoJson 5. Пожалуйста, посетите arduinojson.org/upgrade, чтобы узнать, как обновить вашу программу до ArduinoJson версии 6
DynamicJsonBuffer jsonBuffer;
^
C: Users srjew Documents Arduino libraries arduino-youtube-api-master src YoutubeApi.cpp: в функции-члене ‘bool YoutubeApi :: getChannelStatistics (String)’:
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 95 : 20: ошибка: ‘jsonBuffer’ не был объявлен в этой области
DynamicJsonBuffer jsonBuffer;
^
C: Users srjew Documents Arduino библиотеки arduino-youtube-api-master src YoutubeApi. cpp: 97 : 10: ошибка: «ArduinoJson :: JsonObject» не имеет члена с именем «успех»
if (root.success ()) {
^
статус выхода 1
Ошибка компиляции для платы NodeMCU 1.0 (модуль ESP-12E).В этом отчете будет больше информации с
«Показать подробный вывод во время компиляции»
опция включена в Файл -> Настройки.
вам нужно понизить версию arduinoJson до v5.11.3
Я нажал v0.15-beta, но он все еще не отображается в диспетчере библиотек arduino, понятия не имею, wtf — это сделка с arduino
@tablatronix Я не знаю наверняка, потому что у меня нет доступа к скрипту индексатора библиотеки, но я думаю, что проблема должна заключаться в значении version
в library.properties для этого выпуска: 0.15-beta. Хотя индексатор поддерживает версии, отличные от semver, например 0.15, я не знаю, поддерживает ли он синтаксис предварительной версии поверх версии, отличной от semver.
Несомненно, будет принята любая версия, совместимая с semver. Поэтому я рекомендую просто начать использовать управление версиями, совместимую с semver:
https://semver.org/
@tablatronix это может быть закрыто из-за запроса на вытягивание # 993
Была ли эта страница полезной?
0 / 5 — 0 рейтинги
Open
Issue created Jul 12, 2018 by
ESP32 Painless mesh compiling Error
Hi All
I try to compile PainlessMesh «basic» example in the Arduino IDE and I’m getting few error. Please refer below for error messages. Please let me know how to solve this issues
`Arduino: 1.8.5 (Windows 7), Board: «ESP32 Dev Module, Disabled, Default, QIO, 80MHz, 4MB (32Mb), 921600, None»
C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp: In member function ‘String painlessMesh::buildMeshPackage(uint32_t, uint32_t, meshPackageType, String&)’:
C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp:70:5: error: ‘DynamicJsonBuffer’ was not declared in this scope
DynamicJsonBuffer jsonBuffer;
^
C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp:70:5: note: suggested alternative:
In file included from C:UserscweeDocumentsArduinolibrariesArduinoJsonsrc/ArduinoJson/DynamicJsonDocument.hpp:10:0,
from C:UserscweeDocumentsArduinolibrariesArduinoJsonsrc/ArduinoJson.hpp:9,
from C:UserscweeDocumentsArduinolibrariesArduinoJsonsrc/ArduinoJson.h:9,
from C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp:10:
C:UserscweeDocumentsArduinolibrariesArduinoJsonsrc/ArduinoJson/Memory/DynamicJsonBuffer.hpp:159:5: note: ‘ArduinoJson::Internals::DynamicJsonBuffer’
C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp:71:27: error: ‘jsonBuffer’ was not declared in this scope
JsonObject& jsonObj = jsonBuffer.createObject();
^
C:UserscweeDocumentsArduinolibrariesPainless_MeshsrcpainlessMeshComm.cpp:94:13: error: ‘class ArduinoJson::JsonObject’ has no member named ‘printTo’
Multiple libraries were found for «WiFi.h»
Used: C:UserscweeDocumentsArduinohardwareespressifesp32librariesWiFi
Not used: C:Program Files (x86)ArduinolibrariesWiFi
exit status 1
Error compiling for board ESP32 Dev Module.
This report would have more information with
«Show verbose output during compilation»
option enabled in File -> Preferences.
`
Thank you