Domovská » jak » Vytvořte ukazatel LED s malinovou pí (pro e-mail, počasí nebo cokoli)

    Vytvořte ukazatel LED s malinovou pí (pro e-mail, počasí nebo cokoli)

    Raspberry Pi vytváří pěknou kompaktní platformu, která přiloží kontrolní světlo pro všechny druhy projektů - upozornění na počasí, nové e-maily atd. Přečtěte si, jak vám ukážeme, jak připojit modul LED k vašemu Pi a nastavit některé základní upozornění.

    Proč to chci dělat??

    Protože je to zábava. Na rozdíl od mnoha našich výukových lekcí, kde je v horní části uvedena malá reklama, která přesně popisuje, jaký přínos budete mít z projektu, je v tomto případě dost krátká, protože přínosem je prostě bavit.

    Raspberry Pi je perfektní zařízení pro hraní, experimentování s elektronikou a naučení některých programů. Nikdo potřeby ukazatel okolní dešťové vody ve své kuchyni, například, ale budování jednoho je zábavné cvičení a skvělá připomínka, která vám přinese váš deštník na potenciálně bouřlivé dny.

    Co potřebuji?

    Chcete-li sledovat spolu s tutoriálem budete potřebovat několik věcí. Za prvé, předpokládáme, že jste již následovali náš předchozí tutoriál: Příručka HTG pro začátek s Raspberry Pi (a proto máte základy pokryté instalací Rasbian na našem Malinci Pi).

    Pokud chcete tento projekt provést s určitým rozpočtem, můžeme s jistotou říci, že nejnovější model Raspberry Pi je značné překvapení pro tuto práci a my bychom vás povzbudili, abyste vyhodili prach ze starého Raspberry Pi, který jste dostali ve skříňce nebo vyzvednout levné použité jeden eBay nebo podobně. Rozpočet moudrý long-in-the-zub a Malina Pi 1 Model A nebo model B odrazil eBay za $ 10-15 je perfektní fit pro tento projekt přes koupi zbrusu nové $ 35 aktuální generace Pi.

    Kromě toho, že máte nainstalovanou funkční jednotku Pi s Raspbian, budete potřebovat následující věci:

    • 1 modul LedBorg (~ $ 5.00 s přepravou 4 USD z Velké Británie do USA, pracuje se všemi modely Raspberry Pi).
    • 1 Clear Malina Pi Pouzdro kompatibilní s vaším konkrétním Pi modelem, jako je tento model Raspberry Pi 1 Model B.

    Poznámka: Čirý / matný případ Pi je zcela volitelný, ale pokud používáte v současné době neprůhledné pouzdro, váš LED indikátor bude skrytý uvnitř. Budete muset vyříznout díru ve vašem případě a nechat světlo vypnout nebo použít prodlužovací kabel GPIO s odbočovací soupravou - jako je tato od Adafruit Industries - k upevnění LedBorgu k vašemu Raspberry Pi. Při použití průlomového kabelu přidáváte asi 8 dolarů na náklady projektu, nabízí to více možností pro přizpůsobení konečného produktu tím, že můžete jednoduše umístit LED uvnitř nebo pod něco, co chcete osvětlit.

    Instalace LedBorg

    Zatímco byste si jistě dokázali postavit světelný LED indikátor úplně od začátku (a vyhledávání vyhledávačů se objeví spousta lidí, kteří tak učinili), organizace Piborg vyrábí takový kompaktní a levný LED modul, LedBorg, odoláváte tomu, abyste ji použili jako základ pro náš projekt indikátoru LED Malina Pi LED.

    Instalace modulu je snap, protože je navržen tak, aby se vešel přímo na piny GPIO na Pi. Nejprve vypněte Pi a otevřete pouzdro.

    Nejdůležitější součástí procesu instalace je to, že modul je orientován tak, aby ikona LedBorg byla nejblíže k modulu RCA na desce Raspberry Pi (a tak je okraj LedBorg zarovnaný s okraji desky Pi s převisem část LedBorg visící přes desku Pi a ne od okraje). Viz fotografie výše.

    Zatímco máte desku Pi otevřenou, nyní by bylo vynikající čas na pokrytí palubních LED indikátorů (vedle portů USB), zvláště pokud používáte jasný případ. Nechcete, aby bylo zamyšlené čtení indikátoru LedBorg, protože indikátory napájení a sítě jsou tak jasné.

    Pokryli jsme si vrstvu bílé elektrické pásky. To je natolik stmívalo, že jsme je mohli stále odkazovat, ale byly mnohem tlumenější než LedBorg, že to už nebylo rušivé.

    Jakmile máte nainstalovaný LedBorg a případně zakryjete LED indikátory Pi elektrickou páskou, je čas kufr uzavřít. Spusťte Pi, než se přesunete do další fáze tutoriálu.

    Instalace softwaru LedBorg

    PiBorg poskytuje skvělý softwarový balík pro LedBorg, který obsahuje jak GUI řadič, tak ovladače pro přístup k LedBorgu z příkazového řádku.

    Než začneme, musíte se ujistit, že jste chytili správný balíček pro vaši verzi Rasbian a revizi # vaší desky Raspberry Pi.

    Pokud vaše deska Raspberry Pi nemá žádné montážní otvory, je to Revize 1. Pokud má váš Raspberry Pi montážní otvory (umístěné mezi USB porty a mezi přístrojem a portem HDMI), je to Revize 2. Také potřebujete znát verzi jádra z vašeho rasbijského zařízení. Otevřete terminál a zadejte následující příkaz a zkontrolujte:

    uname -r

    Poté, co máte číslo Revize a číslo jádra, můžete navštívit sekci Balíčky, kde můžete získat odkaz na váš balíček. V našem případě používáme desku Revision 1 s jádrem 3.6.11, takže bychom chytili soubor raspbian-2013-02-09-rev1.zip.

    Abychom nainstalovali všechny dobroty, musíme otevřít terminál na Pi. a potom zadejte následující příkazy pro instalaci balíčku LedBorg.

    Poznámka: Adresa URL ve třetím příkazu musíte nahradit adresou URL balíčku pro vaši kombinaci desky / jádra.

    mkdir ~ / ledborg-setup
    cd ~ / ledborg-setup
    wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
    unzip setup.zip
    chmod + x install.sh
    ./install.sh

    V tomto okamžiku máte nyní obálku GUI pro ovladače LedBorg a samotné ovladače instalované. Na pracovní ploše Raspbian se zobrazí ikona obálky GUI:

    Pokračujte a klikněte na ikonu LedBorg a spusťte balík GUI. Budete zacházet s rozhraním pro výběr barev takto:

    Nyní je ten správný čas, abyste se ujistili, že váš modul je funkční. Vyberte si libovolnou barvu, vyjma černé, a vyzkoušejte ji. Zkoušíme to tím, že vybereme několik barev:

    Vypadá dobře! Je to jasné a matné plastové pouzdro, které jsme objednali pro projekt, nabízí mírnou difuzi. Chcete-li přehrávat modul LED předtím, než budete pokračovat, klikněte na režim Demo:

    V demo režimu můžete procházet všemi barvami při různých rychlostech, zkontrolovat vysoký / nízký výkon a jiným modulem LED v krocích.

    Je zde v sekci Demo Mode, že můžete také svůj LedBorg zapnout jako první z mnoha indikátorů. Volbou CPU v sekci Barvy se LED začne měnit ze zelené na žluté na červenou, což indikuje zatížení ARM procesoru Raspberry Pi. Navrhujeme změnu rychlosti na pomalou, když jste na ní - rychle aktualizuje LED příliš rychle a činí indikátor CPU rušivě místo užitečného.

    Kromě použití rozhraní GUI pro výběr barev můžete vybrat barvy z terminálu pomocí hodnot RGB. Otevřete terminál a zadejte následující příkaz, abyste vypnuli LED:

    echo "000"> / dev / ledborg

    Způsob, jakým LedBorg zpracovává hodnoty RGB, znamená, že 0 znamená, že kanál je vypnutý, 1 znamená, že kanál je napůl napájen a 2 znamená, že kanál je plný výkon. Například 001 nastaví červený kanál na 0%, zelený kanál na 0% a modrý kanál na 50% výkon.

    Změňte hodnotu na 002 a výstup LED zůstane modrý, ale stane se jasnější, protože modrý kanál je nyní na výstupu 100%. Změňte hodnotu na hodnotu 202 a kombinace červené a modré barvy v plném výkonu, abyste získali purpurovou barvu.

    Nyní, když víme, jak ručně manipulovat s LED diodami, podíváme se na používání skriptů, abychom z LED diody přepnuli z jednoduchého světla na skutečný indikátor.

    Konfigurace LedBorg jako indikátoru deště

    Pro tuto část tutoriálu budeme společně kombinovat několik věcí, abychom modul LedBorg LED změnili na ukazatel dešťů založený na předpovědi počasí pro naši lokalitu. Použijeme Pythonův skript pro volání API počasí, které zase pročte denní dešťovou srážku a poté přepněte LED do jasně modré barvy, aby indikoval předpokládaný déšť.

    Nejprve musíme získat klíč API pro Weather Underground. Pro osobní potřebu a malé rozvojové projekty je rozhraní API zdarma. Navštivte zde webovou stránku API Weather API a zaregistrujte se pro klíč API.

    Jakmile máte klíč API, navštivte Weather Underground a vyhledejte město, které chcete sledovat. V našem případě budeme sledovat San Fransisco, CA. Adresa URL stránky San Fransisco je:

    http://www.wunderground.com/US/CA/San_Francisco.html

    Důležitou součástí našich cílů je poslední část URL: /CA/San_Francisco.html. Použijeme to k úpravě předpovědi adresy URL nástroje API. Základní URL je:

    http://api.wunderground.com/api/YOUR API KEY / prognóza / q / STATE / CITY.json

    Prognózu pro kterékoli město v USA můžete vygenerovat zadáním kódu API, dvoumístného kódu státu a názvu města z adresy URL, kterou jste vybrali z výsledků vyhledávání podzemního počasí.

    Jakmile máte adresu URL API s klíčem API a vloženým státem / městem, můžete upravit následující skript Pythonu tak, že vytvoříte nový textový dokument na počítači Pi pomocí Leafpadu a vložíte do něj následující kód:

    z urllib2 import urlopen
    import json

    req = urlopen ('http://api.wunderground.com/api/VÝSTUPNÍ KEY / prognóza / q / STATE / CITY.json')
    parsed_json = json.load (req)
    pop = int (parsed_json ['prognóza'] ['txt_forecast'] ['předpověď'] [0] ['pop'])

    # Následující hodnota je ladění.
    # Upravte hash a změňte
    # celé číslo na test 0-100
    # LED odezva.

    # pop = 0

    tisk 'Aktuální šance na srážky je .'. formát (pop)

    # Výchozí nastavení je zapnutí LED
    # pro každou šanci na déšť nad 20%. Můžete upravit
    # hodnota v "if pop> 20:" podle přání.

    pokud pop> 20:
    LedBorg = otevřený ('/ dev / ledborg', 'w')
    LedBorg.write ('002')
    del LedBorg
    print ('Rain!')
    jiný:
    LedBorg = otevřený ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del LedBorg
    tisk ("Bez deště!")

    Uložte soubor jako wunderground.py do adresáře / home / pi /. Otevřete terminál a zadejte následující příkaz:

    python wunderground.py

    Pokud jste klíč API a kód země / města správně zadali, měla by odkrýt odpověď, která vypadá takto:

    Pokud je pro vaše území předvídáno srážení, měl by váš výstup LedBorg vypadat takto:

    Nyní čeká na deštivý den, aby správně testoval scénář, by bylo nudné. Pokud dnes ve vaší oblasti nedojde k dešti a chcete vidět rozsvícení LED, upravte skript wunderground.py a nahraďte hodnotu "pop = pop" v řádku 13 hodnotou větší než 20, např. 60 že se naše předpověď vrátila. Nezapomeňte změnit řádek zpět na "pop = pop" po dokončení.

    Posledním krokem je nastavit úlohu cron pro automatické spuštění skriptu, který jsme právě uložili v pravidelném intervalu, aby byl indikátor LED stále aktuální. Vzhledem k tomu, že tento úkol je nezbytný jak pro tento skript, tak pro následující e-mailový indikátor, budeme pokrývat nastavení cron úlohy poté, co jsme vám ukázali, jak nastavit další skript.

    Konfigurace vašeho LedBorg jako ukazatele Gmailu

    Kdo nemá rád fixaci dopaminu, který přichází s vidět nový e-mail ve své doručené poště? V této části tutoriálu vám ukážeme, jak používat LedBorg jako nový indikátor služby Gmail. Stejně jako v minulosti budeme kombinovat externí vstup (v tomto případě zdroj dat Atom namísto rozhraní API) a jednoduchý skript pro ovládání naší LED.

    Musíme rozšířit funkčnost instalace Pythonu trochu instalací FeedParser, nástroje pro čtení RSS / Atom Python. Otevřete terminál a zadejte následující příkaz:

    sudo easy_install feedparser

    Jakmile je instalace dokončena, můžeme nastavit, abychom vytvořili náš kontrolní skript Gmail. Opět pomocí programu Leafpad vložte následující text do editoru. Změňte uživatelské jméno a heslo tak, aby odpovídalo uživatelskému jménu a účtu účtu Gmail, který chcete zkontrolovat.

    importportparser

    # Zadejte uživatelské jméno služby Gmail
    # a heslo. Nezahrnujte
    # @ gmail.com část z
    # vaše uživatelské jméno.

    username = "uživatelské jméno"
    heslo = "heslo"

    mail = int (feedparser.parse ("https: //" + username + ":" + heslo + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"

    # Následující hodnota je ladění.
    # Upravte hash a změňte
    # celé číslo na test 0 nebo 1
    # LED odezva.

    # mail = 0

    pokud poštu> 0:
    LedBorg = otevřený ('/ dev / ledborg', 'w')
    LedBorg.write ('020')
    del LedBorg
    tisk ('Mail!')
    jiný:
    LedBorg = otevřený ('/ dev / ledborg', 'w')
    LedBorg.write ('000')
    del LedBorg
    tisk ('Ne mail!')

    Uložit skript jako gmailcheck.py. Otevřete terminál a zadejte následující příkaz:

    python gmailcheck.py

    Pokud máte e-mailovou schránku v doručené poště Gmailu, dioda LED se změní na zelenou a dostanete takovou odpověď:

    Pokud máte poštu v doručené poště v Gmailu, vaše LedBorg bude vypadat takto:

    Stejně jako skript pro kontrolu déšť jsme zahrnuli hodnotu ladění. Nemáte-li žádný nový e-mail, můžete buď poslat e-mail, aby se zvýšil počet vašich doručených zpráv na 1, nebo můžete upravit komentářový hash a změnit ladicí řádek na "mail = 1" a otestovat skript. Nezapomeňte vrátit linku po dokončení testování.

    Hop do další části tutoriálu nastavit svůj skript Gmail spustit podle plánu.

    Nastavení úlohy Cron ke spuštění skriptu

    Nyní, když máme k dispozici dva skripty, musíme nastavit úlohu cron, aby bylo možné je běžet po celý den, aby LED indikátor zůstal aktuální.

    První věc, kterou chceme udělat, je vypnout LED, jestliže je v současné době z našich předchozích experimentů. Na typu terminálu:

    echo "000"> / dev / ledborg

    Zatímco jste stále na příkazovém řádku, můžete otevřít editor cron. Pokud jste nikdy předtím nenastavili úlohu cron, důrazně doporučujeme podívat se na náš průvodce tím, že jej použijeme zde. To znamená, že vás provedeme základním programem tady.

    Na typu terminálu:

    sudo crontab -e

    Otevře se tabulka Raspbian cron v textovém editoru Nano. Pomocí kláves se šipkami přejděte dolů až k dolnímu okraji. Toto je místo, kde nastavíme opakovanou práci cron pro naše skripty Pythonu.

    Chcete-li nastavit deštní skript, zadejte do tabulky cron následující řádek:

    * / * * * * * Python /home/pi/wunderground.py

    Stisknutím kláves CTRL + X ukončete; zaškrtněte Ano, chcete-li uložit a přepsat existující tabulku cron. Hodnota, kterou jsme zadali v tabulce cron "* / 5 * * * *", nastaví skript, který se bude provádět každých 5 minut navždy.

    Každých pět minut je skvělý čas na skript, který kontroluje plánovaný dešť - můžete dokonce tvrdit, že je to příliš agresivní - ale pokud se snažíte držet krok nad e-mailem, je to příliš dlouhé rozpětí pro oznámení . Pokud nastavujete plán pro oznamovací skript služby Gmail, zadejte následující řádek v tabulce cron:

    * / * * * * * Python /home/pi/wunderground.py

    Tato položka spustí skript gmailcheck.py každou minutu pro ovelejší oznámení o aktualizaci.


    To je vše! Můžete experimentovat se svými vlastními skripty Pythonu tak, že zrušíte příkazy if / else z našich a vyzkoušíte je pomocí zcela nových proměnných. Pokud najdete vstupní zdroj pro data, můžete jej proměnit v proměnnou ve vašem Python skriptovém akciovém trhu, počty pylů, Twitter se zmíní, pokud je pro něj API, můžete jej změnit na okolní LED indikátor.

    Konečně chci poděkovat všem velkým zdrojům, které jsem na tomto projektu pracovala. Bylo to něco přes deset let od doby, kdy jsem aktivně psal programy a trvalo pár klepnutí, aby se prach a hrdza dostali ven. Přispěvatelé / r / LearnPython mi pomohli hýbat v výstupu rozhraní API pro Weather Underground a studovali, jak se Michael v Mitch Tech zabýval feedem Gmail Atom, který jej analyzoval pro LedBorg snadné a studium modulů Python u Code Academy bylo skvělý způsob, jak získat základní syntaxi a strukturu jazyka, který jsem nikdy předtím nepoužíval.