1Aug
Raspberry Pi face o platforma compacte placuta pentru a atasa un indicator luminos pentru toate tipurile de proiecte - notificari meteorologice, emailuri noi, etc. Cititi-va cum va aratam cum sa conectati un modul LED la Pi si sa configurati catevanotificări.
De ce vreau să fac asta?
Pentru că este distractiv. Spre deosebire de multe dintre tutorialele noastre, în care includem un mic blur în partea superioară care conturează exact ce beneficii veți obține din proiect, blurbul este destul de scurt în acest caz, deoarece beneficiul este pur și simplu distracția.
Raspberry Pi este un dispozitiv perfect pentru a juca cu, experimenta cu electronica, si invata cateva programari. Nimeni nu are nevoie de un indicator de ploaie în bucătăria lor, de exemplu, dar construirea unuia este un exercițiu distractiv și un memento minunat pentru a vă aduce umbrela cu tine în zilele potențial de furtună.
Ce am nevoie?
Pentru a urma, împreună cu tutorialul, veți avea nevoie de câteva lucruri.În primul rând, presupunem că ați urmat deja tutorialul nostru anterior: Ghidul HTG pentru a începe cu Raspberry Pi( și, prin urmare, aveți la bază principiile acoperite până la instalarea Rasbian pe Raspberry Pi).
Dacă sunteți în căutarea de a face acest proiect pe un buget, vă putem spune cu încredere că cel mai nou model Raspberry Pi este o depășire semnificativă a locului de muncă și vă încurajăm să aruncați praful de pe un vechi Raspberry Pi pe care l-strâns în dulap sau ridica un ieftin folosit de pe eBay sau ceva asemănător. Bugetul înțelept de lungă durată în dinte o Pi Z1 modelul A sau modelul B lovit de pe eBay pentru $ 10-15 este o potrivire perfectă pentru acest proiect peste achiziționarea unei noi generații noi de $ 35 curent Pi.
Pe lângă faptul că aveți o unitate funcțională Pi cu Raspbian instalată pe ea, veți avea nevoie de următoarele lucruri: Modulul
- 1 LedBorg( ~ $ 5.00, cu livrare 4 dolari din Marea Britanie în SUA, funcționează cu toate modelele Raspberry Pi).
- 1 Cutie de zmeură Clear Pi, compatibilă cu modelul dvs. Pi particular, cum ar fi acest caz de Raspberry Pi 1 Model B.
Notă: Cazul clar / matat Pi este în întregime opțional, dar dacă utilizați în prezent un caz opac, atunci indicatorul dvs. LED va fi ascuns înăuntru. Veți avea nevoie fie să tăiați o gaură în cazul dvs. pentru a lăsa luminile sau să utilizați un cablu prelungitor GPIO cu un set de breakout-cum ar fi acesta de la Adafruit Industries - pentru a lega LedBorg-ul dvs. de Raspberry Pi.În timp ce utilizați cablul de breakout adaugă aproximativ 8 dolari pe cheltuiala proiectului, acesta oferă un potențial mai mare pentru personalizarea produsului final prin faptul că puteți amplasa mai ușor LED-ul în interiorul lucrurilor sau sub ceva ce doriți să iluminați.
Instalarea dispozitivului LedBorg
În timp ce vă puteți construi cu siguranță un indicator LED complet( de la o mașină de căutare), organizația Piborg produce un modul LED compact și ieftin, LedBorg, că nu am putut rezista utilizării acesteia ca bază pentru proiectul indicelui nostru LED de Raspberry Pi.
Instalarea modulului este un snap așa cum este proiectat să se potrivească direct peste pinii GPIO de pe Pi.În primul rând, opriți-vă Pi și deschideți carcasa.
Cea mai importantă parte a procesului de instalare este aceea că orientați modulul astfel încât pictograma LedBorg să fie cea mai apropiată de modulul RCA de pe placa Raspberry Pi( și astfel marginea LedBorg este la același nivel cu marginile plăcii Pi cuo parte din LedBorg atârnând peste placa Pi și nu pe margine).Vedeți fotografia de mai sus.
În timp ce aveți placa Pi deschisă, acum ar fi un timp excelent pentru a acoperi indicatoarele LED de la bord( lângă porturile USB), mai ales dacă utilizați un caz clar. Nu doriți să fie confuz pentru a vă citi indicatorul LedBorg deoarece indicatoarele de alimentare și de rețea sunt atât de luminoase.
Ne-am acoperit cu un strat de bandă electrică albă.Acest lucru le-a diminuat suficient, pentru ca noi să le mai putem face referire la ele, dar ele erau atât de mult mai luminoase decât LedBorg, încât nu mai era distragătoare.
Odată ce ați instalat LedBorg și ați acoperit opțional indicatorii LED ai lui Pi cu bandă electrică, este timpul să închideți carcasa înapoi. Porniți-vă Pi înainte de a trece la următoarea fază a tutorialului.
Instalarea software-ului LedBorg
PiBorg oferă un pachet software excelent pentru LedBorg care include atât un controler GUI, cât și drivere pentru a accesa LedBorg din linia de comandă.
Înainte de a începe, trebuie să vă asigurați că luați pachetul potrivit pentru versiunea dvs. de Rasbian și numărul de revizie al plăcii dvs. Raspberry Pi.
Dacă placa dvs. de Raspberry Pi nu are găuri de montaj, este Revizia 1. Dacă fructul dvs. de Raspberry Pi are găuri de montare( localizate de porturile USB și între portul de putere și portul HDMI), atunci este Revizia 2. De asemenea, trebuie să cunoașteți kernelulversiunea instalării dvs. Rasbian. Deschideți terminalul și introduceți următoarea comandă pentru a verifica:
uname -r
După ce ai numărul Revizie și numărul de kernel, poți accesa secțiunea Packages aici pentru a apuca link-ul pentru pachetul tău.În cazul nostru, folosim o placă Revizia 1 cu kernelul 3.6.11, astfel încât să luăm fișierul raspbian-2013-02-09-rev1.zip.
Pentru a instala toate bunatatile trebuie sa deschidem terminalul de pe Pi.apoi introduceți următoarele comenzi pentru a instala pachetul LedBorg.
Notă: Trebuie să înlocuiți adresa URL în a treia comandă cu adresa URL a pachetului pentru combinația de bord / kernel.
mkdir ~ / ledborg-setup
cd ~ / ledborg-setup
wget -O setup.zip http: //www.piborg.org/downloads/ledborg/ raspbian-2013-02-09-rev1.zip
dezarhiva setup.zip
chmod + x install.sh
. /install.sh
În acest moment aveți acum pachetul GUI pentru driverele LedBorg și driverele instalate. Pe desktop-ul Raspbian veți vedea o pictogramă pentru pachetul GUI:
Mergeți mai departe și faceți clic pe pictograma LedBorg pentru a lansa pachetul GUI.Veți fi tratat la interfața de selectare a culorilor astfel:
Acum este momentul potrivit pentru a vă asigura că modulul este funcțional. Alegeți orice culoare, cu excepția negru, pentru ao încerca. Vom încerca să alegem câteva culori:
Arată bine! Este luminos și plasticul maturat al casetei pe care l-am comandat pentru proiect oferă o difuzie moderată.Dacă doriți să jucați cu modulul LED mai mult înainte de a vă deplasa, faceți clic pe Modul demo:
În modul demo puteți să navigați prin toate culorile la diferite viteze, să verificați ieșirea ridicată / scăzută și altfel să puneți modulul LED prin pași.
Este aici, în secțiunea Demo Mode, că puteți transforma LedBorg-ul dvs. în primul dintre numeroși indicatori. Prin selectarea procesorului în secțiunea Culori, LED-ul va începe să se schimbe de la verde la galben la roșu pentru a indica încărcarea procesorului ARM al lui Raspberry Pi. Vă sugerăm să schimbați Viteza la Slow în timp ce vă aflați la ea - Actualizează rapid LED-ul prea repede și face ca indicatorul CPU să distragă atenția în loc de util.
Pe lângă utilizarea interfeței GUI pentru a selecta culorile, puteți alege culorile de la terminal utilizând valorile RGB.Deschideți terminalul și introduceți următoarea comandă pentru a dezactiva LED-ul:
echo "000" & gt;/dev/ ledborg
Felul în care LedBorg se ocupă de valorile RGB este că 0 înseamnă că canalul este oprit, 1 înseamnă că canalul este jumătate de putere, iar 2 înseamnă că canalul este plin. De exemplu, 001 ar seta canalul roșu la 0%, canalul verde la 0% și canalul albastru la 50% putere.
Modificați valoarea la 002, iar ieșirea LED-ului rămâne albastră, dar devine mai luminoasă deoarece canalul albastru este acum la ieșire de 100%.Schimbați valoarea la 202, iar Roșul și Albastrul se combină la putere maximă pentru a obține o culoare purpurie.
Acum, când știm cum să manipulăm LED-ul manual, să analizăm folosirea de scripturi pentru a transforma LED-ul nostru de la o lumină simplă la un indicator real.
Configurarea LedBorg-ului dvs. ca Indicator de ploaie
Pentru această porțiune a tutorialului, vom combina mai multe lucruri împreună pentru a transforma modulul LedBorg LED într-un indicator de ploaie bazat pe prognoza meteo pentru locația noastră.Vom folosi un script Python pentru a apela un API meteo, care va citi, la rândul său, șansa de ploaie pentru a doua zi, apoi a comuta LED-ul de la off la albastru luminos pentru a indica ploaia prognozată.
În primul rând, trebuie să obținem o cheie de acces API pentru Weather Underground. Pentru aplicații personale și proiecte mici de dezvoltare, API este gratuit. Accesați pagina de înscriere API Meteo aici și înscrieți-vă pentru o cheie API.
După ce ai cheia API, vizitează Weather Underground și căutați orașul pe care vrei să-l monitorizezi.În cazul nostru, vom monitoriza San Fransisco, CA.Adresa URL a paginii cu previziuni pentru San Fransisco este:
http: //www.wunderground.com/US/CA/ San_Francisco.html
Partea importantă pentru scopurile noastre este ultima parte a URL-ului: /CA/ San_Francisco.html. O vom folosi pentru a edita adresa URL de prognoză pentru instrumentul API.URL-ul de bază este:
http: //api.wunderground.com/api/ API KEY /forecast/q/STATE/ CITY.json
Puteți genera prognoza pentru orice oraș din SUA introducând cheia dvs. API, codul de stare de două litere și numele orașului de la adresa URL pe care ați tras-o din vremea dvs. Rezultatele căutării subterane.
Odată ce ați introdus adresa API cu cheia API și cu statul / orașul introdus, puteți să editați următorul script Python creând un nou document text pe fișierul dvs. Pi folosind Leafpad și inserând următorul cod în el:
de la urllib2 import urlopen
import json
req = urlopen( 'http: //api.wunderground.com/api/ API KEY /forecast/q/STATE/ CITY.json')
parsed_json = json.load( req)
pop = int( parsed_json ['prognoza'] ['txt_forecast'] [[0] ['pop'])
# Următoarea este o valoare de depanare.
# Editați hașul și modificați
# întregul la 0-100 pentru a testa
# răspunsul LED.
# pop = 0
print 'Șansa curentă de precipitații este{ }.'( Format)
# Setarea implicită este de a activa LED-ul
# pentru orice sansa de ploaie peste 20%.Aveți posibilitatea să ajustați valoarea
# în "dacă pop> 20:" după cum doriți.
dacă pop & gt;20:
LedBorg = deschis( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
print( 'Rain!')
alt:
LedBorg =w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Nu ploaie! ')
Salvați fișierul ca wunderground.py în directorul /home/pi/.Deschideți terminalul și tastați următoarea comandă:
python wunderground.py
Dacă ați introdus corect cheia dvs. API și codurile dvs. de stat / oraș, ar trebui să eliminați un răspuns care arată ca:
Dacă se prevede precipitații pentru zona dvs.ieșirea dvs. LedBorg ar trebui să arate astfel:
Acum, așteptând o zi ploioasă pentru a testa corect scenariul, ar fi plictisitor. Dacă nu există nici o șansă de ploaie în zona dvs. de azi și doriți să vedeți LED-ul aprins, editați scriptul wunderground.py și înlocuiți valoarea passthrough "pop = pop" în rândul 13 cu o valoare mai mare de 20, cum ar fi 60prognoza noastră a revenit. Nu uitați să schimbați linia înapoi la "pop = pop" când ați terminat.
Pasul final este de a seta o lucrare cron pentru a rula automat scriptul pe care tocmai l-am salvat la un interval regulat pentru a menține curentul indicator LED.Deoarece această sarcină este necesară atât pentru acest script, cât și pentru indicatorul de e-mail care urmează, vom include acoperirea unei activități cron după ce v-am arătat cum să configurați celălalt script.
Configurarea LedBorg-ului dvs. ca indicator Gmail
Cui nu-i place fixarea dopaminei care vine cu să vadă un email nou în căsuța de e-mail?În această parte a tutorialului vă vom arăta cum să utilizați LedBorg ca un nou indicator Gmail. La fel ca și ultima oară, vom combina o intrare externă( în acest caz un feed Atom în loc de un API) și un script simplu pentru a conduce LED-ul nostru.
Trebuie să extindem puțin funcționalitatea instalării Python, instalând FeedParser, un instrument de citire a feedului RSS / Atom Python. Deschideți terminalul și introduceți următoarea comandă:
sudo easy_install feedparser
Odată ce instalarea este finalizată, putem seta să lucrăm creând scriptul de verificare Gmail. Din nou, folosind Leafpad, lipiți următorul text în editor. Schimbați numele de utilizator și parola pentru a se potrivi cu numele de utilizator și parola contului Gmail pe care doriți să îl verificați.
importparserser
# Introduceți numele de utilizator Gmail
# și parola. Nu includeți
# porțiunea @ gmail.com a
# numele de utilizator.
username = "username"
parola = "parola"
mail = int( feedparser.parse "https: //" + username + ": + + password @@mail.google.com atomul /gmail/feed/""] [" fullcount "])
# Următoarea este o valoare de depanare.
# Editați hașul și schimbați
# întregul la 0 sau 1 pentru a testa
# răspunsul LED.
# mail = 0
dacă e-mail & gt;0
LedBorg = open( '
ledborg', 'w')
LedBorg.write( '020')
del LedBorg
print( 'Mail!')
alt:w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Nu e mail! ')
Salvați scriptul ca gmailcheck.py. Deschideți terminalul și tastați următoarea comandă:
python gmailcheck.py
Dacă aveți un e-mail așezat în inbox-ul Gmail, LED-ul va deveni verde și veți primi un răspuns ca acesta:
Dacă aveți e-mail în inbox-ul Gmail, LedBorgva arata asa:
La fel ca si scriptul de verificare a ploii, am inclus o valoare de depanare. Dacă nu aveți niciun e-mail nou, puteți să vă trimiteți un e-mail pentru a vă mări numărul de mesaje primite la 1 sau puteți modifica hash-ul comentariu și modificați linia de depanare la "mail = 1" pentru a testa scriptul. Nu uitați să reluați linia când ați terminat testarea.
Hop în secțiunea următoare a tutorialului pentru a seta scriptul Gmail să ruleze într-un program.
Configurarea unei activități Cron pentru a rula scriptul dvs.
Acum, când avem două scenarii cu care să jucăm, trebuie să organizăm o activitate cron pentru a le rula pe parcursul zilei pentru a menține indicatorul LED curent.
Primul lucru pe care dorim să-l facem este să dezactivați LED-ul dacă acesta se află în prezent în urma experimentelor noastre anterioare. La tipul de terminal:
echo "000" & gt;/dev/ ledborg
În timp ce vă aflați încă la linia de comandă, puteți deschide editorul cron. Dacă nu ați creat niciodată o activitate cron înainte, vă sugerăm să consultați ghidul nostru pentru al folosi aici. Acestea fiind spuse, vă vom trece prin stabilirea unui program de bază chiar aici.
La tipul de terminal:
sudo crontab -e
Aceasta va deschide tabelul cron Raspbian în editorul de text Nano. Utilizați tastele săgeți pentru a derula în jos până la partea de jos. Aici vom seta jobul cron recurent pentru scripturile noastre Python.
Dacă doriți să configurați scriptul de ploaie, introduceți următoarea linie în tabelul cron:
* / 5 * * * * python /home/pi/ wunderground.py
Apăsați CTRL + X pentru a ieși;selectați da pentru a salva și a suprascrie tabelul cron existent. Valoarea pe care am introdus-o în tabelul cron "* / 5 * * * *" stabilește scriptul să ruleze la fiecare 5 minute, pentru totdeauna.
La fiecare 5 minute este o perioadă fină de timp pentru un scenariu care verifică ploaia preconizată - ați putea chiar argumenta că este un pic prea agresiv - dar dacă încercați să păstrați în partea de sus a e-mailului dvs. este un timp prea lung pentrunotificare. Dacă setați programul pentru scriptul de notificare Gmail, introduceți următoarea linie în tabelul cron:
* / 1 * * * * python /home/pi/ wunderground.py
Această intrare rulează scriptul gmailcheck.py în fiecare minut pentru o viteză mult mai rapidăactualizare notificare.
Asta e tot ce este acolo! Puteți experimenta propriile dvs. scripturi Python prin ridicarea declarațiilor if / else din a noastră și încercându-le cu variabile noi. Dacă găsiți o sursă de intrare pentru date, o puteți transforma într-o variabilă în mediile de stocare pe scripturile Python, numărul de polen, Twitter menționează, dacă există un API pentru acesta, îl puteți transforma într-un indicator LED ambiental.
În cele din urmă, doresc să mulțumesc tuturor marilor resurse pe care le-am folosit pentru a lucra la acest proiect. A fost un pic mai mult de un deceniu de când scriam în mod activ programe și a fost nevoie de câteva lovituri pentru a obține praful și rugina. Contribuabilii de la /r/ LearnPython m-au ajutat să mă rănesc în ieșirea API pentru Weather Underground, studiind modul în care Michael de la Mitch Tech sa ocupat de feed-ul Gmail Atom, făcând parsarea lui pentru LedBorg ușor și studierea modulelor de învățare Python de la Code Academy a fost o maremodalitate de a ridica sintaxa de bază și structura unei limbi pe care nu l-am mai folosit până acum.