Raspberry Pi bolo vždy zábavné a ľahké na vytváranie projektov. Jeho výkonná architektúra ARM a otvorený operačný systém založený na systéme Linux nám veľmi pomohli dostať naše projekty online v krátkom čase. V tomto tutoriáli sa dozvieme ďalší zaujímavý spôsob zdieľania údajov (súbory / fotografie / videá / audio / text /) medzi Raspberry Pi a našim mobilným telefónom prostredníctvom populárnej chatovacej aplikácie s názvom Telegram.
Pre tých, ktorí s Telegramom začínajú, je to aplikácia založená na čete, ktorá je k dispozícii v obchode Play pre Android (k dispozícii aj pre iPhone a Windows) a je veľmi podobná aplikácii Whatsapp. Má viac ako 100 miliónov stiahnutí (k 5. 10. 2017) v obchode Play a ľudia tvrdia, že je rýchlejší a funkčnejší ako Whatsapp (palce). Jednou zo zvláštností tejto aplikácie je, že podporujú roboty. To znamená, že túto aplikáciu pre inteligentné telefóny môžu používať nielen ľudia, ale aj stroje. V našom prípade to bude stroj Raspberry Pi. Akonáhle vycvičíte Raspberry Pi v tom, ako sa správať ako robot, môže ktokoľvek (ak ho zverejníte) chatovať so svojím Raspberry Pi ako chatovanie s hociktorou normálnou osobou a dokonca zdieľať fotografie, obrázky, dokumenty a zvukové súbory. Môžete ho dokonca trénovať ako svojho osobného asistenta, znie to dobre? Naučme sa, ako postaviťTelegramový robot maliny pi.
Potrebné materiály:
- Akékoľvek zariadenie Raspberry Pi pripojené k internetu
- Mobilná bežiaca telegramová aplikácia.
Tento projekt nezahŕňa veľa hardvéru, takže si odpočiňte na stoličke so svojím Pi a postupujte podľa krokov uvedených nižšie. Ak ste na Raspberry Pi nováčikom, postupujte podľa nášho úvodného článku o Raspberry Pi a ďalších návodov na Raspberry Pi.
Krok 1: Inštalácia telegramu do mobilu
Prvým krokom by bola inštalácia Telegramu na váš mobil. Telegram je k dispozícii pre Android, IOS a dokonca aj pre platformu Windows, takže si jednoducho stiahnite aplikáciu Telegram. Rovnako ako všetky aplikácie, aj tu bude malý postup registrácie, aby ste mohli začať používať telegram, pokračujte v ňom, kým sa nedostanete na domovskú obrazovku.
Krok 2: Porozprávajte sa s Bot Father
Ďalším krokom by bolo požiadať Bota Otca, aby nám vytvoril nového Bota. V pravom hornom rohu domovskej obrazovky bude ikona vyhľadávania. Kliknutím na ňu vyhľadáte meno „botfather“. Botfather je Bot sám o sebe, bude vás viesť k vytvoreniu nového robota pre vás. Kliknite na štart a vyberte / newbot, ako je to znázornené na obrázku nižšie. Teraz robot požiada o niekoľko podrobností, ako je meno vášho robota a meno používateľa robota. Vyplňte tieto podrobnosti a nezabudnite na používateľské meno, ktoré v budúcnosti budeme potrebovať.
Krok 3: Získanie vášho tokenu pre prístup
Pomenoval som bot ako circuitdigest a užívateľské meno ako circuitdigestBot. Po tomto procese vám botfather dá Token na prístup. Je to ako heslo vášho robota, ľudia môžu pomocou tohto tokenového kľúča ovládať programovanie vášho robota. Udržujte to preto v bezpečí a nezdieľajte ich s nikým. Po získaní tohto kľúča kľúča je čas prejsť na Raspberry Pi.
Krok 4: Telepot na inštaláciu Telegramu na Raspberry Pi
Používanie Telegram Bot na Raspberry Pi umožňuje balík python s názvom Telepot. Tento balíček musíme nainštalovať na Raspberry Pi pomocou nasledujúcich príkazov na termináli Lx
sudo apt-get nainštalovať python-pip sudo pip install telepot
Akonáhle je Telepot importovaný do Raspberry, môžeme tento balíček použiť v našom pythonovom programe na komunikáciu s naším Telegram Bot.
Krok 5: Programovanie vášho Raspberry Pi
Robot, ktorý sme práve vytvorili na Telegrame, je rovnako ako dieťa, sám nemôže nič robiť, pokiaľ ho nenaučíme, čo a ako robiť. Túto výučbu je možné vykonať pomocou skriptu Raspberry Pi a Python. V tomto tutoriáli som naprogramoval robota tak, aby vykonával základné úkony, ako je posielanie správ, fotografií, zvukov a dokumentov. Takže keď poviete konkrétny príkaz, bude reagovať konkrétnou akciou, ktorá je uvedená v nasledujúcej tabuľke
Príkaz z telegramu |
Odpoveď: Raspberry Pi |
/Ahoj |
Odpovede s reťazcom „Ahoj! CircuitDigest ” |
/ čas |
Odpovede s aktuálnym časom |
/ logo |
Odpovede s obrázkom (logo CircuitDigest) |
/ spis |
Odpovede so súborom (ktorý obsahuje aktuálny program) |
/ audio |
Odpovede s ukážkovým zvukovým súborom |
Kompletný program, aby sa vyššie uvedené činnosti je uvedený na konci tejto stránky. Ale nižšie uvádzam dôležité úryvky v programe, ktoré vám pomôžu pochopiť, ako program funguje.
Prvým krokom je import všetkých knižníc, tu samozrejme budeme potrebovať teleportovú knižnicu na použitie robota Telegram. Taktiež využívame časovo-časovo obmedzenú knižnicu na čítanie aktuálneho času pre Raspberry pi. Potom vytvoríme objekt, v ktorom je uložená hodnota.
import čas, datetime import telepot z telepot.loop import MessageLoop now = datetime.datetime.now ()
Ďalším krokom je vytvorenie funkcie na vykonávanie akcií na základe prichádzajúcich príkazov z aplikácie Telegram v mobile. Tu je názov funkcie akcia. V tejto funkcii robot ožíva. Náš robot nemôže sám zahájiť konverzáciu, môže odpovedať, iba ak sa na niečo spýtame. Takže zakaždým, keď sa niečo spýtame, bude existovať ID chatu. Toto ID chatu je niečo podobné ako adresa, iba pomocou tohto chatu nám môže robot odpovedať. Prvým krokom je teda prečítanie ID chatu a správy, ktorú sa nám snaží povedať. Prijatú správu tiež vytlačíme z dôvodu ladenia.
def action (msg): chat_id = msg command = msg print 'Prijaté:% s'% príkaz
Ďalej vo funkcii porovnávame tento príkaz s preddefinovaným textom a vykonávame konkrétne úlohy. Tento prvý príkaz bude / ahoj, na čo odpovieme „Ahoj! CircuitDigest ”
if command == '/ ahoj': telegram_bot.sendMessage (chat_id, str ("Ahoj! CircuitDigest"))
Ďalším príkazom bude / čas , na ktorý odpovieme na aktuálny čas. Teraz už máme čas a dátum, tu ich jednoducho rozdelíme na hodinu a minútu a pridáme ako funkciu str .
príkaz elif == '/ čas': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Ďalším príkazom bude / logo , ktorému robot načíta obrázok z adresy URL a pošle nám ho. Obrázok je možné odoslať buď z adresy URL, alebo z pevného disku. Tu som práve použil adresu URL, ktorá zobrazuje logo CircuitDigest.
príkaz elif == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Ďalším príkazom bude / file , ktorý odošle z pevného disku súbor s názvom Aisha.py . Môžete poslať akýkoľvek súbor, ktorý chcete zmeniť adresou
príkaz elif == '/ súbor': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Posledný príkaz bude / audio . To môže poslať akýkoľvek súbor mp3 z pevného disku, práve som tu použil ako ukážku zvukový súbor s názvom test.mp3
príkaz elif == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Dobre, teraz prichádza najdôležitejší krok, a práve tu poskytujeme prístup nášho telegramového robota k skriptu Python. Tu sme robot pomenovali ako telegram_bot a priradili sme mu adresu tokenu, ktorú uviedol náš botfather v kroku 3. V riadku nižšie som kvôli ochrane osobných údajov odstránil posledných pár číslic svojho tokenu. Tiež používame print get me na zobrazenie detailov robota na obrazovke shellu, čo nám pomôže všimnúť si, že veci fungujú.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Dúfame, že ste pochopili, ako program funguje, poďme teraz k ďalšiemu kroku.
Krok 6: Spustenie programu na vašom Raspberry Pi
Ako už bolo povedané, kompletný program je uvedený na konci tejto stránky. Môžete si ho tiež stiahnuť tu. Po otvorení kódu nezabudnite zmeniť adresu tokenu programu na svoju adresu tokenu.
Teraz spustite kód pythonu a takto by ste mali vidieť podrobnosti svojho robota v okne shellu
Tu je moje užívateľské meno robota circuitdigestBot. Ak tu dostanete meno svojho robota, znamená to, že je všetko v poriadku.
Akonáhle uvidíte „ funkčné “, znamená to, že robot je pripravený na akciu a teraz môže odpovedať na vaše príkazy.
Krok 7: Užívanie výstupu
Teraz zostáva len skontrolovať, ako dobre váš robot reaguje na váš program. Vyhľadajte svoje meno robota, v mojom prípade je to „circuitdigestBot“. Hľadajte používateľské meno a nie alebo meno robota, vaše používateľské meno by malo končiť robotom.
Po otvorení robota kliknite na štart a zadajte akékoľvek príkazy ako / ahoj, / čas, / súbor, / logo alebo / audio a mali by ste na ne odpovedať.
Pomocou shell skriptu môžete zistiť, na čo váš skript momentálne reaguje. Celú prácu nájdete na videu na konci tejto stránky.
Krok 8: Dajte mi päťku
Dúfam, že ste pochopili návod a teraz budete môcť vytvoriť tohto telegramového robota Raspberry pi a komunikovať s Raspberry Pi pomocou aplikácie Telegram. Bohužiaľ! Ak máte akékoľvek problémy, dajte mi vedieť v sekcii komentárov a pokúsim sa vám ozvať. Dajte mi tiež vedieť, ako sa vám tento projekt páčil alebo čo by ste chceli, aby som ich pomocou nasledujúcich pripravil.
Tiež v našom ďalšom návode. Tento vzhľad upravíme tak, že zmeníme spôsob odosielania príkazov a niečo viac súvisiace s hardvérom na Raspberry Pi.