Úvodná » ako » Zostavte indikátor LED s malinovou pi (pre e-mail, počasie alebo čokoľvek)

    Zostavte indikátor LED s malinovou pi (pre e-mail, počasie alebo čokoľvek)

    Raspberry Pi vytvára peknú kompaktnú platformu na pripojenie svetelného indikátora pre všetky druhy projektov - upozornenie na počasie, nové e-maily atď. Prečítajte si, ako vám ukážeme, ako pripojiť modul LED k vášmu Pi a nastaviť niektoré základné upozornenia.

    Prečo to mám robiť??

    Pretože je to zábava. Na rozdiel od mnohých našich výučbových programov, v ktorých je v hornej časti zobrazený malý náčrt, ktorý presne ukáže, aký prínos získate z projektu, blur je v tomto prípade dosť krátky, pretože výhodou je jednoducho baviť sa.

    Raspberry Pi je dokonalé zariadenie na hranie, experimentovanie s elektronikou a naučiť sa nejaké programovanie. nikto potreby ukazovateľ okolitého dažďa v kuchyni, napríklad, ale budovanie jednej je zábavné cvičenie a skvelá pripomienka, aby ste s vami mohli dať svoj dáždnik na potenciálne búrkové dni.

    Čo potrebujem?

    Ak chcete pokračovať spolu s výučbou, budete potrebovať niekoľko vecí. Po prvé, predpokladáme, že ste už nasledovali náš predchádzajúci návod: Príručka HTG pre Začíname s Raspberry Pi (a preto máte základy pokryté inštaláciou Rasbian na našej Raspberry Pi).

    Ak chcete tento projekt robiť s rozpočtom, môžeme s istotou povedať, že najnovší model Raspberry Pi je významným nadbytkom pre túto prácu a my by sme vás povzbudili, aby ste vyhodili prach zo starého Raspberry Pi, ktorý ste stiahli v skrini alebo vyzdvihnúť lacné použité jeden z eBay alebo podobne. Rozpočet múdry dlho-v-zub a malina pi 1 model A alebo model B odrazil eBay za $ 10-15 je ideálnym pre tento projekt pred nákupom zbrusu nové $ 35 súčasnej generácie Pi.

    Okrem toho, že máte nainštalovanú funkčnú jednotku Pi so systémom Raspbian, budete potrebovať tieto veci:

    • 1 modul LedBorg (~ $ 5.00 s prepravou 4 USD z Veľkej Británie do USA, pracuje so všetkými modelmi Raspberry Pi).
    • 1 Clear Malina Pi Case je kompatibilná s vaším konkrétnym Pi modelom, ako je to Raspberry Pi 1 Model B case.

    Poznámka: Číry / matný prípad Pi je úplne voliteľný, ale ak v súčasnosti používate nepriehľadný prípad, váš LED indikátor bude skrytý dovnútra. Budete musieť vyrezať dieru vo svojom prípade, aby ste nechali svetlo alebo použili predlžovací kábel GPIO s odbočovačom - ako je tento od Adafruit Industries - aby ste priviedli LedBorg do vášho Raspberry Pi. Pri použití kábla breakout pridáva asi 8 dolárov na náklady projektu ponúka viac potenciálu pre prispôsobenie konečného produktu tým, že môžete ľahšie umiestniť LED vnútri veci alebo pod niečo, čo chcete osvetliť.

    Inštalácia aplikácie LedBorg

    Zatiaľ čo by ste si mohli určite vybudovať úplne od začiatku LED indikátor (a vyhľadávací nástroj sa obráti hore veľa ľudí, ktorí tak urobili) organizácia Piborg vyrába taký kompaktný a lacný LED modul, LedBorg, odolávať použitiu ako základ pre náš projekt indikátora maliny Pi Pi LED.

    Inštalácia modulu je okamžitá, pretože je navrhnutá tak, aby priamo priliehala na piny GPIO na Pi. Po prvé, vypnite Pi a otvorte kufor.

    Najdôležitejšou súčasťou inštalačného procesu je orientácia modulu tak, aby ikona LedBorg bola najbližšia k modulu RCA na doske Raspberry Pi (a teda okraj LedBorg je zarovnaný s okrajmi dosky Pi s previsom časť LedBorg visí nad deskou Pi a nie z okraja). Pozrite si fotografiu vyššie.

    Zatiaľ čo máte otvorenú dosku Pi, teraz by bolo vynikajúci čas na pokrytie indikátorov LED na palube (vedľa portov USB), najmä ak používate jasný prípad. Nechcete, aby bolo mätúce čítať indikátor LedBorg, pretože indikátory napájania a siete sú také jasné.

    Pokryli sme tú vrstvu bielej elektrickej pásky. To ich dostatočne stmievalo, takže sme ich stále mohli spomenúť, ale boli oveľa tmavšie než LedBorg, že to už nebolo rušivé.

    Akonáhle máte nainštalovaný LedBorg a prípadne máte pokryté LED indikátory Pi elektrickou páskou, je čas vrátiť prípad späť. Spustite svoj Pi hneď, ako prejdete na ďalšiu fázu tutoriálu.

    Inštalácia softvéru LedBorg

    PiBorg poskytuje skvelý softvérový balík pre LedBorg, ktorý zahŕňa ako grafický ovládač ako aj ovládače na prístup k LedBorgu z príkazového riadku.

    Skôr ako začneme, musíte sa uistiť, že chystáte správny balík pre vašu verziu Rasbian a revíziu # vašej rady Raspberry Pi.

    Ak vaša Raspberry Pi doska nemá montážne otvory, je to revízia 1. Ak vaša Raspberry Pi má montážne otvory (umiestnené cez porty USB a medzi portom napájania a HDMI), potom je to revízia 2. Takisto je potrebné poznať verziu jadra vašej Rasbiovej inštalácie. Otvorte terminál a zadajte nasledujúci príkaz na kontrolu:

    uname -r

    Akonáhle budete mať číslo revízie a číslo jadra, môžete navštíviť sekciu Balíky, aby ste získali odkaz na váš balík. V našom prípade používame dosku Revision 1 s jadrom 3.6.11, takže by sme chytili súbor raspbian-2013-02-09-rev1.zip.

    Aby sme mohli nainštalovať všetky dobroty, musíme otvoriť terminál na Pi. a potom zadajte nasledujúce príkazy na inštaláciu balíka LedBorg.

    Poznámka: Adresa URL v treťom príkaze musíte nahradiť adresou URL balíka pre vašu kombináciu dosky / jadra.

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

    V tomto okamihu máte teraz balík GUI pre ovládače LedBorg a samotné ovládače. Na vašej pracovnej ploche Raspbian sa zobrazí ikona balíka GUI:

    Pokračujte a kliknite na ikonu LedBorg a spustite balík GUI. Budete zaobchádzaní s rozhraním pre výber farieb tak, ako je to:

    Teraz je ten správny čas, aby ste sa uistili, že váš modul je funkčný. Vyberajte akúkoľvek farbu, okrem čiernej, aby ste ju vyskúšali. Chystáme sa vyskúšať výberom niekoľkých farieb:

    Vyzerá dobre! Je to jasné a matné plastové puzdro, ktoré sme objednali pre projekt, ponúka miernu difúziu. Ak chcete prehrávať s modulom LED ešte predtým, než prejdete, kliknite na tlačidlo Demo režim:

    V demo režime môžete prechádzať všetkými farbami pri rôznych rýchlostiach, kontrolovať vysoký / nízky výkon a inak umiestniť modul LED v krokoch.

    Je tu v sekcii Demo mód, že môžete tiež zmeniť svoj LedBorg na prvý z mnohých indikátorov. Výberom CPU v časti Farby sa LED začne meniť zo zelenej na žltú na červenú, čo naznačuje zaťaženie procesora ARM Raspberry Pi. Odporúčame meniť rýchlosť na pomalé, keď ste na ňom - ​​rýchlo aktualizuje LED príliš rýchlo a robí indikátor CPU rozptyľujúc namiesto užitočných.

    Okrem použitia rozhrania GUI na výber farieb môžete vybrať farby z terminálu pomocou hodnôt RGB. Otvorte terminál a zadajte nasledujúci príkaz na vypnutie LED:

    echo "000"> / dev / ledborg

    Spôsob, akým LedBorg spracováva hodnoty RGB, je, že 0 znamená, že kanál je vypnutý, 1 znamená, že kanál je polovičný výkon a 2 znamená, že kanál má plný výkon. Napríklad 001 nastaví červený kanál na 0%, zelený kanál na 0% a modrý kanál na 50% výkon.

    Zmeňte hodnotu na 002 a výstup LED zostane modrý, ale stane sa jasnejším, pretože modrý kanál je teraz na 100% výstupe. Zmeňte hodnotu na 202 a červené a modré pri plnom výkone kombinovať, aby sa farba purpurová.

    Teraz, keď vieme, ako ručne manipulovať s LED, pozrite sa na používanie skriptov na to, aby sme LED diódu od jednoduchého svetla k skutočnému indikátoru.

    Konfigurácia vášho LedBorg ako ukazovateľa dažďa

    Pre túto časť tutoriálu budeme spoločne kombinovať niekoľko vecí, aby sme náš LedBorg LED modul zmenili na ukazovateľ dažďa na základe predpovede počasia pre našu polohu. Použijeme Python skript, aby sme zavolali API počasia, ktoré zase prečítajú šancu dažďa na deň a potom prepínajú LED smerom von do jasne modrej farby, aby naznačili predpokladaný dážď.

    Najprv musíme získať prístupový kľúč API pre Weather Underground. Pre osobnú potrebu a malé rozvojové projekty je rozhranie API bezplatné. Navštívte tu stránku prihlásenia API Weather a zaregistrujte si kľúč API.

    Keď máte kľúč API, navštívte Weather Underground a vyhľadajte mesto, ktoré chcete sledovať. V našom prípade budeme sledovať San Fransisco, CA. Adresa URL stránky San Fransisco je:

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

    Dôležitou časťou pre naše účely je posledná časť URL: /CA/San_Francisco.html. Použijeme ho na úpravu predpovedanej webovej adresy pre nástroj API. Základná webová adresa je:

    http://api.wunderground.com/api/ VAŠE API KLÍČ / prognóza / q / STATE / CITY.json

    Môžete vytvoriť predpoveď pre akékoľvek mesto USA zadaním kľúča rozhrania API, kódu dvojpísmenového stavu a názvu mesta z adresy URL, ktorú ste vytiahli z výsledkov vyhľadávania v aplikácii Weather Underground.

    Po zadaní adresy URL rozhrania API pomocou kľúča rozhrania API a štátu alebo mesta môžete upraviť nasledujúci skript Pythonu tak, že vytvoríte nový textový dokument na svojom prístroji pomocou nástroja Leafpad a vložíte do neho nasledujúci kód:

    z urllib2 import urlopen
    import json

    req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / predpoveď / q / STATE / CITY.json')
    parsed_json = json.load (opäť)
    pop = int (parsed_json ['prognóza'] ['txt_forecast'] ['predpoveď'] [0] ['pop'])

    # Nasledujúca hodnota je ladenie.
    # Upravte hash a zmeňte
    # celé číslo na test 0-100
    # LED reakcia.

    # pop = 0

    print 'Aktuálna šanca na zrážky je .'. formát (pop)

    # Predvolené nastavenie je zapnutie LED
    # pre každú dážď nad 20%. Môžete upraviť
    # hodnota v "if pop> 20:" podľa želania.

    ak pop> 20:
    LedBorg = otvorené ('/ dev / ledborg', 'w')
    LedBorg.write ( '002')
    del LedBorg
    tlač ("Dážď!")
    else:
    LedBorg = otvorené ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    print ("Bez dažďa!")

    Uložte súbor ako wunderground.py v adresári / home / pi /. Otvorte terminál a zadajte nasledujúci príkaz:

    python wunderground.py

    Ak ste správne zadali kľúč API a kódy stavu / mesta, mali by ste odstrániť odpoveď, ktorá vyzerá takto:

    Ak sa predpokladá zrážka pre vašu oblasť, váš výstup LedBorg by mal vyzerať takto:

    Teraz čakanie na deštivý deň na správne otestovanie skriptu bude únavné. Ak dnes nie je šanca na dážď vo vašej oblasti a chcete vidieť LED rozsvietiť, upravte skript wunderground.py a nahraďte hodnotu "pop = pop" v riadku 13 hodnotou vyššou ako 20, napríklad 60 že sa naša prognóza vrátila. Nezabudnite zmeniť riadok späť na "pop = pop" po dokončení.

    Posledným krokom je nastavenie úlohy cron, aby sa automaticky spustil skript, ktorý sme práve uložili v pravidelnom intervale, aby sme udržali indikátor LED aktuálny. Keďže táto úloha je potrebná pre tento skript aj pre indikátor e-mailu, ktorý nasleduje, budeme pokrývať nastavenie úlohy cron po tom, čo sme vám ukázali, ako nastaviť ďalší skript.

    Konfigurácia vášho LedBorg ako indikátora služby Gmail

    Kto nemá rád fix dopamínu, ktorý prichádza s vidieť nové e-maily vo svojej doručenej pošte? V tejto časti tutoriálu vám ukážeme, ako používať LedBorg ako nový indikátor služby Gmail. Rovnako ako v minulosti budeme kombinovať externý vstup (v tomto prípade krmivu Atom namiesto rozhrania API) a jednoduchý skript na riadenie našej LED.

    Musíme rozšíriť funkčnosť našej inštalácie Pythonu trochu inštaláciou FeedParser, nástroja na čítanie RSS / Atom nástroja Python. Otvorte terminál a zadajte nasledujúci príkaz:

    sudo easy_install feedparser

    Po dokončení inštalácie môžeme nastaviť, aby sme vytvorili náš kontrolný skript Gmail. Znova pomocou programu Leafpad vložte nasledujúci text do editora. Zmeňte používateľské meno a heslo tak, aby sa zhodovalo s používateľským menom a heslom účtu Gmail, ktorý chcete skontrolovať.

    import feedparser

    # Zadajte používateľské meno služby Gmail
    # a heslo. Nezahŕňajte
    # @ gmail.com časť z
    # vaše používateľské meno.

    username = "username"
    heslo = "heslo"

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

    # Nasledujúca hodnota je ladenie.
    # Upravte hash a zmeňte
    # celé číslo na 0 alebo 1 na testovanie
    # LED reakcia.

    # mail = 0

    ak poštu> 0:
    LedBorg = otvorené ('/ dev / ledborg', 'w')
    LedBorg.write ( '020')
    del LedBorg
    vytlačiť ('Mail!')
    else:
    LedBorg = otvorené ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    vytlačiť ('No mail!')

    Uložte skript ako gmailcheck.py. Otvorte terminál a zadajte nasledujúci príkaz:

    python gmailcheck.py

    Ak máte e-mailovú schránku v priečinku doručenej pošty v službe Gmail, LED dióda sa zmení na zelenú a dostanete takú odpoveď:

    Ak máte e-maily v doručenej pošte Gmail, váš LedBorg bude vyzerať takto:

    Rovnako ako skript na kontrolu dažďov, obsahovali sme aj ladiacu hodnotu. Ak nemáte žiadny nový e-mail, môžete posielať e-mail s cieľom zvýšiť počet vašich doručených na 1, alebo môžete upraviť komentár hash a zmeniť ladiaci riadok na "mail = 1" na otestovanie skriptu. Nezabudnite vrátiť riadok po dokončení testovania.

    Prejdite do nasledujúcej časti tutoriálu, aby ste skript Gmail spustili podľa plánu.

    Nastavenie úlohy Cron na spustenie skriptu

    Teraz, keď máme dva skripty, s ktorými budeme môcť hrať, musíme nastaviť cron úlohu, aby sme mohli bežať celý deň, aby sme udržali indikátor LED aktuálny.

    Prvá vec, ktorú chceme urobiť, je vypnúť LED, ak je v súčasnosti z našich predchádzajúcich experimentov. Na typ terminálu:

    echo "000"> / dev / ledborg

    Aj keď ste stále na príkazovom riadku, môžete otvoriť editor cron. Ak ste predtým nikdy nenastavili úlohu cron, dôrazne odporúčame, aby ste si našu sprievodcu použili tu. To znamená, že vás prevedieme základným programom tu.

    Na typ terminálu:

    sudo crontab -e

    Tým sa otvorí tabuľka Raspbian cron v textovom editore Nano. Pomocou klávesov so šípkami prejdite nadol až na úplné spodné. Toto je miesto, kde nastavíme opakovanú prácu cron pre naše skripty Pythonu.

    Ak chcete nastaviť dažďový skript, zadajte do tabuľky cron nasledujúci riadok:

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

    Stlačte CTRL + X na ukončenie; vyberte áno, ak chcete uložiť a prepísať existujúcu tabuľku cron. Hodnota, ktorú sme zadali v tabuľke cron "* / 5 * * * *", nastaví skript na každých 5 minút navždy.

    Každých 5 minút je skvelý čas na skript, ktorý kontroluje predpovedaný dážď - dokonca môžete tvrdiť, že je to príliš agresívne - ale ak sa snažíte udržať na vrchu vášho e-mailu, je to príliš dlhá doba na oznamovanie , Ak nastavujete rozvrh pre notifikačný skript služby Gmail, zadajte nasledujúci riadok v tabuľke cron:

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

    Táto položka spúšťa každú minútu skript gmailcheck.py pre oveľa rýchlejšie upozornenie na aktualizáciu.


    To je všetko, čo je k tomu! Môžete experimentovať s vlastnými skripty Pythonu tak, že zrušíte vyhlásenia if / else z našich a vyskúšate ich s úplne novými premennými. Ak môžete nájsť vstupný zdroj pre dáta, môžete premeniť v premennej vo vašom Python skriptovom akciovom trhu priemery, poľný počet, Twitter spomína, ak tam je API pre to môžete premeniť na okolitý LED indikátor.

    Nakoniec chcem poďakovať všetkým veľkým zdrojom, ktoré som v tomto projekte pracovala. Je to trochu viac ako desať rokov, odkedy som aktívne písal programy a trvalo niekoľko klepnutí, aby sa prach a hrdza dostali von. Prispievatelia na / r / LearnPython mi pomohli vyskočiť z výstupu API pre Weather Underground a študovali, ako sa Michael v spoločnosti Mitch Tech zaoberal zdrojom Gmail Atom, ktorý z neho robil analýzu pre LedBorg a študoval učiace moduly Pythonu v Code Academy. skvelý spôsob, ako zobrať základnú syntax a štruktúru jazyka, ktorý som nikdy predtým nepoužíval.