Оглавление:

[IoT] Telegram Bot с Arduino MKR WiFi 1010: 5 шагов
[IoT] Telegram Bot с Arduino MKR WiFi 1010: 5 шагов

Видео: [IoT] Telegram Bot с Arduino MKR WiFi 1010: 5 шагов

Видео: [IoT] Telegram Bot с Arduino MKR WiFi 1010: 5 шагов
Видео: 35 Light Control with Telegram and ESP8266 | NodeMCU | Arduino | 2024, Июль
Anonim
Image
Image
Что вам нужно
Что вам нужно

Этот проект демонстрирует, как взаимодействовать 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

Установка IDE
Установка IDE
Установка IDE
Установка IDE
Установка IDE
Установка IDE

Да, я знаю, я знаю … у большинства из вас уже установлена Arduino IDE на ПК, но этот Instructables предназначен также для начинающих. Поэтому, прежде всего, загрузите Arduino IDE 1.8.5 по вашему выбору (zip-файл для 'не администраторы' или exe-файл)

Рекомендуется версия 1.8.5, я не тестировал старые версии, а новая плата, используемая в проекте, вообще не могла поддерживаться.

Теперь вам нужно установить новые платы с их драйверами:

  1. запустить IDE
  2. В меню «Инструменты» выберите «Платы», затем в верхней части списка процессоров выберите «Диспетчер плат».
  3. Прокрутите новое окно (см. Изображение), пока не найдете платы Arduino SAMD, которые включают новый MKR WiFi 1010.
  4. Нажмите на эту вкладку или нажмите «Подробнее» внутри вкладки, выберите последнюю версию и установите.
  5. Дождитесь завершения установки. Также позаботится об установке драйверов.
  6. Вам также понадобится новая библиотека WiFi для этой платы: выберите «Скетч», «Включить библиотеку» и «Управление библиотеками». Найдите Wifinina и установите, как вы это делали с процессором выше.

Теперь подключите новую плату Arduino и дождитесь, пока Windows завершит установку драйвера.

В меню Tools-> Board вы найдете новые платы, выберите MKR WiFi 1010.

Для этого проекта необходима еще одна специальная библиотека, это библиотека ESP8266TelegramBot от Giancarlo Bacchio. Библиотека была немного изменена для работы с этой платой, поэтому она включена в папку скетча.

Выберите правильный com-порт и проверьте плату с помощью команды Get Board Info.

Поздравляю, вы закончили с IDE!

Шаг 3. Создание бота Telegram

Создание бота Telegram
Создание бота Telegram
Создание бота Telegram
Создание бота Telegram
Создание бота Telegram
Создание бота 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: Улучшение

Improvementes
Improvementes

Глядя на код, очень просто реализовать новые команды и ответить пользователю.

Новые команды: вы можете написать подпрограмму для каждой новой команды. Каждый суб позаботится о завершении команды и (в конечном итоге) вернет пользователю информацию о статусе.

Ограничение пользователей: Конечно, этот проект - всего лишь демонстрация. Любой пользователь Telegram может подключиться к вашему дому и отправлять нежелательные команды. Вы этого не хотите !.

Что ж, посмотрите на image1, там 2 подключенных пользователя. Как видите, у каждого пользователя есть собственный идентификатор пользователя. Немного поработав над кодом, вы можете фильтровать (или создавать список) только для авторизованных пользователей. Просто изучите код и попробуйте перехватить идентификационный номер пользователя. Затем выполняйте команды только от известных пользователей.

Аппаратное обеспечение: с аппаратной стороны к контактам ввода / вывода Arduino можно подключить множество датчиков и реле.

Будьте осторожны: плата, использованная в этом проекте, выдерживает напряжение 3,3 В !!! При необходимости используйте переключатель уровня напряжения! Дополнительную информацию и советы по этой плате можно найти здесь:

Вот и все, наслаждайтесь!

Рекомендуемые: