Telegram в настоящее время является одним из самых популярных мессенджеров в мире. Уже создано достаточно много приложений и проектов, умеющих взаимодействовать с данным мессенджером. И в данной статье мы рассмотрим взаимодействие с ботом Telegram с помощью модуля ESP8266.
Также на нашем сайте вы можете посмотреть все проекты, в которых использовался Telegram.
Необходимые компоненты
Аппаратное обеспечение
- Плата Arduino Uno (купить на AliExpress).
- Модуль ESP-01 (ESP8266) (купить на AliExpress).
- Смартфон с операционной системой Android.
- Соединительные провода.
Программное обеспечение
- API для Telegram бота.
- Arduino IDE.
Схема проекта
Схема соединения платы 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
Установите Telegram на ваш ноутбук или смартфон и в нем выполните поиск бота Botfather. Этот бот позволит вам создавать своих новых ботов в Telegram. После создания своего бота вам необходимо получить свой токен доступа (token) в Telegram. Более подробно про эти процессы вы можете прочитать в этой статье.
Исходный код программы (скетча)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
#include <ESP8266WiFi.h> #include <WiFiClientSecure.h> #include <TelegramBot.h> #define LED 1 //контакт, к которому подключен светодиод // данные для подключения к сети Wifi const char* ssid = "xxxxx"; const char* password = "yyyyy"; // инициализация Telegram бота const char BotToken[] = "xxxxxxxxx"; WiFiClientSecure net_ssl; TelegramBot bot (BotToken, net_ssl); // the number of the LED pin void setup() { Serial.begin(115200); while (!Serial) {} //Start running when the serial is open delay(3000); // делаем попытку соединения с сетью Wifi Serial.print("Connecting Wifi: "); Serial.println(ssid); while (WiFi.begin(ssid, password) != WL_CONNECTED) { Serial.print("."); delay(500); } Serial.println(""); Serial.println("WiFi connected"); bot.begin(); pinMode(LED, OUTPUT); } void loop() { message m = bot.getUpdates(); // считываем новые сообщения if (m.text.equals("on")) { digitalWrite(LED, 1); bot.sendMessage(m.chat_id, "The Led is now ON"); } else if (m.text.equals("off")) { digitalWrite(LED, 0); bot.sendMessage(m.chat_id, "The Led is now OFF"); } } |
Все сделал как написано, загрузил скетч... но в мониторе порта "......" т.е. Wifi не подключается, даже создавал точку доступа на телефоне типа "Ssid: aaa" и пароль "12345678" , но ничего не работает!!!
Попробуйте скетч (часть скетча) из любого другого проекта на основе модуля ESP8266 на нашем сайте, в котором есть подключение к сети Wi-Fi. Так сразу сложно сказать почему ваш модуль не подключается к Wi-Fi