Raspberry Pi всегда был забавным и легким в создании проектов. Его мощная архитектура ARM и операционная система на базе Linux с открытым исходным кодом очень помогли нам в кратчайшие сроки реализовать наши проекты. В этом уроке мы узнаем еще один интересный способ обмена данными (файлами / фотографиями / видео / аудио / текстом) между Raspberry Pi и нашим мобильным телефоном через популярное приложение чата под названием Telegram.
Для тех, кто плохо знаком с Telegram, это приложение на основе чата, доступное в игровом магазине для Android (также доступное для Iphone и Windows), которое очень похоже на Whatsapp. У него более 100 миллионов загрузок (по состоянию на 5-10-2017) в игровом магазине, и люди утверждают, что он быстрее и функциональнее, чем Whatsapp (скрестив пальцы). Одна из особенностей этого приложения - поддержка ботов. Это означает, что это приложение для смартфона может использоваться не только людьми, но и машиной. В нашем случае это будет Raspberry Pi. После того, как вы научите Raspberry Pi действовать в качестве бота, любой (если вы сделаете это общедоступным) сможет общаться с вашим Raspberry Pi, как в чате с любым нормальным человеком, и даже делиться фотографиями, документами и аудиофайлами. Вы даже можете обучить его быть вашим личным помощником, звучит круто, правда? Давайте узнаем, как построитьТелеграмм-бот Raspberry Pi.
Необходимые материалы:
- Любой Raspberry Pi, подключенный к Интернету
- Мобильное приложение Telegram.
В этом проекте не так много оборудования, поэтому расслабьтесь на стуле со своим Pi и выполните следующие шаги. Если вы новичок в Raspberry Pi, следуйте нашей статье Введение в Raspberry Pi и другим учебным пособиям по Raspberry Pi.
Шаг 1. Установка Telegram на свой мобильный
Первым шагом будет установка Telegram на ваш мобильный телефон. Telegram доступен для Android, IOS и даже для платформы Windows, так что просто скачайте приложение Telegram. Как и во всех приложениях, будет небольшая процедура регистрации, чтобы начать использовать Telegram, продолжайте ее, пока не дойдете до главного экрана.
Шаг 2: поговорите с отцом бота
Следующим шагом будет запрос от отца бота создать нам нового бота. В правом верхнем углу главного экрана будет значок поиска, щелкните по нему, чтобы найти имя «отец-бот». Botfather - это сам по себе бот, он поможет вам создать для вас нового бота. Нажмите на начало и выберите / newbot, как показано на рисунке ниже. Теперь бот запросит некоторые детали, такие как имя вашего бота и имя пользователя бота. Заполните эти данные и запомните имя пользователя, так как оно нам понадобится в будущем.
Шаг 3. Получение токена для доступа
Я назвал бота circuitdigest, а имя пользователя - circuitdigestBot. После этого процесса бот-отец даст вам токен для доступа. Это похоже на пароль для вашего бота, люди могут управлять программой вашего бота с помощью этого токен-ключа. Так что храните это в безопасности и никому не рассказывайте. После того, как вы получили этот токен-ключ, пора переходить к Raspberry Pi.
Шаг 4: Telepot для установки Telegram на Raspberry Pi
Использование Telegram Bot в Raspberry Pi стало возможным благодаря пакету Python под названием Telepot. Нам нужно установить этот пакет на Raspberry Pi, используя следующие команды на терминале Lx
sudo apt-get install python-pip sudo pip install telepot
После импорта Telepot в Raspberry мы можем использовать этот пакет в нашей программе Python для связи с нашим Telegram Bot.
Шаг 5: Программирование вашего Raspberry Pi
Бот, которого мы только что создали в Telegram, похож на ребенка: он ничего не может делать сам по себе, если мы не научим его, что и как делать. Это обучение может быть выполнено через скрипт Raspberry Pi и Python. В этом руководстве я запрограммировал бота на выполнение некоторых основных действий, таких как отправка сообщения, фото, аудио и документа. Поэтому, когда вы произносите определенную команду, она ответит определенным действием, команда и действие перечислены в таблице ниже.
Команда из Telegram |
Ответ Raspberry Pi |
/Привет |
Отвечает строкой «Привет! CircuitDigest » |
/время |
Ответы с текущим временем |
/ логотип |
Ответы с изображением (логотип CircuitDigest) |
/файл |
Отвечает файлом (содержащим текущую программу) |
/ audio |
Ответы демонстрационным аудиофайлом |
Полная программа, чтобы сделать вышеуказанные действия даются в нижней части этой страницы. Но чуть ниже я объяснил важные фрагменты программы, чтобы помочь вам понять, как она работает.
Первый шаг - импортировать все библиотеки, здесь нам явно понадобится библиотека телепорта для использования бота Telegram. Мы также используем библиотеку time, timedate для чтения текущего времени для Raspberry pi. Затем мы создаем объект, в котором хранится значение.
время импорта, дата и время импортировать телепот из telepot.loop import MessageLoop now = datetime.datetime.now ()
Следующим шагом является создание функции для выполнения действий на основе входящих команд из приложения Telegram на мобильном устройстве. Здесь имя функции - действие. Именно внутри этой функции оживает бот. Наш бот не может инициировать разговор сам по себе, он может только ответить, если мы что-то спросим. Поэтому каждый раз, когда мы что-то спрашиваем, будет отображаться идентификатор чата. Этот идентификатор чата чем-то похож на адрес, только используя этот идентификатор чата, бот может ответить нам. Итак, первый шаг - прочитать идентификатор чата и сообщение, которое он пытается нам сказать. Также распечатываем полученное сообщение для отладки.
def action (msg): chat_id = msg command = msg print 'Получено:% s'% command
Далее внутри функции мы сравниваем эту команду с заранее заданным текстом и выполняем определенные задачи. Первой командой будет / hi, на которую мы ответим «Привет! CircuitDigest »
если команда == '/ hi': telegram_bot.sendMessage (chat_id, str ("Привет! CircuitDigest"))
Следующей командой будет / time , на которую мы ответим текущее время. У нас уже есть время и дата, здесь просто разделите их по часам и минутам и добавьте их, используя функцию str .
команда elif == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Следующей командой будет / logo , по которой бот получит изображение с URL-адреса и отправит его нам. Изображение может быть отправлено либо с URL-адреса, либо с жесткого диска. Здесь я только что использовал URL-адрес, который отображает логотип CircuitDigest.
команда elif == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Следующей командой будет / file , которая отправит с жесткого диска файл с именем Aisha.py . Вы можете отправить любой файл, который хотите, изменив адрес каталога.
команда elif == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Последней командой будет / audio . Это может отправить любой mp3-файл с жесткого диска, я только что использовал аудиофайл с именем test.mp3 в качестве демонстрации здесь
команда elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Хорошо, теперь наступает самый важный шаг, здесь мы предоставляем доступ нашему боту Telegram скрипту Python. Здесь мы называем бота telegram_bot и назначаем ему адрес токена, который был предоставлен нашим отцом-ботом на шаге 3. В строке ниже я удалил несколько последних цифр своего токена из соображений конфиденциальности. Мы также используем команду print get me для отображения деталей бота на экране оболочки, это поможет нам заметить, что что-то работает.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Надеюсь, вы поняли, как работает программа, теперь перейдем к следующему шагу.
Шаг 6: Запуск программы на Raspberry Pi
Как было сказано ранее, полная программа приведена в конце этой страницы, вы также можете скачать ее отсюда. После открытия кода убедитесь, что вы изменили адрес токена программы на свой адрес токена.
Теперь запустите код Python, и вы должны увидеть детали своего бота в окне оболочки, как это
Здесь мое имя пользователя бота - circuitdigestBot. Если вы укажете здесь имя своего бота, значит, все в порядке.
Когда вы видите « готово и работает », это означает, что ваш бот готов к действию и теперь может отвечать на ваши команды.
Шаг 7. Наслаждение результатом
Теперь осталось только проверить, насколько хорошо ваш бот отвечает за вашу программу. Найдите имя своего бота, в моем случае это «circuitdigestBot». Ищите имя пользователя, а не имя бота, ваше имя пользователя должно заканчиваться на бота.
Как только вы откроете своего бота, нажмите «Пуск» и введите любые команды, такие как / hi, / time, / file, / logo или / audio, и вы получите соответствующий ответ.
Вы можете использовать сценарий оболочки, чтобы увидеть, на что в данный момент отвечает ваш сценарий. Полную версию работы можно найти в видео, приведенном в конце этой страницы.
Шаг 8: Дайте мне пять
Надеюсь, вы поняли руководство и теперь сможете создать этого телеграмм-бота Raspberry Pi и общаться с Raspberry Pi с помощью приложения Telegram. Увы! Если у вас возникнут проблемы, дайте мне знать в разделе комментариев, и я постараюсь ответить вам. Кроме того, дайте мне знать, как вам понравился этот проект или что вы бы хотели, чтобы я использовал его в будущих проектах.
Также в нашем следующем уроке. Мы сделаем это круче, изменив способ отправки команд и кое-что, более связанное с оборудованием на Raspberry Pi.