Взаимодействие с ботом Telegram с помощью ESP8266


Telegram в настоящее время является одним из самых популярных мессенджеров в мире. Уже создано достаточно много приложений и проектов, умеющих взаимодействовать с данным мессенджером. И в данной статье мы рассмотрим взаимодействие с ботом Telegram с помощью модуля ESP8266.

Внешний вид проекта взаимодействия с ботом Telegram с помощью ESP8266

Также на нашем сайте вы можете посмотреть все проекты, в которых использовался Telegram.

Необходимые компоненты

Аппаратное обеспечение

  1. Плата Arduino Uno (купить на AliExpress).
  2. Модуль ESP-01 (ESP8266) (купить на AliExpress).
  3. Смартфон с операционной системой Android.
  4. Соединительные провода.

Программное обеспечение

  1. API для Telegram бота.
  2. Arduino IDE.

Схема проекта

Схема соединения платы Arduino Uno с модулем ESP8266 для взаимодействия с ботом Telegram представлена на следующем рисунке.

Схема соединения платы Arduino Uno с модулем ESP8266 для взаимодействия с ботом Telegram

Как видите, схема достаточно проста. Также необходимо соединить контакт GPIO0 модуля ESP8266 с землей и его контакт сброса (reset) с контактом сброса платы Arduino. После этого можно загружать код программы в модуль ESP8266.

Плата Arduino Uno в нашей схеме используется в качестве в качестве FTDI программатора. Более подробно про данный способ загрузки программы в модуль ESP8266 вы можете прочитать в этой статье. Если же вы вместо модуля ESP-01 (ESP8266) будете использовать плату NodeMCU ESP8266, то ее можно напрямую подключать к компьютеру по USB кабелю, не используя при этом плату Arduino Uno.

Библиотека для работы с Telegram

Прежде чем приступать к написанию кода программы вам необходимо скачать и установить в Arduino IDE библиотеку для работы с ботом Telegram (Telegram Bot library). Скачать ее можно по следующей ссылке с Github.

Настройка бота Telegram

Botfather в Telegram

Установите Telegram на ваш ноутбук или смартфон и в нем выполните поиск бота Botfather. Этот бот позволит вам создавать своих новых ботов в Telegram. После создания своего бота вам необходимо получить свой токен доступа (token) в Telegram. Более подробно про эти процессы вы можете прочитать в этой статье.

Исходный код программы (скетча)

Видео, демонстрирующее работу проекта

Источник статьи

(1 голосов, оценка: 5,00 из 5)
Загрузка...
7 752 просмотров

Комментарии

Взаимодействие с ботом Telegram с помощью ESP8266 — 8 комментариев

  1. Даже после даунгрейда на ArduinoJson 5.13.5 падает при компиляции:

    c:\Users\User\Documents\Arduino\libraries\TelegramBot\src\TelegramBot.cpp: In member function 'message TelegramBot::getUpdates()':
    c:\Users\User\Documents\Arduino\libraries\TelegramBot\src\TelegramBot.cpp:29:107: error: control reaches end of non-void function [-Werror=return-type]
    29 | String getRequest = "GET /bot"+String(token)+"/getUpdates?limit=1&offset="+String(last_message_recived)+" HTTP/1.1";
    | ^~~~~~~~~~~
    c:\Users\User\Documents\Arduino\libraries\TelegramBot\src\TelegramBot.cpp: In member function 'String TelegramBot::sendMessage(String, String)':
    c:\Users\User\Documents\Arduino\libraries\TelegramBot\src\TelegramBot.cpp:96:17: error: control reaches end of non-void function [-Werror=return-type]
    96 | Serial.println("Chat_id not defined");
    | ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
    cc1plus.exe: some warnings being treated as errors

    exit status 1

    Compilation error: exit status 1

    Есть идеи?

    • Не знаю, так сразу сложно сказать в чем проблема, может быть используемая библиотека немного изменилась с момента написания данной статьи. Попробуйте компилировать не всю представленную программу, а оставьте в ней вызов только одной какой-либо функции из данной библиотеки, потом другой и т.д. Если сложная программа не работает, то наиболее действенный способ найти в ней ошибки это тестировать ее по маленьким частям.

  2. Библиотека на гитхабе заточена под 5 ArduinoJson а сейчас уже 6 из коробки, стоило упомянуть я думаю что нужен даунгрейд, запустилось на 5.13.5

    пишет вот такую штуку:

    C:\Users\User\Documents\Arduino\libraries\TelegramBot-Library-master\src\TelegramBot.cpp:39:11: error: StaticJsonBuffer is a class from ArduinoJson 5. Please see arduinojson.org/upgrade to learn how to upgrade your program to ArduinoJson version 6
    39 | StaticJsonBuffer jsonBuffer;

    У меня тоже не подключился к wifi, дописал WiFi.begin(ssid, password); перед "Serial.print("Connecting Wifi: ");" и поменял условие while (WiFi.status() != WL_CONNECTED)
    всё подключилось
    может кому поможет

    • Да, спасибо за подробный комментарий. Сайт просто уже очень большой, не успеваю уже физически следить за обновлениями ко всем проектам, опубликованным на сайте

  3. Все сделал как написано, загрузил скетч... но в мониторе порта "......" т.е. Wifi не подключается, даже создавал точку доступа на телефоне типа "Ssid: aaa" и пароль "12345678" , но ничего не работает!!!

    • Попробуйте скетч (часть скетча) из любого другого проекта на основе модуля ESP8266 на нашем сайте, в котором есть подключение к сети Wi-Fi. Так сразу сложно сказать почему ваш модуль не подключается к Wi-Fi

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *