Raspberry Pi bylo vždy zábavné a snadné stavět projekty. Jeho výkonná architektura ARM a open-source operační systém založený na Linuxu nám hodně pomohl dostat naše projekty online v žádném okamžiku. V tomto tutoriálu se naučíme další zajímavý způsob sdílení dat (soubory / fotografie / videa / audio / text) mezi Raspberry Pi a naším mobilním telefonem prostřednictvím populární chatovací aplikace s názvem Telegram.
Pro ty, kteří s Telegramem začínají, je to aplikace založená na chatu dostupná v obchodě Play pro Android (k dispozici i pro iPhone a Windows), která je velmi podobná aplikaci Whatsapp. Má více než 100 milionů stažení (k 5. 10. 2017) v obchodě Play a lidé tvrdí, že je rychlejší a funkčnější než Whatsapp (palce). Jednou ze zvláštností této aplikace je, že podporují roboty. To znamená, že tuto aplikaci pro chytré telefony mohou používat nejen lidé, ale také stroje. V našem případě bude stroj Raspberry Pi. Jakmile vycvičíte Raspberry Pi v tom, jak se chovat jako robot, kdokoli (pokud jej zveřejníte) může chatovat s vaším Raspberry Pi jako chatování s jakoukoli normální osobou a dokonce sdílet fotografie, obrázky, dokumenty a zvukové soubory. Můžete ho dokonce trénovat jako svého osobního asistenta, zní to skvěle, že? Naučme se, jak postavitTelegramový robot s malinovou pí.
Potřebné materiály:
- Jakékoli Raspberry Pi připojené k internetu
- Mobilní běžící telegramová aplikace.
V tomto projektu není mnoho hardwaru, takže si odpočiňte na židli s Pi a postupujte podle následujících kroků. Pokud jste na Raspberry Pi noví, postupujte podle našeho článku Úvod o Raspberry Pi a dalších výukových programů Raspberry Pi.
Krok 1: Instalace telegramu na mobil
Prvním krokem by byla instalace Telegramu do mobilu. Telegram je k dispozici pro Android, IOS a dokonce i pro platformu Windows, takže si jednoduše stáhněte aplikaci Telegram. Stejně jako u všech aplikací bude i zde malý postup přihlášení k zahájení používání telegramu, pokračujte v něm, dokud se nedostanete na domovskou obrazovku.
Krok 2: Promluvte si s Bot Father
Dalším krokem by bylo požádat Bot Bota, aby nám vytvořil nového Bot. V pravém horním rohu domovské obrazovky bude ikona vyhledávání, kliknutím na ni vyhledejte název „botfather“. Botfather je Bot sám o sobě, provede vás vytvořením nového robota pro vás. Klikněte na start a vyberte / newbot, jak je znázorněno na obrázku níže. Nyní robot požádá o několik podrobností, jako je název vašeho robota a uživatelské jméno robota. Vyplňte tyto podrobnosti a zapamatujte si uživatelské jméno, které budeme v budoucnu potřebovat.
Krok 3: Získání tokenu pro přístup
Jmenoval jsem bota jako circuitdigest a uživatelské jméno jako circuitdigestBot. Po tomto procesu vám botfather dá Token pro přístup. Je to jako heslo pro vašeho robota, lidé mohou pomocí tohoto tokenového klíče ovládat programování vašeho robota. Udržujte je tedy v bezpečí a nesdílejte je s nikým. Jakmile obdržíte tento klíč tokenu, je čas přejít na Raspberry Pi.
Krok 4: Telepot pro instalaci Telegramu na Raspberry Pi
Používání Telegram Bot na Raspberry Pi umožňuje balíček pythonů s názvem Telepot. Tento balíček musíme nainstalovat na Raspberry Pi pomocí následujících příkazů na terminálu Lx
sudo apt-get install python-pip sudo pip install telepot
Jakmile je Telepot importován do Raspberry, můžeme tento balíček použít v našem pythonovém programu ke komunikaci s naším Telegram Bot.
Krok 5: Programování Raspberry Pi
Bot, který jsme právě vytvořili na Telegramu, je jako dítě, nemůže dělat nic sám, pokud ho nenaučíme, co a jak dělat. Tuto výuku lze provést pomocí skriptu Raspberry Pi a Python. V tomto tutoriálu jsem naprogramoval robota, aby provedl některé základní akce, jako je odeslání zprávy, fotografie, zvuku a dokumentu. Takže když řeknete konkrétní příkaz, bude reagovat konkrétní akcí, příkaz a akce jsou uvedeny v tabulce níže
Příkaz z telegramu |
Odpověď od Raspberry Pi |
/Ahoj |
Odpovědi s řetězcem „Ahoj! CircuitDigest “ |
/čas |
Odpovědi s aktuálním časem |
/ logo |
Odpovědi s obrázkem (logo CircuitDigest) |
/soubor |
Odpovědi se souborem (který obsahuje aktuální program) |
/Zvuk |
Odpovědi s ukázkovým zvukovým souborem |
Kompletní program, aby se výše uvedené činnosti je uveden na konci této stránky. Ale hned níže jsem vysvětlil důležité úryvky v programu, které vám pomohou pochopit, jak program funguje.
Prvním krokem je import všech knihoven, zde samozřejmě budeme potřebovat teleportovou knihovnu k použití telegramového robota. Ke čtení aktuálního času pro Raspberry pi využíváme také knihovnu času a času. Poté vytvoříme objekt, ve kterém je uložena hodnota.
import čas, datetime import telepot z telepot.loop import MessageLoop now = datetime.datetime.now ()
Dalším krokem je vytvoření funkce pro provádění akcí na základě příchozích příkazů z aplikace Telegram v mobilu. Zde je název funkce akce. Právě uvnitř této funkce robot ožívá. Náš robot nemůže sám zahájit konverzaci, může odpovědět, pouze pokud se na něco zeptáme. Takže pokaždé, když se na něco zeptáme, bude ID chatu. Toto ID chatu je něco podobného adrese, pouze pomocí tohoto ID chatu nám může robot odpovědět zpět. Prvním krokem je tedy přečíst ID chatu a zprávu, kterou se nám snaží říci. Přijatou zprávu také vytiskneme pro účely ladění.
def action (msg): chat_id = msg command = msg print 'Received:% s'% command
Dále ve funkci porovnáme tento příkaz s předdefinovaným textem a provedeme konkrétní úkoly. Tento první příkaz bude / hi, na který odpovíme „Ahoj! CircuitDigest “
if command == '/ hi': telegram_bot.sendMessage (chat_id, str ("Ahoj! CircuitDigest"))
Další příkaz bude / time , na který odpovíme na aktuální čas. Čas a datum již nyní máme, zde jej jednoduše rozdělíme na hodinu a minutu a přidáme jej pomocí funkce str .
elif command == '/ time': telegram_bot.sendMessage (chat_id, str (now.hour) + str (":") + str (now.minute))
Dalším příkazem bude / logo , na které robot načte obrázek z adresy URL a pošle nám jej. Obrázek lze odeslat buď z adresy URL, nebo z pevného disku. Zde jsem právě použil adresu URL, která zobrazuje logo CircuitDigest.
elif command == '/ logo': telegram_bot.sendPhoto (chat_id, photo = "https://i.pinimg.com/avatars/circuitdigest_1464122100_280.jpg")
Dalším příkazem bude / file , který z pevného disku odešle soubor s názvem Aisha.py . Můžete odeslat libovolný soubor, který chcete, změnou adresy adresáře
elif command == '/ file': telegram_bot.sendDocument (chat_id, document = open ('/ home / pi / Aisha.py'))
Posledním příkazem bude / audio . To může poslat jakýkoli soubor mp3 z pevného disku, právě jsem zde použil jako ukázku zvukový soubor s názvem test.mp3
elif command == '/ audio': telegram_bot.sendAudio (chat_id, audio = open ('/ home / pi / test.mp3'))
Dobře, nyní přichází nejdůležitější krok, a to je místo, kde poskytujeme přístup našeho telegramového robota ke skriptu Pythonu. Zde pojmenujeme robota jako telegram_bot a přiřadíme mu adresu tokenu, kterou nám dal náš botfather v kroku 3. V řádku níže jsem odstranil několik posledních číslic svého tokenu z důvodu ochrany soukromí. Také používáme print get me k zobrazení podrobností robota na obrazovce shellu, což nám pomůže všimnout si, že věci fungují.
telegram_bot = telepot.Bot ('468382312: AAFhURMxpVlMWEdFzbIQLszBPFEUpXXXXXX') print (telegram_bot.getMe ())
Doufám, že jste pochopili, jak program funguje, nyní přejdeme k dalšímu kroku.
Krok 6: Spuštění programu na vašem Raspberry Pi
Jak již bylo řečeno, kompletní program je uveden na konci této stránky, můžete si jej také stáhnout zde. Po otevření kódu nezapomeňte změnit adresu tokenu programu na adresu tokenu.
Nyní spusťte kód pythonu a měli byste vidět podrobnosti svého robota v okně shellu, jako je tento
Zde je moje uživatelské jméno robota circuitdigestBot. Pokud zde najdete své jméno pro roboty, znamená to, že je vše v pořádku.
Jakmile uvidíte „ spuštěno “, znamená to, že robot je připraven k akci a nyní může odpovídat na vaše příkazy.
Krok 7: Užívání výstupu
Nyní zbývá jen zkontrolovat, jak dobře váš robot reaguje na váš program. Vyhledejte své jméno robota, v mém případě je to „circuitdigestBot“. Hledejte uživatelské jméno a ne nebo jméno robota, vaše uživatelské jméno by mělo končit robotem.
Jakmile otevřete svého robota, klikněte na start a zadejte všechny příkazy jako / hi, / time, / file, / logo nebo / audio a měli byste odpovídajícím způsobem odpovědět.
Pomocí skriptu shellu můžete zjistit, na co váš skript aktuálně reaguje. Kompletní práci najdete na videu na konci této stránky.
Krok 8: Dejte mi High Five
Doufám, že jste pochopili výukový program a nyní budete moci vytvořit tento robot telegramu Raspberry pi a komunikovat s Raspberry Pi pomocí aplikace Telegram. Běda! Pokud máte nějaké problémy, dejte mi vědět prostřednictvím sekce komentářů a já se pokusím dostat zpět. Také mi dejte vědět, jak se vám tento projekt líbil, nebo co byste chtěli, abych pomocí tohoto projektu vytvořil v nadcházejících projektech.
Také v našem dalším výukovém programu. Tento vzhled upravíme změnou způsobu, jakým posíláme příkazy, a něčím, co více souvisí s hardwarem na Raspberry Pi.