Raspberry Pi завжди було цікавим та простим для побудови проектів. Його потужна архітектура ARM та операційна система на базі Linux з відкритим кодом допомогли нам дуже швидко перевести наші проекти в Інтернет. У цьому підручнику ми дізнаємося ще один цікавий спосіб обміну даними (файлами / фото / відео / аудіо / текстом) між Raspberry Pi та нашим мобільним телефоном через популярний додаток для чату під назвою Telegram.
Для тих, хто новачок у Telegram, це додаток на основі чату, доступний у магазині ігор для Android (також доступний для Iphone та Windows), дуже схожий на Whatsapp. У нього понад 100 мільйонів завантажень (як 5-10-2017) з магазину ігор, і люди стверджують, що це швидше та функціональніше, ніж Whatsapp (пальці схрещені). Особливістю цієї програми є те, що вони підтримують ботів. Це означає, що цим додатком для смартфонів можуть користуватися не лише люди, а й машини. У нашому випадку машиною буде Raspberry Pi. Після того, як ви навчите Raspberry Pi тому, як діяти як бот, будь-хто (якщо ви зробите це загальнодоступним) може спілкуватися з вашим Raspberry Pi, як спілкуватися в чаті з будь-якою звичайною людиною, і навіть ділитися фотографіями, документами та аудіофайлами. Ви навіть можете навчити його бути своїм особистим помічником, звучить круто, правда? Давайте навчимося будувати aRaspberry pi телеграм бот.
Необхідні матеріали:
- Будь-який Raspberry Pi, підключений до Інтернету
- Мобільний додаток Telegram.
У цьому проекті не задіяно багато обладнання, тому відпочиньте на своєму кріслі разом із Pi та виконайте наведені нижче дії. Якщо ви новачок у Raspberry Pi, дотримуйтесь нашої статті про введення Raspberry Pi та інших посібників з Raspberry Pi.
Крок 1: Встановлення Telegram на мобільний телефон
Першим кроком було б встановити Telegram на свій мобільний телефон. Telegram доступний для Android, IOS і навіть для платформи Windows, тому просто завантажте додаток Telegram. Як і у всіх додатках, буде невелика процедура реєстрації, щоб почати користуватися Telegram, продовжуйте її, поки не дійдете до головного екрана.
Крок 2: Поговоріть з батьком-ботом
Наступним кроком буде прохання батька бота створити нам нового бота. У верхньому правому куті головного екрана буде значок пошуку, клацніть на ньому, щоб знайти ім’я “botfather”. Botfather - це сам по собі бот, він допоможе вам створити нового бота для вас. Клацніть на пуск і виберіть / newbot, як показано на малюнку нижче. Тепер бот запитає кілька деталей, таких як ім'я вашого бота та ім'я користувача бота. Заповніть ці дані і пам’ятайте ім’я користувача, оскільки воно нам знадобиться в майбутньому.
Крок 3: Отримання вашого токена для доступу
Я назвав бота як circuitdigest, а ім'я користувача - як circuitdigestBot. Після цього процесу батько дасть вам токен для доступу. Це як пароль для вашого бота, люди можуть контролювати програму вашого бота, використовуючи цей ключ маркера. Тож бережіть його в безпеці і не діліться ним ні з ким. Отримавши цей ключ лексеми, настав час перейти до Raspberry Pi.
Крок 4: Telepot для встановлення Telegram на Raspberry Pi
Використання Telegram Bot у Raspberry Pi стало можливим завдяки пакету пітонів під назвою Telepot. Нам потрібно встановити цей пакет на Raspberry Pi, використовуючи такі команди на терміналі Lx
sudo apt-get install python-pip sudo pip встановити telepot
Після імпорту Telepot в Raspberry ми можемо використовувати цей пакет у нашій програмі python для спілкування з нашим ботом Telegram.
Крок 5: Програмування вашого Raspberry Pi
Бот, якого ми щойно створили в Telegram, схожий на дитину, він не може нічого робити самостійно, якщо ми не навчимо його, що і як робити. Це навчання можна проводити за допомогою сценарію Raspberry Pi та Python. У цьому підручнику я запрограмував бота виконувати деякі основні дії, такі як надсилання повідомлення, фото, аудіо та документа. Отже, коли ви вимовляєте певну команду, вона відповість конкретною дією, і команда та дія зазначені в таблиці нижче
Команда від Telegram |
Відповідь Raspberry Pi |
/Привіт |
Відповідає рядком “Привіт! CircuitDigest ” |
/ час |
Відповідає поточному часу |
/ логотип |
Відповіді із зображенням (логотип CircuitDigest) |
/ файл |
Відповідає з файлом (що містить поточну програму) |
/ аудіо |
Відповідає з демонстраційним звуковим файлом |
Повна програма, щоб зробити вищевказані дії даються в нижній частині цієї сторінки. Але трохи нижче, я пояснив важливі фрагменти програми, щоб допомогти вам зрозуміти, як працює програма.
Першим кроком є імпорт усіх бібліотек, тут нам, очевидно, знадобиться бібліотека телепорту для використання бота Telegram. Ми також використовуємо бібліотеку часу, timedate, щоб прочитати поточний час для Raspberry pi. Потім ми створюємо об’єкт, в якому зберігається значення.
час імпорту, дата-час імпорт телепоту з telepot.loop імпорт MessageLoop зараз = datetime.datetime.now ()
Наступним кроком є створення функції для здійснення дій на основі вхідних команд із програми Telegram на мобільному. Тут ім'я функції - дія. Саме всередині цієї функції бот оживає. Наш бот не може самостійно ініціювати розмову, він може відповісти, лише якщо ми щось запитуємо. Тож кожного разу, коли ми щось запитуємо, буде ідентифікатор чату. Цей ідентифікатор чату є чимось схожим на адресу, лише використовуючи цей ідентифікатор чату, бот може нам відповісти. Отже, перший крок - прочитати ідентифікатор чату та повідомлення, яке він намагається сказати нам. Ми також друкуємо отримане повідомлення з метою налагодження.
def action (msg): chat_id = msg command = msg print 'Отримано:% s' команда%
Далі всередині функції ми порівнюємо цю команду із заздалегідь визначеним текстом і виконуємо конкретні завдання. Ця перша команда буде / hi, на яку ми відповідаємо “Привіт! CircuitDigest ”
якщо команда == '/ hi': telegram_bot.sendMessage (chat_id, str ("Привіт! CircuitDigest"))
Наступною командою буде / time , на яку ми відповідаємо поточний час. Зараз ми вже маємо час і дату, тут просто розділіть їх залежно від години та хвилин і додайте як функцію str .
elif command == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Наступною командою буде / logo , до якої бот отримає зображення з URL-адреси та надішле його нам. Зображення може бути надіслано або з URL-адреси, або з жорсткого диска. Тут я щойно використав URL-адресу, яка відображає логотип CircuitDigest.
elif command == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Наступною командою буде / file , яка надішле файл Aisha.py з жорсткого диска. Ви можете надіслати будь-який бажаний файл, змінивши адресу каталогу
elif command == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Останньою командою буде / audio . Це може надіслати будь-який mp3-файл із жорсткого диска, я щойно використав тут аудіофайл із назвою test.mp3
elif command == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Гаразд, зараз наступає найважливіший крок, саме тут ми надаємо доступ нашого бота Telegram до сценарію Python. Тут ми називаємо з бота, як telegram_bot і привласнити йому маркер адреси, який був даним нашої botfather на кроці 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.