- Potřebné materiály:
- Kruhový diagram:
- Raspberry Python Program:
- Ovládání LED pomocí Raspberry Pi a Telegram robota:
Telegram je optimální aplikace pro kombinaci s Raspberry Pi pro všechny naše účely mobilního ovládání. Má velmi dobrou podporu pro vývojáře a brzy se plánuje vydání mnoha funkcí, které zvýší výkon Telegram Bots. V našem předchozím tutoriálu jsme se naučili, jak můžeme nastavit telegramového robota pro Raspberry Pi, a také jsme se naučili, že s ním musíme chatovat a sdílet obrázky, dokumenty a zvukové soubory.
Nyní přejdeme k dalšímu kroku učením Jak můžeme ovládat GPIO piny na Raspberry Pins pomocí Telegramu, abychom pro našeho robota poskytli nějakou hardwarovou podporu. V tomto tutoriálu připojíme čtyři LED diody k pinům GPIO Raspberry Pi a přepneme je pomocí přirozeného jazyka (chatování) z Telegramu. Zní to zajímavě, že? Pojďme začít.
Potřebné materiály:
- Čtyři LED (libovolná barva)
- Raspberry Pi (s připojením k internetu)
- Nepájivá deska
- Připojovací vodiče
Předpoklady:
Než budete pokračovat v tutoriálu, ujistěte se, že je vaše Raspberry Pi připojeno k internetu a na svém Pi můžete spouštět pythonovské programy. Přečtěte si také předchozí tutoriál, abyste věděli, jak nastavit telegramového robota s Raspberry Pi Pi, protože předpokládám, že jste obeznámeni s těmito věcmi, abyste mohli pokračovat v projektu.
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.
Kruhový diagram:
Schéma zapojení pro ovládání LED diod pomocí aplikace Raspberry Pi a Telegram pro Android není nic jiného než čtyři LED diody a některé propojovací vodiče. Nebudeme potřebovat rezistory omezující proud, protože GPIO piny Raspberry Pi fungují na 3.3V TTL. Postupujte podle níže uvedeného obvodu a připojte svoji LED.
Následující tabulka vám pomůže určit číslo kolíku a číslo GPIO pro připojení čtyř LED.
LED terminál |
Číslo PIN |
Číslo GPIO |
Zelená anoda |
Pin 31 |
GPIO 6 |
Červená anoda |
Kolík 33 |
GPIO 13 |
Žlutá anoda |
Kolík 35. |
GPIO 19 |
Bílá anoda |
Kolík 37. |
GPIO 26 |
Katoda všech čtyř |
Kolík 39 |
Přízemní |
Níže je obvodové schéma, ve kterém jsou připojeny čtyři LED podle výše uvedené tabulky:
Po připojení by vaše nastavení hardwaru mělo vypadat níže.
Raspberry Python Program:
Jakmile je hardware připraven, můžeme pokračovat v programu Python. V tomto programu musíme přečíst data (zprávy) odeslané z telegramového robota a odpovídajícím způsobem přepnout LED. Aby to bylo přirozenější, místo kontroly každé věty a pevného kódování této věty v našem programu můžeme zkontrolovat slova a podle toho postupovat.
Program tedy zkontroluje primárně dvě slova, jsou zapnutá a vypnutá. Jakmile zjistíte jedno z těchto dvou slov, bude hledat další klíčová slova jako bílá, žlutá, zelená a červená. Příslušná barevná LED bude přepnuta pouze v případě, že je slovo detekováno. Budeme také aktualizovat řetězec pro detekovaná slova pro odeslání zprávy zpět do telegramového robota.
Kompletní program lze nalézt v dolní části této stránky; těsně níže jsem vysvětlil program tím, že jsem jej rozdělil na malé smysluplné džunky.
Aby tento program fungoval, potřebujeme telepot stažený a importovaný v našem Raspberry Pi. V našem předchozím tutoriálu jsme si již stáhli teleport uvnitř našeho Raspberry Pi, takže ho nyní musíme importovat do našeho programu spolu s knihovnou GPIO, jak je znázorněno níže.
import RPi.GPIO jako GPIO import telepot z telepot.loop import MessageLoop
Pomocí tohoto programu budeme ovládat LED světla a barva LED bude bílá, žlutá, červená a zelená. Jsou připojeny k pinům zobrazeným v schématu zapojení; Pojďme definovat názvy pinů pro tyto LED na základě jejich barvy, aby je bylo možné použít v programu.
bílá = 26 žlutá = 19 červená = 13 zelená = 6
Dalším krokem by bylo definovat všechny tyto piny LED jako výstupní piny a definovat je jako vypnuté ve výchozím nastavení pomocí níže uvedených řádků.
#LED White GPIO.setup (bílá, GPIO.OUT) GPIO.output (bílá, 0) #Off zpočátku #LED žlutá GPIO.setup (žlutá, GPIO.OUT) GPIO.output (žlutá, 0) #Off zpočátku #LED Červená GPIO.setup (červená, GPIO.OUT) GPIO.output (červená, 0) # původně vypnutá #LED zelená GPIO.setup (zelená, GPIO.OUT) GPIO.output (zelená, 0) # původně vypnutá
Jak jsme se dozvěděli v našem předchozím kurzu, všechny akce, které musí provést robot Raspberry, budou definovány uvnitř akce funkce. Zde musíme udělat robota, aby poslouchal zprávy odeslané z mobilu, porovnal je s některými klíčovými slovy a odpovídajícím způsobem přepnul LED.
U každé zprávy, kterou pošleme z mobilu, bude ID chatu a příkaz. Toto ID chatu vyžaduje program, aby odpověděl zpět odesílateli. Uložíme tedy ID chatu a zprávu, jak je uvedeno níže.
chat_id = msg příkaz = msg
Nyní vše, co pošleme z telefonu, bude uloženo jako řetězec v příkazu proměnné. Jediné, co musíme udělat, je zkontrolovat klíčová slova v této proměnné. Python zde má příkaz, který usnadňuje práci. Například pokud musíme zkontrolovat, zda je v řetězci uloženém v příkazové proměnné slovo „on“, můžeme jednoduše použít následující řádek.
pokud je zapnuto v příkazu:
Podobně zkontrolujeme všechna klíčová slova, jakmile obdržíme „on“, pokračujeme v kontrole barvy, kterou uživatel uvedl. To se také provádí stejnými příkazy porovnáním stejných klíčových slov. Aktualizujeme také řetězec s názvem zpráva, na kterou lze uživateli odpovědět jako stavovou zprávu.
if 'on' in command: message = "Turned" if if 'white' in command: message = message + "white" GPIO.output (white, 1) if 'yellow' in command: message = message + "yellow" GPIO.výstup (žlutá, 1), pokud je „červená“ v příkazu: zpráva = zpráva + „červená“ GPIO.výstup (červená, 1), pokud je „zelená“ v příkazu: zpráva = zpráva + „zelená“ GPIO.výstup (zelená, 1) if 'all' in command: message = message + "all" GPIO.output (white, 1) GPIO.output (yellow, 1) GPIO.output (red, 1) GPIO.output (green, 1) message = message + „light (s)“ telegram_bot.sendMessage (chat_id, message)
Jak je uvedeno výše, hledáme klíčová slova jako „zelená“, „bílá“, „červená“, „žlutá“ a „vše“ a „Zapnuto“ samotné konkrétní LED. Jakmile je práce hotová, pošleme uživateli zprávu o tom, co se právě stalo. Stejná metoda může být použita pro vypnutí světla z dobře.
if 'off' in command: message = "Turned off" if 'white' in command: message = message + "white" GPIO.output (white, 0) if 'yellow' in command: message = message + "yellow" GPIO.výstup (žlutá, 0), pokud je „červená“ v příkazu: zpráva = zpráva + „červená“ GPIO.výstup (červená, 0), pokud je „zelená“ v příkazu: zpráva = zpráva + „zelená“ GPIO.výstup (zelená, 0) if 'all' in command: message = message + "all" GPIO.output (white, 0) GPIO.output (yellow, 0) GPIO.output (red, 0) GPIO.output (green, 0) message = message + „light (s)“ telegram_bot.sendMessage (chat_id, message)
Ovládání LED pomocí Raspberry Pi a Telegram robota:
Připojte své LED diody a spusťte program na pythonu. Ujistěte se, že jste změnili adresu tokenu svého robota. A začněte psát požadované příkazy. Například pro zapnutí červeného a žlutého světla můžete použít kterýkoli z následujících příkazů.
1. Zapněte červené a žluté světlo
2. Zapněte červenou a žlutou barvu vpravo
3. Na červenou a žlutou
4.Please dát na na žluté a červené světlo
Jak vidíte, robot hledá pouze klíčová slova a ostatní slova ve větě bude ignorovat, takže s ním můžete mluvit přirozeně. Kompletní fungování projektu lze nalézt na videu na konci této stránky.
Pokračuj! hrajte se svým projektem a bavte se. Nyní ji můžete posunout na zcela novou úroveň. S oběma tutoriály v kombinaci máme moc ovládat jakýkoli hardware z našeho chytrého telefonu kdekoli na světě a také získávat vstupy / výsledky z našeho Raspberry Pi ve formě zpráv, zvuku, obrazu a dokonce jako dokumentu. Pokud vyměníte LED diody za relé a střídavé spotřebiče, může to být domácí automatizace řízená chytrým telefonem. Takže využijte svou kreativitu a vytvořte si vlastní skvělé projekty…
Doufám, že se vám projekt líbil a rádi jste stavěli něco podobného. Pokud máte nějaké problémy, dejte mi vědět prostřednictvím sekce komentářů a rád vám pomůžu. Podělte se se mnou také o svůj skvělý nápad a podívejme se, co můžeme vytvořit.