Инструкция по созданию Telegram-бота с помощью ESP32

Последнее обновление: 15/11/2026
Автор: Исаак
  • Интеграция библиотеки UniversalTelegramBot для упрощения HTTPS-связи с Telegram API.
  • Дистанционное управление выводами GPIO для работы с исполнительными механизмами, такими как светодиоды, и считывания состояний переключателей.
  • Внедрение мер безопасности посредством проверки идентификаторов чата и использования SSL-сертификатов.

Плата микроконтроллера, подключенная к макетной плате со светодиодом, идеально подходит для демонстрации результатов проекта на базе ESP32.

Вы когда-нибудь задумывались о том, чтобы управлять устройствами домашней автоматизации, не вставая с дивана, с помощью мобильного телефона? Настройка системы управления ESP32 через Telegram — один из самых простых и эффективных способов войти в мир домашней автоматизации, не усложняя себе жизнь дорогостоящими внешними серверами или сложными конфигурациями.

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

Материалы, которые вам понадобятся

Деталь макетной платы с кабелями и электронными компонентами, полезная для раздела необходимых материалов.

Для начала вам не нужно тратить целое состояние. Самое важное — это наличие платы ESP32 ; неважно, старая это модель или новая, совместимость абсолютная. Помимо "мозга" проекта, вам понадобятся некоторые базовые компоненты для тестирования:

  • Светодиод (LED) для проверки работоспособности всех устройств.
  • Резистор на 220 Ом необходим для предотвращения перегорания светодиода.
  • Кнопка или переключатель для считывания физического состояния.
  • Соединительные кабели и макетная плата позволят вам не паять ничего на начальном этапе.

Сборка электронной схемы

Руки собирают электронные компоненты и провода на макетной плате для сборки схемы.

Перед редактированием кода необходимо подготовить оборудование. В этом примере мы подключим светодиод к выводу GPIO 33 , а переключатель — к выводу GPIO 14. Важно помнить, что вы можете изменять эти выводы по мере необходимости, но это изменение необходимо будет отразить в константах программы.

  Телеграм работает некорректно. Причины, решения и альтернативы

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

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

Крупный план человека, использующего смартфон для отправки сообщений, имитирующий взаимодействие с Telegram-ботом.

Чтобы ESP32 мог определить, кого прослушивать, необходимо сначала создать учетную запись бота в самом приложении Telegram. Этот процесс крайне важен, поскольку он предоставляет две ключевые части информации: токен бота (длинная строка цифр и букв) и ваш личный идентификатор пользователя . Без этих двух ключей устройство не сможет пройти аутентификацию или определить, кто имеет право отдавать ему команды.

Если в какой-то момент вам покажется, что чат стал хаотичным, помните, что вы всегда можете очистить историю через меню в правом верхнем углу. Это перезапустит бота и вернет его на главную страницу с доступными командами, позволяя вам начать все заново.

Подготовка среды разработки

Ноутбук с программным кодом на экране, демонстрирующий этап разработки в среде разработки Arduino IDE.

Для корректной работы кода нам необходимо установить инструмент, который значительно упростит нам жизнь: библиотеку UniversalTelegramBot . Вместо того чтобы писать сотни строк кода для обработки Telegram API, эта библиотека делает практически всё за нас.

Для установки просто перейдите в менеджер библиотек Arduino IDE, введите название библиотеки и нажмите «Установить». Также убедитесь, что у вас установлены библиотеки WiFi и WiFiClientSecure , поскольку они позволяют ESP32 подключаться к интернету и использовать протокол HTTPS для безопасной связи.

Анализ кода управления

Программа начинает работу с определения учетных данных вашей сети Wi-Fi и ключей бота. Крайне важно заменить приведенные примеры значений на свои собственные. SSID и парольа также токен и идентификатор чата. Для обеспечения интерактивности мы определяем переменную с именем info который содержит список команд, которые распознает бот, например, /led_on или /sw_state.

  Как автоматизировать ответы и опросы в Telegram с помощью ботов

Управление сообщениями и командами

Сердце системы — это функция, которая проверяет наличие новых сообщений. ESP32 использует следующий метод: getUpdates для проверьте очередь сообщений Из Telegram. Чтобы предотвратить несанкционированный доступ посторонних лиц к вашему дому, код включает фильтр, который проверяет, точно ли идентификатор отправителя совпадает с вашим. предопределенный CHAT_ID.

После подтверждения личности пользователя бот анализирует полученный текст: если он обнаруживает... /led_onОн посылает цифровой сигнал на контакт 33 для включения света; если он получает /led_off, отключает его. Также есть возможность /led_toggleчто очень практично, потому что меняет текущее состояние на противоположное Светодиод будет гореть, и вам не нужно будет знать, был ли он ранее включен или выключен.

Считывание и завершение показаний датчика

Помимо отдачи команд, бот также может предоставлять информацию. Используя команду... /sw_stateESP32 считывает состояние контакта 14. Поскольку мы настроили этот контакт следующим образом: INPUT_PULLUPУстройство определит, нажата кнопка или нет, и отправит нам подтверждающее текстовое сообщение.

В процессе загрузки устройство подключается к Wi-Fi в заблокированном режиме, то есть оно ничего не будет делать, пока соединение не станет стабильным . Для дальнейшего повышения безопасности используется корневой сертификат Telegram, гарантирующий шифрование передаваемых данных. Основной цикл просто повторяет проверку сообщений каждую секунду, чтобы поддерживать систему в быстром и отзывчивом состоянии.

С помощью этой системы мы успешно интегрировали аппаратное и программное обеспечение для создания беспроводного коммуникационного моста. Мы настроили бота, обеспечили безопасность с помощью идентификаторов и сертификатов, а также запрограммировали ответы на сигналы GPIO для взаимодействия с физическим миром из любой точки, где есть подключение к интернету.

Исаак

Isaac

Страстный писатель о мире байтов и технологий в целом. Мне нравится делиться своими знаниями в письменной форме, и именно этим я и займусь в этом блоге: покажу вам все самое интересное о гаджетах, программном обеспечении, оборудовании, технологических тенденциях и многом другом. Моя цель — помочь вам ориентироваться в цифровом мире простым и интересным способом.

  Как отправлять сообщения между WhatsApp и Telegram

Часто задаваемые вопросы

Какая библиотека необходима для подключения ESP32 к Telegram?

Рекомендуется использовать библиотеку UniversalTelegramBot, которая упрощает взаимодействие с API Telegram и облегчает отправку и получение сообщений.

Как мне гарантировать, что только я смогу управлять ботом?

Данный код реализует фильтр, который сравнивает идентификатор чата полученного сообщения с предопределенным CHAT_ID, игнорируя любые команды, поступающие от другого пользователя.

Обязательно ли использовать HTTPS для связи с ботом?

Да, Telegram требует защищенных соединений, поэтому используется WiFiClientSecure, и на ESP32 необходимо настроить корневой сертификат Telegram.

Каково назначение команды /led_toggle в коде?

Эта команда используется для инвертирования текущего состояния светодиода: он включается, если был выключен, или выключается, если был включен.

Почему для переключателя используется INPUT_PULLUP?

Он используется для активации внутреннего сопротивления платы, что позволяет избежать необходимости добавления внешнего физического сопротивления к цепи кнопки.

Где я могу получить токен бота и идентификатор пользователя?

Токен можно получить, создав бота через BotFather в Telegram, а идентификатор пользователя — с помощью ботов, специализирующихся на получении данных профиля.