Ошибка компиляции для платы Generic ESP8266 Module.

Тема в разделе "ESP8266, ESP32", создана пользователем Angelina Dementeva, 28 янв 2019.

Метки:
  1. Недавно купила новый для себя модуль ESP8266
    Загрузила одну программу Blink из примеров Arduino IDE
    После этого ничего не компилирует
    Помогите, пожалуйста, решить эту проблему
     
  2. Daniil

    Daniil Гуру

    Что значит
    выкладывайте ошибки, код.
    Не забывайте про тэги, для удобного чтения.
     
  3. Код (C++):
    #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
  4. Daniil

    Daniil Гуру

    :(
    (у меня теперь скриншоты с телефона не загружаются)
     
  5. Airbus

    Airbus Радиохулиган

    Онжела!Вставь Его правильно!В нужное место!
    [​IMG]
     
    Последнее редактирование: 30 янв 2019
    Angelina Dementeva и Daniil нравится это.
  6. Airbus

    Airbus Радиохулиган

    Добавь строку #include <ArduinoJson.h>
     
  7. Добавила, с ней тоже ничего не работает(
     
  8. ZAZ-965

    ZAZ-965 Гуру

    @Angelina Dementeva, скетч не компилируется или не работает? Telegram блокируется, попробуйте проверить его доступность
    Код (C++):
    ping api.telegram.org
     
  9. К сожалению, именно не компилируется
    Можете объяснить что это значит?
     
  10. ZAZ-965

    ZAZ-965 Гуру

    Если не компилируется - копируете вывод компилятора об ошибках и вставляете его в сообщение на форуме (длинный вывод компилятора прячете под спойлер ). ping - утилита для проверки соединения, запускается из командной строки Windows.
     
    Daniil и BAR__MEN нравится это.
  11. E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'String UniversalTelegramBot::sendPostToTelegram(String, ArduinoJson::JsonObject&)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:85:26: error: 'ArduinoJson::JsonObject' has no member named 'measureLength'

    int length = payload.measureLength();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:92:13: error: 'ArduinoJson::JsonObject' has no member named 'printTo'

    payload.printTo(out);

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'bool UniversalTelegramBot::getMe()':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:269:3: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:269:21: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:270:22: error: 'jsonBuffer' was not declared in this scope

    JsonObject& root = jsonBuffer.parseObject(response);

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:272:11: error: 'ArduinoJson::JsonObject' has no member named 'success'

    if(root.success()) {

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'int UniversalTelegramBot::getUpdates(long int)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:305:5: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:305:23: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:306:24: error: 'jsonBuffer' was not declared in this scope

    JsonObject& root = jsonBuffer.parseObject(response);

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:308:14: error: 'ArduinoJson::JsonObject' has no member named 'success'

    if (root.success()) {

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:312:48: error: 'class ArduinoJson670_0_0::ObjectSubscript<const char*>' has no member named 'size'

    int resultArrayLength = root["result"].size();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.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\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'bool UniversalTelegramBot::sendMessage(String, String, String)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:379:3: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:379:21: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:380:25: error: 'jsonBuffer' was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'bool UniversalTelegramBot::sendMessageWithReplyKeyboard(String, String, String, String, bool, bool, bool)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:394:3: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:394:21: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:395:25: error: 'jsonBuffer' was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.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\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:411:21: error: expected ';' before 'keyboardBuffer'

    DynamicJsonBuffer keyboardBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:412:29: error: 'keyboardBuffer' was not declared in this scope

    replyMarkup["keyboard"] = keyboardBuffer.parseArray(keyboard);

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'bool UniversalTelegramBot::sendMessageWithInlineKeyboard(String, String, String, String)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:432:3: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:432:21: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:433:25: error: 'jsonBuffer' was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.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\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:444:21: error: expected ';' before 'keyboardBuffer'

    DynamicJsonBuffer keyboardBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:445:36: error: 'keyboardBuffer' was not declared in this scope

    replyMarkup["inline_keyboard"] = keyboardBuffer.parseArray(keyboard);

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp: In member function 'String UniversalTelegramBot::sendPhoto(String, String, String, bool, int, String)':

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:514:3: error: 'DynamicJsonBuffer' was not declared in this scope

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:514:21: error: expected ';' before 'jsonBuffer'

    DynamicJsonBuffer jsonBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:515:25: error: 'jsonBuffer' was not declared in this scope

    JsonObject& payload = jsonBuffer.createObject();

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.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\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:535:23: error: expected ';' before 'keyboardBuffer'

    DynamicJsonBuffer keyboardBuffer;

    ^

    E:\User\Документы\Arduino\libraries\UniversalTelegramBot\src\UniversalTelegramBot.cpp:536:31: error: 'keyboardBuffer' was not declared in this scope

    replyMarkup["keyboard"] = keyboardBuffer.parseArray(keyboard);

    ^

    exit status 1
    Ошибка компиляции для платы Generic ESP8266 Module.
     
  12. ZAZ-965

    ZAZ-965 Гуру

    1. Вам нужна библиотека ArduinoJson версии 5.13.4 - в менеджере библиотек в выпадающем списке можно выбрать нужную версию
    2. Поправьте -
    Код (C++):
    bot.messages[i].text
    bot.messages[i].chat_id
    - к сообщениям обращаемся по индексу
     
  13. Теперь выдаёт новые ошибки
    warning: espcomm_sync failed
    error: espcomm_open failed
    error: espcomm_upload_mem failed
    error: espcomm_upload_mem failed

     
  14. ZAZ-965

    ZAZ-965 Гуру

  15. В итоге, я разобралась с ошибками, но команда не появилась в телеграмм боте. Совсем уже не знаю в чем проблема( Могла ли я сломать как-то этот модуль?
     
  16. ZAZ-965

    ZAZ-965 Гуру

    @Angelina Dementeva, api.telegram.org пингуется? Добавьте вывод в UART отладочных сообщений библиотеки UniversalTelegramBot
    Код (C++):
    void setup() {
      Serial.begin(9600);
      bot._debug=true; // выводим отладочную информацию
    ...
     
  17. SergeiL

    SergeiL Гуру

    Откройте командную строку и выполните команду:
    Код (Text):
    C:\Users\s.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 мсек
     
    У Вас так?
     
  18. У меня ничего не выводит
     
  19. SergeiL

    SergeiL Гуру

    Совсем ничего ???
     
  20. Совсем