1Aug

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

Raspberry Pi je pekná kompaktná platforma 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éoznámenia.

Prečo to mám robiť?

Pretože je to zábava. Na rozdiel od mnohých našich tutoriálov, v ktorých je na začiatku zobrazená malá reklama, ktorá presne popisuje, 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 potrebuje napríklad indikátor okolitého dažďa v kuchyni, ale budovanie jednej je zábavné cvičenie a skvelá pripomienka, aby ste s vami mohli dať svoj dáždnik v potenciálne dažďových dňoch.

Č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 tutoriál: Príručka HTG pre Začíname s Raspberry Pi( a preto máte základy, ktoré sa vzťahujú na inštaláciu Rasbian na naše Raspberry Pi).

Ak chcete tento projekt robiť s rozpočtom, môžeme s istotou povedať, že najnovší model Raspberry Pi je pre túto prácu významným nadbytkom a my by sme vás povzbudili, aby ste vyfúkli prach zo starého Raspberry Pi, ktorý mátestrčil do skrine 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ť nasledovné:

  • 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 Vymazať malý malinový puzdro Pi kompatibilný s vašim konkrétnym Pi modelom, ako je tento prípad Raspberry Pi 1 Model B.

Poznámka: Číry / matný prípad Pi je úplne voliteľný, ale ak v súčasnosti používate nepriehľadné puzdro, váš LED indikátor bude skrytý dovnútra. Budete musieť vyrezať dieru vo svojom prípade a nechať svetlo vypnúť alebo použiť predlžovací kábel GPIO s rozbalenou súpravou - ako je táto od Adafruit Industries - na priviazanie LedBorg k vášmu Raspberry Pi. Pri použití odpojovacieho kábla pridáte asi 8 dolárov na náklady projektu, ponúka väčší potenciál pre prispôsobenie konečného produktu tým, že ľahšie umiestnite LED do vnútra alebo pod niečo, čo chcete osvetliť.

Inštalácia prístroja LedBorg

Aj keď by ste si mohli určite vybudovať úplne od začiatku LED indikátor( a vyhľadávací nástroj zistí množstvo ľudí, ktorí tak urobili) organizácia Piborg vyrába taký kompaktný a lacný LED modul, LedBorg, že sme nemohli odolať jeho použitiu ako základ pre náš projekt indikátora LED maliny Pi.

Inštalácia modulu je okamžitá, pretože je navrhnutá tak, aby priamo zapadla na piny GPIO na Pi. Najprv 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 Piprekrývajúca sa časť LedBorg visiaceho nad doskou 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 palubných LED indikátorov( vedľa portov USB), najmä ak používate jasný prípad. Nechcete, aby bolo mätúce čítanie indikátora LedBorg, pretože indikátory napájania a siete sú také jasné.

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

Akonáhle máte nainštalovaný LedBorg a voliteľne zakryté LED indikátory Pi s elektrickou páskou, je čas vrátiť prípad späť.Spustite svoj Pi pred tým, než sa presuniete do ďalšej fázy tutoriálu.

Inštalácia softvéru LedBorg

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

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

Ak vaša Raspberry Pi doska nemá žiadne 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. Taktiež potrebujete poznať jadroverziu vašej Rasbiovej inštalácie. Otvorte terminál a zadajte nasledujúci príkaz, aby ste skontrolovali:

uname -r

Po získaní čísla revízie a čísla 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, aby sme získali 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
rozbaliť 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 pracovnej ploche Raspbian uvidíte ikonu obálky GUI:

Kliknutím na ikonu LedBorg spustite balík GUI.Budete sa zaobchádzať s rozhraním pre výber farieb, napríklad takto:

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á to 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 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,

Tu je v sekcii Režim Demo, že môžete tiež zmeniť svoj LedBorg na prvý z mnohých indikátorov. Výberom CPU v sekcii 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žívania 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" & gt;/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šou, pretože modrý kanál je teraz na 100% výstupe. Zmeňte hodnotu na hodnotu 202 a kombinujte červené a modré farby na plný výkon, aby ste získali purpurovú farbu.

Teraz, keď vieme, ako manuálne manipulovať s LED, pozrite sa na použitie skriptov na to, aby sme LED diódu zmenili z jednoduchého svetla na aktuálny indikátor.

Konfigurácia vášho LedBorg ako indikátora 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 čítali možnosť dažďa na deň a potom prepnúť LED z vypnutého do jasne modrej na indikáciu predpovedaného dažďa.

Najprv musíme získať prístupový kľúč API pre Weather Underground. Pre osobnú potrebu a malé rozvojové projekty je API zadarmo. 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á adresa URL je:

