Telegram-бот на Arduino MKR WiFi 1010: стартовое руководство по IoT
Компоненты и материалы
| Компонент | Количество |
|---|---|
| Arduino MKR WiFi 1010 (модуль ESP32 от u-blox) | 1 |
О проекте
Проект демонстрирует интеграцию Arduino с Telegram Bot API. В основе — новая плата MKR WiFi 1010 с модулем ESP32. Это proof-of-concept: только плата и USB-кабель. Но потенциал огромен.
Что такое Telegram-бот?
Боты — это аккаунты Telegram, управляемые программой, а не человеком. Они могут обучать, играть, искать, рассылать, напоминать, подключать сервисы и передавать команды IoT-устройствам. В нашем случае — команды Arduino. Бот отвечает на сообщения и управляет встроенным LED. Представьте: реле на пинах вкл/выкл обогреватель или кондиционер со смартфона!
Шаг 1: Что нужно
- Arduino MKR WiFi 1010 (магазин Arduino)
- Arduino IDE 1.8.5+ (скачать)
- Micro-USB кабель
- Интернет (SSID и пароль WiFi, лучше домашний роутер)
- Telegram на смартфоне (есть версии для ПК/Веб)
Шаг 2: Установка IDE и плат
- Скачайте и установите Arduino IDE 1.8.5+.
- Запустите IDE → Tools → Board → Boards Manager.
- Найдите Arduino SAMD Boards (включает MKR WiFi 1010), установите последнюю версию (ставит и драйверы).
- Sketch → Include Library → Manage Libraries → найдите WiFiNINA, установите.
- Подключите плату, дождитесь драйверов. В Tools → Board выберите MKR WiFi 1010.
- Для проекта нужна библиотека ESP8266TelegramBot (Giancarlo Bacchio), немного адаптированная — она в папке скетча.
- Выберите правильный COM-порт, проверьте Get Board Info.
Шаг 3: Создание бота в Telegram
- В Telegram найдите @BotFather, начните чат.
- Команда
/start→ помощь. /newbot→ введите имя (отображается в контактах).- Введите username (5–32 символа, латиница/цифры/подчёркивание, обязательно оканчивается на «bot», напр.
my_dice_bot). - Получите TOKEN — длинная строка, ключ к API. Сохраните! (Потеряли?
/tokenу BotFather выдаст новый.) - Опционально:
/setuserpic(аватар),/setabouttext(о боте),/setdescription(описание в чате).
Шаг 4: Настройка, загрузка и тест скетча
- Скачайте прикреплённый скетч
MKR1010Bot_V1_02.zip, распакуйте без переименований. - Откройте вкладку
arduino_secrets.h:- Впишите SSID и пароль WiFi.
- Впишите имя, username и токен бота от BotFather.
- Проверьте выбор платы (MKR WiFi 1010) и порт → компилируйте → загрузите.
- Важно! Плата имеет нативный USB (как Leonardo). После включения код ждёт открытия Serial Monitor. Оставьте подключённым к ПК, откройте Serial Monitor (9600 бод). Arduino подключится к WiFi и начнёт поллинг Telegram.
- В Telegram найдите бота по имени (не username), откройте чат. Отправьте
/start— получите приветствие. Напишитеhelp(без слеша) — список команд. Попробуйте все (вкл/выкл LED и др.).
Проблемы с сертификатами (SSL)
Если в логах «Bot not connected»:
- Tools → WiFi101/WiFiNINA Firmware Updater.
- Проверьте, что плата видна в списке портов.
- Нажмите Open updater sketch → загрузите в плату.
- В апдейтере выберите последнюю прошивку → Update firmware.
- В разделе SSL certificates → Add domain → введите
telegram.org:443→ OK. - Upload certificates to wifi module.
- Снова загрузите скетч бота.
Шаг 5: Улучшения
- Новые команды: добавьте функции-обработчики, возвращающие статус пользователю.
- Ограничение доступа: у каждого пользователя есть уникальный
user_id(видно в логах Serial). Добавьте фильтр: выполнять команды только от известных ID. - Железо: к пинам I/O можно подключать датчики и реле. Внимание: плата 3.3 В! Используйте уровнепреобразователи где нужно. Подробнее: руководство по MKR WiFi 1010.
Код
Полный скетч в архиве MKR1010Bot_V1_02.zip (C/C++). Предпросмотр недоступен — скачайте и изучите.
Производственный процесс
- Расширение GoPiGo v2 на Windows 10 IoT Core для Raspberry Pi 3
- Умная копилка: управление монетоприёмником на Arduino Nano
- Детектор аудиочастот на Arduino: измеряем пик громкости с высокочувствительным модулем
- Управление светодиодом по Bluetooth с Arduino: простой DIY-гид
- Крестики-нолики на Arduino с матрицей MAX7219 и картонным корпусом
- Сборка вольтметра на Arduino с дисплеем Nokia 5110 — Пошаговое руководство
- Сборка надежного таймера обратного отсчета на Arduino с 7-сегментным дисплеем SparkFun
- Голосовое управление бытовыми приборами: Bluetooth-управление через Google Assistant
- Создание приложения Fridgeye с дисплеем Nextion: пошаговое руководство
- Самодельный RC Porsche на Arduino: Пошаговое руководство