Каталог
|
Телеграм бот на мікроконтролері2023-03-06 Все статьи →Зараз дуже популярне написання телеграм ботів на Python, проте завжди з’являється одна проблема - хостинг. Цього бота або треба постійно запускати, або арендовувати хостинг, або - подати живлення і доступ до мережі мікроконтролеру і забути про всі ці проблеми. Python має декілька інтерпретаторів для мікроконтролерів, проте найпопулярніший - micropython, його я і використовуватиму для написання бота. Насправді написати і хостити телеграм бота простіше ніж сайт, ми просто даємо запит до API телеграма і на основі відповіді даємо йому дані для того щоб бот щось відповів. З сайтами інша, складніша історія ip адрес та доменів. Я використовуватиму клас знайдений на гітхабі для цієї задачі, код можна заливати використовуючи Thonny IDE або плагін для PyCharm, я заливатиму на плату розробника esp32 devkit v1, для прикладу керуватимемо вбудованим світлодіодом через команди телеграм боту. В мікроконтролері лежатиме чотири файли:
boot.py в принципі вбудований, його ми не чіпатимемо в цьому проєкті в config.py треба помістити дані про вашу wifi мережу та токен телеграм бота, який вам видасть @BotFather (/newbot і далі по інструкціям) наступним чином: wifi_config = { “ssid”: “your_wifi_name”, “password”: “your_wifi_password”, } utelegram_config = { “token”: “your_bot_token”, } в utelegram.py знаходиться сам клас, а в main.py ми писатимемо основний код: Імпорти: from machine import Pin Зберігаємо пін в змінну led, щоб керувати світлодіодом: led = Pin(2, Pin.OUT) (для моєї плати це другий цифровий пін або ж D2) Підключення до інтернета: sta_if = network.WLAN(network.STA_IF) (на цьому моменті інтерпретатор може зависнути на sta_if.active(True), щоб цього уникнути - підведіть зовнішнє живлення або спробуйте підключити плату в usb3) Далі чекаємо 10 секунд поки встановиться wifi з’єднання: utime.sleep(10) Наступним кроком пишемо дві функції для обробки команд: def reply_on(message): Тепер залишається тільки зареєструвати ці функції і почати слухати, хто що боту пише, за умови що інтернет таки підключено: if sta_if.isconnected(): Готово! Заливаємо файли в підключений по usb мікроконтролер кнопкою save в Thonny IDE або клікаємо правою кнопкою миші по віконцю з іменем файла і обираємо «Flash ***.py» в PyCharm, замість зірочок ім’я вашого python файла, таким ж чином заливаємо config файл та клас utelegram, подаємо живлення в VIN (від 5 до 3.5в) або 3V3(3.3в) та GND і можна писати боту. Після того як бот відповідає led is on, можна спостерігати за результатом. І якщо написати /off, світлодіод погасне. Сьогодні ви побачили як швидко і просто написати свого телеграм бота на мікропітоні і керувати з його допомогою фізичним світом (в нашому випадку - світлодіодом). Пишіть коментарі із зауваженнями, побажаннями та оцінюйте статтю в цілому.
Благодарим Вас за обращение! Ваш отзыв появится после модерации администратором.
Костянтин
13.09.2024 15:00:04
Дякую Вам за статтю
ас/дс
02.03.2024 21:48:28
їмбусік!
Сергій
26.07.2023 11:04:41
Актуально. Дякую.
Ivan Sirko
05.04.2023 13:23:44
Супер!Продовжуйте розвивати українське embedded-ком''юніті
CBoY
14.03.2023 15:55:59
Дуже цікаво і дуже актуально на цей момент)
|