Требования:

  1. Приложение Telegram
  2. Google colad (для кода на питоне или вы можете использовать свою собственную IDE)
  3. Heroku (облачный сервис)
  4. Adafruit_IO (облачный интерфейс)

Введение

В этом блоге я покажу вам, как можно управлять светом с помощью телеграмм-бота и языка программирования Python.

1️⃣:Для начала нужно настроить бота с помощью приложения телеграмм

  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.

https://io.adafruit.com

▶ После того, как вы создали учетную запись, вам нужно перейти в раздел каналов и создать ее.

▶Теперь мы создали индикатор состояния на панели инструментов.

▶Теперь нам нужно записать ключ 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, упомянутой ниже.