Firebase+ESP8266

Тема в разделе "ESP8266, ESP32", создана пользователем 2978998, 31 июл 2018.

  1. 2978998

    2978998 Нерд

    Добрый день, помогите пож-та разобраться по примеру:

    http://roboforum.ru/forum16/topic17045.html


    firebase работает

    приложение AI также

    однако при компиляции ESP 8266 выдает ошибку.

    по ссылке скетч + ошибка: https://yadi.sk/i/kXxmC5ra3Zk33Z


    во вложении скетч и файл с ошибкой, подскажите как пройти компиляцию и наладить работу ?

    библиотека firebase-arduino установлена, логин и пароль на w-fi введены

    HOST и ключ API также прописаны, остальное не менял


    заранее спасибо, за помощь.

    Александр
     
  2. ИгорьК

    ИгорьК Гуру

    Если что-то где-то не компилируется, значит:
    - ошибки в скопипащенном коде, в том числе во время копипасты;
    - не та версия IDE, которой пользовался автор;
    - не установленны необходимые библиотеки.

    Вот и крутитесь среди этих трех пунктов.
    И лучше задавать вопросы автору, чем на сторонние форуме.
     
    Daniil и Airbus нравится это.
  3. ИгорьК

    ИгорьК Гуру

    Напишите здесь что пишет компилятор
     
  4. Airbus

    Airbus Радиохулиган Модератор

    Скетч
    Код (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());
    }
    }
     
    Последнее редактирование: 1 авг 2018
  5. 2978998

    2978998 Нерд

    Добрый день, в ответ компилятор пишет:

    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).


    Этот отчёт будет иметь больше информации с

    включенной опцией Файл -> Настройки ->

    "Показать подробный вывод во время компиляции"
     
  6. 2978998

    2978998 Нерд

  7. ИгорьК

    ИгорьК Гуру

    Я бы предположил, что ваша текущая IDE не совпадает с той, в которой творил автор всего этого. Сам то он что говорит?
     
  8. 2978998

    2978998 Нерд

    Автор пишет: "дело в том, что Firebase перешел вместе со всеми на защищенное соединение https, которое не поддерживает модуль ESP8266. Однако нужно подумать, как решить вопрос "
    Пока решения нет. вот ищу ...
     
  9. ИгорьК

    ИгорьК Гуру

    Я знаю, что последние версии Lua проекта NodeMCU стали поддерживать протокол https достаточно хорошо. До блокировки Телеграм мне удавалось слать на него данные.
    Если очень(!) нужно и других решений нет - смотрите туда.
     
  10. ZAZ-965

    ZAZ-965 Гуру

    На https://github.com/firebase/firebase-arduino в зависимостях явно указано использовать библиотеку ArduinoJson версии 5.13.1 (думаю и 5.13.2 можно). Начиная с релиза 6.0 библиотека переписана с потерей совместимости с прежними версиями.
     
    Airbus, 2978998 и ИгорьК нравится это.
  11. ИгорьК

    ИгорьК Гуру

    ...Да сделайте вы свои кнопки на базе открытого Mqtt брокера - в сети полно примеров.
     
  12. 2978998

    2978998 Нерд

    Добрый день, @ ZAZ-965
    ваш совет помог ArduinoJson версии 5.13.1 и все заработало.

    подключил 8 датчиков к портам ESP8266,однако возникает следующая проблема.
    после отключения питания приходиться записывать заново скетч, т.к. ESP теряет коннект с базой FireBase

    после загрузки скетча все работает без проблем, до следующего выключения питания.
    датчики подключены к портам: D1-D4, D5-D8

    заранее спасибо.