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: Говорете с Bot Father
Следващата стъпка ще бъде да поискаме от бащата-бот да ни създаде нов бот. В горния десен ъгъл на началния екран ще има икона за търсене, щракнете върху нея, за да потърсите името „botfather“. Botfather е бот сам по себе си, той ще ви насочи да създадете нов бот за вас. Щракнете върху старт и изберете / newbot, както е показано на снимката по-долу. Сега ботът ще поиска няколко подробности като името на вашия бот и потребителското име на бота. Попълнете тези подробности и запомнете потребителското име, защото ще ни е необходимо в бъдеще.
Стъпка 3: Получаване на вашия токен за достъп
Назовах bot като 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 инсталиране на телепот
След като Telepot бъде импортиран в Raspberry, можем да използваме този пакет в нашата програма за python, за да комуникираме с нашия Telegram Bot.
Стъпка 5: Програмиране на вашия Raspberry Pi
Ботът, който току-що създадохме в Telegram, е точно като бебе, той не може да прави нищо сам, освен ако не го научим какво и как да прави нещата. Това обучение може да бъде направено чрез Raspberry Pi и Python скрипт. В този урок съм програмирал бота да изпълнява някои основни действия като изпращане на съобщение, снимка, аудио и документ. Така че, когато кажете определена команда, тя ще отговори с определено действие, като командата и действието са изброени в таблицата по-долу
Команда от Telegram |
Отговор от Raspberry Pi |
/ здравей |
Отговаря със низ „Здравей! CircuitDigest ” |
/ време |
Отговори с текущото време |
/ лого |
Отговори с изображение (лого на CircuitDigest) |
/ файл |
Отговори с файл (който съдържа текущата програма) |
/ аудио |
Отговори с демонстрационен аудио файл |
В пълна програма да се направи по-горе действия се дава в долната част на тази страница. Но точно по-долу обясних важните фрагменти в програмата, за да ви помогна да разберете как работи програмата.
Първата стъпка е да импортирате всички библиотеки, тук очевидно ще ни трябва библиотека за телепортиране, за да използваме бота на Telegram. Също така използваме библиотеката за време, timedate, за да четем текущото време за Raspberry pi. След това създаваме обект, в който стойността се съхранява.
време за импортиране, дата и час импортиране на телепот от telepot.loop импорт MessageLoop сега = datetime.datetime.now ()
Следващата стъпка е да създадете функция за предприемане на действия въз основа на входящи команди от приложението Telegram на Mobile. Тук името на функцията е действие. Вътре в тази функция ботът оживява. Нашият бот не може сам да инициира разговор, той може да отговори само ако попитаме нещо. Така че всеки път, когато попитаме нещо, ще има идентификатор за чат. Този идентификатор на чат е нещо подобно на адрес, само с помощта на този идентификатор на чат бот може да ни отговори. Така че първата стъпка е да прочетете идентификатора на чата и съобщението, което се опитва да ни каже. Също така отпечатваме полученото съобщение с цел отстраняване на грешки.
def действие (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'))
Последната команда ще бъде / аудио . Това може да изпрати всеки mp3 файл от твърдия диск, току-що използвах аудио файл, наречен test.mp3 като демонстрация тук
elif command == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Добре, сега идва най -важната стъпка, тук даваме достъп на нашия Telegram бот до скрипта на Python. Тук ние наричаме бот като telegram_bot и му присвояваме адреса на маркера, който е даден от нашия баща в стъпка 3. В реда по-долу съм премахнал последните няколко цифри от моя токен като въпрос на поверителност. Също така използваме отпечатването „Накарай ме“, за да покажем подробностите за Bot на екрана на черупката, това ще ни помогне да забележим, че нещата работят.
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.