![Тelegram: Управление выходами ESP32 / ESP8266](https://voltiq.ru/wp-content/uploads/title-6.jpg)
В этом руководстве рассмотрим, как управлять GPIO ESP32 или ESP8266 NodeMCU удаленно с помощью Telegram (изменение сигналов на выходе будет осуществляться с помощью бота Telegram). Мы будем использовать светодиоды, но, внеся несколько изменений, вы сможете адаптировать данный код под любые задачи.
21 комментарий. Оставить новый
у меня почему-то не загружает скетч пишет Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Здравствуйте! Напишите полный код ошибки, которая у вас отображается – постараемся помочь.
Подключил esp8266 библиотеку и настроил плату и com-порт
c:/users/user/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.3-gcc10.3-9bcba0b/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: core\core.a(core_esp8266_main.cpp.o): in function
__loop_end':
setup’C:\Users\User\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.1\cores\esp8266/core_esp8266_main.cpp:189: undefined reference to
c:/users/user/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.3-gcc10.3-9bcba0b/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: core\core.a(core_esp8266_main.cpp.o):(.text._ZL12loop_wrapperv+0xc): undefined reference to
loop'
_ZL12loop_wrapperv’:c:/users/user/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.3-gcc10.3-9bcba0b/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: core\core.a(core_esp8266_main.cpp.o): in function
C:\Users\User\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.1\cores\esp8266/core_esp8266_main.cpp:193: undefined reference to
setup'
loop’c:/users/user/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/3.0.3-gcc10.3-9bcba0b/bin/../lib/gcc/xtensa-lx106-elf/10.3.0/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\User\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.1\cores\esp8266/core_esp8266_main.cpp:196: undefined reference to
collect2.exe: error: ld returned 1 exit status
Несколько библиотек найдено для “ESP8266WiFi.h”
Используется: C:\Users\User\Documents\Arduino\libraries\ESP8266WiFi
Не используется: C:\Users\User\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\3.0.1\libraries\ESP8266WiFi
exit status 1
Ошибка компиляции для платы NodeMCU 1.0 (ESP-12E Module).
Добрый вечер. Не загружает скетч пишет Ошибка компиляции для платы NodeMCU 1.0/0.9 (ESP-12E Module).
c:/users/���/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: core\core.a(core_esp8266_main.cpp.o): in function
__loop_end':
setup’C:\Users\���\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\cores\esp8266/core_esp8266_main.cpp:167: undefined reference to
c:/users/���/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\���\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\cores\esp8266/core_esp8266_main.cpp:167: undefined reference to
loop'
loop_wrapper()’:c:/users/���/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: core\core.a(core_esp8266_main.cpp.o): in function
C:\Users\���\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\cores\esp8266/core_esp8266_main.cpp:173: undefined reference to
setup'
loop’c:/users/���/appdata/local/arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/2.5.0-4-b40a506/bin/../lib/gcc/xtensa-lx106-elf/4.8.2/../../../../xtensa-lx106-elf/bin/ld.exe: C:\Users\���\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.6.0\cores\esp8266/core_esp8266_main.cpp:174: undefined reference to
collect2.exe: error: ld returned 1 exit status
exit status 1
Ошибка компиляции для платы…
Бот отправляет сообщения, но полностью отказывается их читать. В чём проблема?
Что мешало привести пример скетча целиком ?
c:/users/samve/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\samve\AppData\Local\Temp\arduino\cores\16636fd35038c95688f72b9653699219\core.a(main.cpp.o):(.literal._Z8loopTaskPv+0x8): undefined reference to
setup()'
loop()’c:/users/samve/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\samve\AppData\Local\Temp\arduino\cores\16636fd35038c95688f72b9653699219\core.a(main.cpp.o):(.literal._Z8loopTaskPv+0xc): undefined reference to
c:/users/samve/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\samve\AppData\Local\Temp\arduino\cores\16636fd35038c95688f72b9653699219\core.a(main.cpp.o): in function
loopTask(void*)':
setup()’C:\Users\samve\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/main.cpp:42: undefined reference to
c:/users/samve/appdata/local/arduino15/packages/esp32/tools/xtensa-esp32-elf-gcc/esp-2021r2-patch5-8.4.0/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld.exe: C:\Users\samve\AppData\Local\Arduino15\packages\esp32\hardware\esp32\2.0.11\cores\esp32/main.cpp:48: undefined reference to `loop()’
collect2.exe: error: ld returned 1 exit status
exit status 1
Compilation error: exit status 1
Esp8266.h No such file of directory
Что делать?
Добрый день!
Эта ошибка говорит о том, что компилятор не может найти файл Esp8266.h. Убедитесь, что вы правильно выбрали плату в настройках скетча.
На плате ESP8266 можно адекватно настроить отправку команд, чтобы ON – это включить, а OFF – выключить? А не наоборот
Здравствуйте! Для этого необходимо заменить строку 73 в коде на ledState = LOW;, а строку 79 на ledState = HIGH;, т.е. поменять их местами.
Это связано с тем, что на ESP8266 светодиод работает с инвертированной логикой, т.е. включается при подаче низкого уровня сигнала и выключается при высоком уровне.
Добрый день!
Сообщение ошибки:
Missing FQBN (Fully Qualified Board Name)
Compilation error: Missing FQBN (Fully Qualified Board Name)
Добрый день!
Эта ошибка возникает, если у вас не выбрана целевая плата. Если у вас в Arduno IDE отсутствует нужная вам версия платы, то вам необходимо дополнительно установить её поддержку в Arduino IDE.
C:\Users\User\Documents\Arduino\RemoteControlComp_WiFi\RemoteControlComp_WiFi.ino:101:12: error: ‘class WiFiClientSecure’ has no member named ‘setTrustAnchors’
client.setTrustAnchors(&cert); // Сертификат для api.telegram.org
^
C:\Users\User\Documents\Arduino\RemoteControlComp_WiFi\RemoteControlComp_WiFi.ino:101:29: error: ‘cert’ was not declared in this scope
Добрый день.
Извините за предыдущее сообщение -поторопился нажать кнопку.
Ваш скетч практически один-в-один (небольшие правки в обработчиках сообщений), плата Node MCU ESP8266… Всё делал по данной статье, при попытке загрузить скетч в плату вываливаются ошибки вот на эту строку:
client.setTrustAnchors(&cert);
Что не так у меня? Спасибо, с уважением
Здравствуйте!
Ошибка
class WiFiClientSecure’ has no member named ‘setTrustAnchors’
может указывать на то, что вы используете неправильную библиотеку для работы с WiFi. Убедитесь, что вы используете именноESP8266WiFi.h
, неWiFi.h
.Вторая ошибка
‘cert’ was not declared in this scope
говорит о том, что у вас не была объявлена переменнаяcert
. Убедитесь, что вы объявили эту переменную в начале скетча:X509List cert(TELEGRAM_CERTIFICATE_ROOT);
Также убедитесь, что в Arduino IDE выбрана правильная плата.
Спасибо! на объявление cert вот так ругается IDE: C:\Users\User\Documents\Arduino\FlashLED\FlashLED.ino:35:1: error: ‘X509List’ does not name a type
X509List cert(TELEGRAM_CERTIFICATE_ROOT);
Compilation error: ‘X509List’ does not name a type
Эта ошибка говорит о том, что программа не может найти определение класса
X509List
. Этот класс определён внутри библиотеки ESP8266WiFi в файле WiFiClientSecureBearSSL.h. Попробуйте также включить этот файл в вашу программу:#include <WiFiClientSecureBearSSL.h>
.Если это не поможет, возможно, библиотека ESP8266WiFi была установлена неправильно. Переустановите её со всеми зависимостями либо попробуйте обновить до последней версии.
Перепробовал несколько вариантов. файла WiFiClientSecureBearSSL нигде не нахожу. Не подскажете ли где взять правильную библиотеку?
Спасибо
Библиотеку можно установить через менеджер библиотек в Arduino IDE либо скачать с github: https://github.com/esp8266/Arduino/tree/master/libraries/ESP8266WiFi.
Огромное спасибо! Всё получилось!