

Требования:
- Приложение 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, упомянутой ниже.