Добрый день, помогите пож-та разобраться по примеру: http://roboforum.ru/forum16/topic17045.html firebase работает приложение AI также однако при компиляции ESP 8266 выдает ошибку. по ссылке скетч + ошибка: https://yadi.sk/i/kXxmC5ra3Zk33Z во вложении скетч и файл с ошибкой, подскажите как пройти компиляцию и наладить работу ? библиотека firebase-arduino установлена, логин и пароль на w-fi введены HOST и ключ API также прописаны, остальное не менял заранее спасибо, за помощь. Александр
Если что-то где-то не компилируется, значит: - ошибки в скопипащенном коде, в том числе во время копипасты; - не та версия IDE, которой пользовался автор; - не установленны необходимые библиотеки. Вот и крутитесь среди этих трех пунктов. И лучше задавать вопросы автору, чем на сторонние форуме.
Скетч Код (C++): // Scorpio 2016 // FirebaseArduino https://github.com/firebase/firebase // Library DOC API http://firebase // arduino.readthedocs.io/en/latest/ #include <ESP8266WiFi.h> #include < FirebaseArduino.h> // Set these to run example. #define WIFI_SSID "BinLain" #define WIFI_PASSWORD "tpB56TYV" #define FIREBASE_HOST "esp8266apivo.firebaseio.com" // "https://" < > "/" #define FIREBASE_AUTH "AIzaSyCH2EgxIYsIJCs9MzYXJto60jDW0k8pXvg" String ProjectBucket="/ESP/"; String current_state=""; void setup() { Serial.begin(9600); // connect to wifi. WiFi.begin(WIFI_SSID, WIFI_PASSWORD); Serial.print("connecting"); while (WiFi.status() != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(); Serial.print("connected: "); Serial.println(WiFi.localIP()); //Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH); Firebase.begin(FIREBASE_HOST); } void loop() { String out_state=""; out_state=Firebase.get String(ProjectBucket+"OUT_CMD"); // считывание команды ShowFbError(); if(Firebase.success()) { if(!out_state.equals(current_state))// получена новая команда { Serial.println ("State change to: "+out_state); current_state=out_state ; if ( out state equals ("1")) // подтверждение действия { // тут можно что нибудь сделать Firebase.setString(ProjectBucket+"OUT_STATE", "ON"); } else { // тут можно что нибудь сделать Firebase.setString(ProjectBucket+"OUT_STATE", "OFF"); } ShowFbError(); } } delay(1000);// не обязательно } void ShowFbError() { if (Firebase.failed()) { Serial.print("DB failed: "); Serial.println(Fi rebase.error()); } }
Добрый день, в ответ компилятор пишет: Arduino: 1.8.4 (Windows 7), Плата:"NodeMCU 1.0 (ESP-12E Module), 80 MHz, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200" In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:30:0, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:109:21: error: 'StaticJsonBuffer' was not declared in this scope std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:109:21: note: suggested alternative: In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/StaticJsonDocument.hpp:8:0, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:10, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:26, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7: note: 'ArduinoJson::Internals::StaticJsonBuffer' class StaticJsonBuffer : public Internals::StaticJsonBufferBase { ^ In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:7:0, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:8, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:26, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/./JsonObjectData.hpp:19:65: error: template argument 1 is invalid sizeof(ArduinoJson::Internals::JsonObjectData::node_type)) ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:28:34: note: in expansion of macro 'JSON_OBJECT_SIZE' #define FIREBASE_JSONBUFFER_SIZE JSON_OBJECT_SIZE(32) ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:109:38: note: in expansion of macro 'FIREBASE_JSONBUFFER_SIZE' std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:30:0, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:109:62: error: expected unqualified-id before '>' token std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ In file included from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1:0: C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:86:19: error: 'StaticJsonBuffer' was not declared in this scope std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:86:19: note: suggested alternative: In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/StaticJsonDocument.hpp:8:0, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:10, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:26, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/Memory/StaticJsonBuffer.hpp:110:7: note: 'ArduinoJson::Internals::StaticJsonBuffer' class StaticJsonBuffer : public Internals::StaticJsonBufferBase { ^ In file included from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/JsonObject.hpp:7:0, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/DynamicJsonDocument.hpp:8, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.hpp:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson.h:9, from C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:26, from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1: C:\Users\UltraBook-Home\Documents\Arduino\libraries\ArduinoJson\src/ArduinoJson/./JsonObjectData.hpp:19:65: error: template argument 1 is invalid sizeof(ArduinoJson::Internals::JsonObjectData::node_type)) ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/FirebaseObject.h:28:34: note: in expansion of macro 'JSON_OBJECT_SIZE' #define FIREBASE_JSONBUFFER_SIZE JSON_OBJECT_SIZE(32) ^ C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:86:36: note: in expansion of macro 'FIREBASE_JSONBUFFER_SIZE' std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ In file included from C:\Users\UltraBook-Home\Desktop\Firebase_ESP8266\Firebase_ESP8266.ino:1:0: C:\Users\UltraBook-Home\Documents\Arduino\libraries\firebase-arduino-master\src/Firebase.h:86:60: error: expected unqualified-id before '>' token std::shared_ptr<StaticJsonBuffer<FIREBASE_JSONBUFFER_SIZE>> buffer_; ^ exit status 1 Ошибкакомпиляциидляплаты NodeMCU 1.0 (ESP-12E Module). Этот отчёт будет иметь больше информации с включенной опцией Файл -> Настройки -> "Показать подробный вывод во время компиляции"
Я бы предположил, что ваша текущая IDE не совпадает с той, в которой творил автор всего этого. Сам то он что говорит?
Автор пишет: "дело в том, что Firebase перешел вместе со всеми на защищенное соединение https, которое не поддерживает модуль ESP8266. Однако нужно подумать, как решить вопрос " Пока решения нет. вот ищу ...
Я знаю, что последние версии Lua проекта NodeMCU стали поддерживать протокол https достаточно хорошо. До блокировки Телеграм мне удавалось слать на него данные. Если очень(!) нужно и других решений нет - смотрите туда.
На https://github.com/firebase/firebase-arduino в зависимостях явно указано использовать библиотеку ArduinoJson версии 5.13.1 (думаю и 5.13.2 можно). Начиная с релиза 6.0 библиотека переписана с потерей совместимости с прежними версиями.
Добрый день, @ ZAZ-965 ваш совет помог ArduinoJson версии 5.13.1 и все заработало. подключил 8 датчиков к портам ESP8266,однако возникает следующая проблема. после отключения питания приходиться записывать заново скетч, т.к. ESP теряет коннект с базой FireBase после загрузки скетча все работает без проблем, до следующего выключения питания. датчики подключены к портам: D1-D4, D5-D8 заранее спасибо.