http: //api.wunderground.com/api/ KĽÚČ API /forecast/q/STATE/ CITY.json

Môžete vytvoriť predpoveď pre akékoľvek mesto USA zadaním kľúča API, dvojpísmenového kódu štátu a názvu mesta z adresy URL, ktorú ste vytiahli z vášho počasiaVýsledky podzemného vyhľadávania.

Po zadaní adresy API s kľúčom API a štátom / mestom môžete upraviť nasledujúci Python skript vytvorením nového textového dokumentu na vašom Pi pomocou Leafpadu a vkladaním nasledujúceho kódu do neho:

z urllib2 import urlopen
import json

req = urlopen( 'http: //api.wunderground.com/api/ KĽÚČ API /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( parsed_json ['prognóza'] ['txt_forecast'] [[0] ['pop'])

# Toto je hodnota ladenia.
# Upravte hash a zmeňte
# celé číslo na 0-100 na testovanie
# LED reakcie.

# pop = 0

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

# Predvolené nastavenie je zapnúť LED
# pre každú dážď nad 20%.Hodnotu
# môžete nastaviť v prípade "if pop> 20:" podľa želania.

if pop & gt;20:
LedBorg = otvorený( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
print( 'Rain!')
else:
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 napíšte nasledujúci príkaz:

python wunderground.py

Ak ste správne zadali kľúč API a kódy stavu / mesta, mali by 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ť rozsvietenie LED, 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 dopamínovú fixáciu, ktorá prichádza s videním nového e-mailu v doručenej pošte? V tejto časti tutoriálu vám ukážeme, ako používať LedBorg ako nový ukazovateľ služby Gmail. Rovnako ako v poslednej dobe budeme kombinovať externý vstup( v tomto prípade zdroj údajov 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 do editora nasledujúci text. 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ť.

importparserser

# Zadajte svoje používateľské meno v službe Gmail
# a heslo. Nezadávajte časť
# @ gmail.com
# vaše používateľské meno.

username = "username"
heslo = "heslo"

mail = int( feedparser.parse( "https: //" + username + ":"] [" fullcount "])

# Nasledujúce je hodnota ladenia.
# Upravte hash a zmeňte
# celé číslo na 0 alebo 1 na testovanie
# LED reakcie.

# mail = 0

ak je poštou & gt;0:
LedBorg = otvorené( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
print( 'Mail!')
else:
LedBorg =w ')
LedBorg.write( ' 000 ')
del LedBorg
tlač( ' Žiadna pošta! ')

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 Gmail, LED dióda sa zmení na zelenú a dostanete takú odpoveď:

Ak máte vo svojej doručenej pošte v Gmailu svoje e-maily, vaše LedBorgbude vyzerať takto:

Rovnako ako skript dážď kontroly, sme zahrnuli ladenie 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.

Hop do nasledujúcej časti tutoriálu, aby ste skript Gmail spustili v rozvrhu.

Nastavenie úlohy Cron na spustenie skriptu

Teraz, keď máme dva skripty, s ktorými budeme môcť hrať, musíme nastaviť úlohu cron, 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 na našich predchádzajúcich experimentoch. Na typ terminálu:

echo "000" & gt;/dev/ ledborg

Zatiaľ čo 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

Otvorí sa tabuľka Raspbian cron v textovom editore Nano. Pomocou klávesov so šípkami prejdite dole dole. Toto je miesto, kde nastavíme opakovanú prácu cron pre naše skripty Pythonu.

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

* / 5 * * * * 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 * * * *", nastavuje 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 trochu príliš agresívne - ale ak sa snažíte držať na vrchu vášho e-mailu, je to príliš dlhá rozpätieoznámenia. Ak nastavujete rozvrh pre notifikačný skript služby Gmail, zadajte nasledujúci riadok v tabuľke cron:

* / 1 * * * * python /home/pi/ wunderground.py

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

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 ho zmeniť na premennú vo vašom Python skriptovom akciovom trhu, počty peľov, Twitter sa spomína, ak je preň API, môžete ho zmeniť na okolitý LED indikátor.

Nakoniec chcem poďakovať všetkým veľkým zdrojom, ktoré som na 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 v programe /r/ LearnPython mi pomohli vyťažiť výstup API pre aplikáciu Weather Underground a študovali, ako sa Michael v spoločnosti Mitch Tech zaoberal zdrojom Gmail Atom, ktorý z nej urobil analýzu pre zariadenie LedBorg a štúdium modulov učenia Python v Code Academy bolo skveléaby som získal základnú syntax a štruktúru jazyka, ktorý som nikdy predtým nepoužíval.