Оглавление:
- Шаг 1. Что вам нужно
- Шаг 2: Установка IDE
- Шаг 3. Создание бота Telegram
- Шаг 4. Измените, загрузите и протестируйте эскиз
- Шаг 5: Улучшение
Видео: [IoT] Telegram Bot с Arduino MKR WiFi 1010: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
Этот проект демонстрирует, как взаимодействовать Arduino с API Telegram Bot. Проект построен на новой плате MKR WiFi 1010, оснащенной модулем ESP32 от U-BLOX.
На данном этапе проект является не более чем доказательством концепции, просто чтобы показать вам, что вы можете сделать, поэтому для этого вам понадобится только плата Arduino.
Но что такое Telegram Bot? Ну, боты - это просто учетные записи Telegram, управляемые программным обеспечением, а не людьми, и они часто имеют функции AI. Они могут делать что угодно - обучать, играть, искать, транслировать, напоминать, подключаться, интегрироваться с другими службами или даже передавать команды в Интернет вещей. (кредиты Telegram:
В нашем случае мы передадим команды Arduino, создающему простое устройство IoT. Он будет отвечать на простые команды, а также включать / выключать встроенный светодиод. Я позволю вашему воображению сделать с этим больше… (представьте, что вы подключили одно или несколько реле к контактам ввода-вывода и, например, включили / выключили обогреватель или систему кондиционирования воздуха с помощью смартфона).
Шаг 1. Что вам нужно
Для этого проекта вам понадобятся:
- Arduino MKR WiFi 1010 из магазина Arduino:
- Arduino IDE 1.8.5 или выше:
- Кабель micro-usb для подключения Arduino к вашему ПК
- Подключение к Интернету, требуется SSID и пароль. Лучше использовать собственный домашний роутер, чтобы убедиться, что он не заблокирован.
- Приложение Telegram установлено на вашем смартфоне, независимо от марки. Проверьте здесь версию для ПК и веб-версию!
Шаг 2: Установка IDE
Да, я знаю, я знаю … у большинства из вас уже установлена Arduino IDE на ПК, но этот Instructables предназначен также для начинающих. Поэтому, прежде всего, загрузите Arduino IDE 1.8.5 по вашему выбору (zip-файл для 'не администраторы' или exe-файл)
Рекомендуется версия 1.8.5, я не тестировал старые версии, а новая плата, используемая в проекте, вообще не могла поддерживаться.
Теперь вам нужно установить новые платы с их драйверами:
- запустить IDE
- В меню «Инструменты» выберите «Платы», затем в верхней части списка процессоров выберите «Диспетчер плат».
- Прокрутите новое окно (см. Изображение), пока не найдете платы Arduino SAMD, которые включают новый MKR WiFi 1010.
- Нажмите на эту вкладку или нажмите «Подробнее» внутри вкладки, выберите последнюю версию и установите.
- Дождитесь завершения установки. Также позаботится об установке драйверов.
- Вам также понадобится новая библиотека WiFi для этой платы: выберите «Скетч», «Включить библиотеку» и «Управление библиотеками». Найдите Wifinina и установите, как вы это делали с процессором выше.
Теперь подключите новую плату Arduino и дождитесь, пока Windows завершит установку драйвера.
В меню Tools-> Board вы найдете новые платы, выберите MKR WiFi 1010.
Для этого проекта необходима еще одна специальная библиотека, это библиотека ESP8266TelegramBot от Giancarlo Bacchio. Библиотека была немного изменена для работы с этой платой, поэтому она включена в папку скетча.
Выберите правильный com-порт и проверьте плату с помощью команды Get Board Info.
Поздравляю, вы закончили с IDE!
Шаг 3. Создание бота Telegram
Создать нового бота Telegram довольно просто.
Откройте приложение Telegram и в строке поиска введите @BotFather и начните с ним чат (image1). BotFather - это… фабрика ботов. Это поможет вам создать нового бота и изменить его настройки.
После команды / start вы увидите список справки (image2).
- Введите / newbot (image3) Теперь введите имя вашего бота. Имя отображается в контактных данных и в других местах.
- BotFather запросит у вас имя пользователя. Имя пользователя - это короткое имя, которое будет использоваться в упоминаниях и ссылках на telegram.me. Имена пользователей состоят из 5–32 символов и нечувствительны к регистру, но могут включать только латинские символы, числа и символы подчеркивания. Имя пользователя вашего бота должно заканчиваться на "bot", например «Tetris_bot» или «TetrisBot».
- Если и имя, и имя пользователя действительны, вы получите длинную строку символов под названием TOKEN. Это ваш личный `` ключ '', используемый для связи с серверами Telegram. Скопируйте и вставьте его в текстовый файл на свой компьютер. Мы будем использовать его позже в коде Arduino. Если вы его потеряете, не волнуйтесь, просто откройте чат повторно и введите / token, чтобы сгенерировать новый.
Все шаги описаны здесь:
Продвинутый (необязательно)
Снова откройте чат и введите / help
Нажмите (или введите) / setuserpic, чтобы загрузить изображение для своего бота. Нажмите (или введите) / setabouttext, чтобы установить раздел «О программе» для вашего бота: люди увидят этот текст на странице профиля бота, и он будет отправлен вместе с ссылка на вашего бота, когда они с кем-то делятся ею.
Щелкните (или введите) / setdescription, чтобы задать раздел описания для вашего бота. Люди увидят это описание, когда они откроют чат с вашим ботом, в блоке под названием «Что умеет этот бот?».
Шаг 4. Измените, загрузите и протестируйте эскиз
Пришло время загрузить программное обеспечение на плату Arduino MKR WiFi 1010.
Загрузите прикрепленные файлы, по какой-то причине я не могу загрузить ZIP, поэтому создайте папку с именем эскиза и скопируйте все 4 файла внутри нее, пожалуйста, не меняйте имена, если вы не знаете, что делаете.
Изменить
Откройте скетч, нам нужно заполнить некоторую информацию (image1): заполните arduino_secrets.h вашими учетными данными Wi-Fi и Telegram.
- Найдите информацию о сети Wi-Fi и введите имя вашей сети (SSID) и пароль.
- Найдите информацию о боте в Telegram и введите имя, имя пользователя и токен, предоставленные @BotFather.
Загрузить
Убедитесь, что плата правильная (image2) в ide и подключена, затем попробуйте скомпилировать код. Если компиляция прошла успешно, загрузите ее на доску, это займет всего несколько секунд.
В случае возникновения проблем проверьте наличие опечатки и повторите попытку.
Тестовое задание
[ВАЖНО!] Скетч отправляет логи в IDE. У процессора есть родной порт USB (как на платах Leonardo). После включения код будет ждать, пока не запустится серийный монитор. Итак, позвольте ему подключиться к ПК и открыть последовательный монитор. Arduino сначала подключится к Интернету, а затем начнет опрашивать сервер Telegram на наличие новых сообщений (изображение 3).
Теперь откройте Telegram на предпочитаемом вами устройстве и в поле поиска введите имя своего бота (а не имя пользователя, которое заканчивается на «бот»). Откройте чат с ним.
Первая команда для запуска чата с ботом - / start, наш Arduino ответит приветственным сообщением. Теперь введите help (без косой черты), он ответит со списком поддерживаемых команд, вы можете попробовать их все (image4).
Вы закончили тест, если что-то не работает, проверьте информацию, введенную в скетч (имя, имя пользователя, токен …)
Сертификаты Если у вас возникли ошибки при подключении к серверу Telegram (журнал: Бот не подключен):
- Откройте Инструменты-> Wifi101 / средство обновления wifinina.
- Убедитесь, что ваша плата подключена, проверьте порты слева от инструмента обновления, плата должна быть там
- Нажмите Открыть эскиз средства обновления и загрузите его на доску.
- После загрузки в программе обновления выберите последнюю версию прошивки для вашей платы и нажмите «Обновить прошивку».
- После обновления в программе обновления в разделе SSL-сертификаты нажмите Добавить домен, в диалоговом окне напишите telegram.org:443 и нажмите ОК.
- Нажмите Загрузить сертификаты в модуль Wi-Fi.
- Загрузите этот набросок на доску
Шаг 5: Улучшение
Глядя на код, очень просто реализовать новые команды и ответить пользователю.
Новые команды: вы можете написать подпрограмму для каждой новой команды. Каждый суб позаботится о завершении команды и (в конечном итоге) вернет пользователю информацию о статусе.
Ограничение пользователей: Конечно, этот проект - всего лишь демонстрация. Любой пользователь Telegram может подключиться к вашему дому и отправлять нежелательные команды. Вы этого не хотите !.
Что ж, посмотрите на image1, там 2 подключенных пользователя. Как видите, у каждого пользователя есть собственный идентификатор пользователя. Немного поработав над кодом, вы можете фильтровать (или создавать список) только для авторизованных пользователей. Просто изучите код и попробуйте перехватить идентификационный номер пользователя. Затем выполняйте команды только от известных пользователей.
Аппаратное обеспечение: с аппаратной стороны к контактам ввода / вывода Arduino можно подключить множество датчиков и реле.
Будьте осторожны: плата, использованная в этом проекте, выдерживает напряжение 3,3 В !!! При необходимости используйте переключатель уровня напряжения! Дополнительную информацию и советы по этой плате можно найти здесь:
Вот и все, наслаждайтесь!
Рекомендуемые:
Telegram Flame Alarm Bot: 5 шагов
Telegram Flame Alarm Bot: в этой статье я представлю проект IoT, который позволяет обнаруживать пламя и отправлять уведомление в Telegram пользователя. Что вам понадобится: модуль датчика пламени, микроконтроллер NodeMCU ESP8266, источник питания, Wi-Fi, выходное устройство с телеграммой
Использование щитов Arduino MKR с Raspberry Pi: 8 шагов
Используйте Arduino MKR Shield с Raspberry Pi: наш PiMKRHAT - это адаптер HAT для использования плат и экранов Arduino MKR вместе с Raspberry Pi. Различные щиты Arduino MKR можно использовать через нашу HAT в качестве расширения для Raspberry Pi. В этом небольшом проекте я хочу показать, как использовать Ardu
Управление Arduino с помощью Telegram Bot без дополнительного оборудования: 5 шагов
Управляйте Arduino с помощью бота Telegram без дополнительного оборудования: с Arduino можно делать множество вещей, но задумывались ли вы когда-нибудь об управлении Arduino с помощью бота Telegram? ЧТО ВАМ НУЖНО: на вашем компьютере установлен Arduino UNO Node.js ПК Некоторое управляемое устройство (мы используем встроенный светодиод Arduino в
Telegram Bot Esp8266-001 (Arduino UNO или NodeMCU): 6 шагов
Telegram Bot Esp8266-001 (Arduino UNO или NodeMCU): Здравствуйте! В этом уроке я покажу вам, как управлять Arduino с помощью esp8266-001 и Telegram. Это открывает большие возможности для Интернета вещей (IoT)
Intel Edison Espião + Bot Telegram: 5 шагов
Intel Edison Espião + Bot Telegram: Проект представлен без Intel IoT Roadshow - S ã o Paulo (ноябрь 2015 г.) Пример обнаружения и использования изображения Intel Edison, веб-камера, программа на Python и OpenCV. Демонстрация совместной программы Intel Edison для