Требования:
- Приложение Telegram
- Google colad (для кода на питоне или вы можете использовать свою собственную IDE)
- Heroku (облачный сервис)
- Adafruit_IO (облачный интерфейс)
Введение
В этом блоге я покажу вам, как можно управлять светом с помощью телеграмм-бота и языка программирования Python.
1️⃣:Для начала нужно настроить бота с помощью приложения телеграмм
- откройте приложение телеграммы и выберите поиск, введите Botfather и выберите его
2. Теперь один раз используйте его, чтобы открыть его, набрав «/ start».
3. Теперь нам нужно назвать bot.so, сначала нам нужно ввести «/ newbot», а затем дать боту желаемое имя, а затем дать ему имя пользователя.
4. На приведенном выше изображении вы можете видеть, что бот был успешно создан, и запишите предоставленный вам ключ API.
2️⃣: Теперь, когда мы создали бота, нам нужно написать код Python для его автоматизации.
▶Прежде чем мы начнем программировать, нам нужно установить некоторые библиотеки
pip install adafruit-io pip install python-telegram-bot
▶Прежде чем мы начнем программировать, нам нужно создать фид и индикатор состояния панели. Создание фида в adafruit-io можно сделать через python, это видно ниже в коде.
▶Сейчас я покажу вам, как создать ленту и индикатор. Прежде всего создайте учетную запись в adafruit-io.
▶ После того, как вы создали учетную запись, вам нужно перейти в раздел каналов и создать ее.
▶Теперь мы создали индикатор состояния на панели инструментов.
▶Теперь нам нужно записать ключ adafruit-io
▶Теперь мы идем за кодом.
импортировать необходимые библиотеки
from Adafruit_IO import Client, Feed, Data from telegram.ext import Updater, CommandHandler, Filters, MessageHandler import requests import os
▶ здесь мы вводим все необходимые ключи adafruit-io и ключ API телеграммы, который мы записали.
#creation the feed(this should be done only once)…..if you want to create the feed automatically from code then run this part of code separately or else you can create #feed = Feed(name='light-bot-feed') #result = aio.create_feed(feed) #adafruit_io user name and active key ADAFRUIT_IO_USERNAME = os.getenv('ADAFRUIT_IO_USERNAME') ADAFRUIT_IO_KEY = os.getenv('ADAFRUIT_IO_KEY') aio = Client('ADAFRUIT_IO_USERNAME','ADAFRUIT_IO_KEY') Telegram_token = os.getenv('Telegram_token')
▶ здесь, в этой части кода, мы определим каждую функцию для каждой команды, которую мы даем боту для выполнения действия. вы можете просто просмотреть комментарии в коде, его очень легко понять.
#this function is used reply when you start the bot def start(bot, update): bot.send_message(chat_id = update.effective_chat.id, text="Welcome!") bot.send_message(chat_id = update.effective_chat.id, text="if you like to turn on the light then type 'Turn on the light' or if you would like to turn off the lights then type 'Turn off the light'") #this function is used reply when we input apart from the requirement def wrong_message(bot, update): bot.send_message(chat_id=update.effective_chat.id, text="Oops, I unable to understand that. Please try again!") #this function is used to send data to adafruit_io feed mentioned def send_data_adafruit(value1): value = Data(value=value1) value_send = aio.create_data('light-bot-feed',value) #function to turn on the light def turn_on_light(bot, update): chat_id = update.message.chat_id bot.send_message(chat_id, text="Turning on the light") bot.send_photo(chat_id, photo='http://scienceblog.cancerresearchuk.org/wp-content/uploads/2015/08/Lightbulb_hero2.jpg') send_data_adafruit(1) #function to turn off the light def turn_off_light(bot, update): chat_id = update.message.chat_id bot.send_message(chat_id, text="Turning off the light") bot.send_photo(chat_id=update.effective_chat.id,photo='https://ak.picdn.net/shutterstock/videos/1027638404/thumb/1.jpg?ip=x480') send_data_adafruit(0) def text_given(bot, update): text = update.message.text if text == 'Start': start(bot,update) elif text == 'Turn on the light': turn_on_light(bot,update) elif text == 'Turn off the light': turn_off_light(bot,update) else: wrong message(bot,update)
▶как только мы закончим с функциональной частью, мы напишем финальную часть кода для вызова этих функций
ud = Updater('Telegram_token') dip = ud.dispatcher dip.add_handler(MessageHandler(Filters.text, text_given)) ud.start_polling() ud.idle()
▶Теперь мы закончили с кодом. Теперь нам нужно развернуть его на облачной платформе Heroku.
Здесь, прежде чем мы развернем его на Heroku, нам нужно написать код Python в GitHub. Необходимые файлы приведены ниже.
Файл Procfile содержит «worker: python имя-файла.py». Вам нужно создать файл без типа файла, ввести строку в этом файле и зафиксировать изменения, файл requirements.txt содержит все библиотеки, которые мы импортировали, кроме встроенных библиотек. .
как только вы закончите с частью GitHub, мы перейдем к части Heroku
3️⃣Создайте учетную запись в Heroku (Heroku — бесплатная платформа облачных сервисов), а затем создайте в ней приложение, показанное ниже.
после создания подключите свою учетную запись GitHub
теперь включите автоматическое развертывание.
▶как только это будет сделано, мы должны активировать dyno (то есть Procfile, который мы создали в GitHub).
после активации динамометра модель будет развернута автоматически, потому что мы уже активировали ее.
Как мы видим здесь, приложение было выпущено, и теперь вы можете открыть телеграмму и пообщаться с ботом (с помощью предопределенных команд, которые мы упомянули).
Вы можете увидеть ответы бота с изображением и текстом, как мы указали.
Это все.
Вы сделали бота для управления светом в Telegram.
Полный код см. на моей странице GitHub, упомянутой ниже.