1Aug

Izgradite LED indikator s malom Pi( za e-poštu, vrijeme ili bilo što)

Raspberry Pi čini lijepu kompaktnu platformu za pričvršćivanje svjetla pokazivača za sve vrste projekata - vremenske obavijesti, nove e-poruke itd. Pročitajte kako vam pokazujemo kako spojiti LED modul s vašim Pi i postaviti neke osnovneobavijesti.

Zašto to želim učiniti?

Zato što je zabavno. Za razliku od mnogih naših tutorijalnih programa gdje ćemo uključiti i malo objašnjenje na vrhu koji ukazuje točno na koju korist ćete proizaći iz projekta, ovo je prilično kratko u ovom slučaju jer se korist jednostavno zabavlja.

Raspberry Pi savršen je uređaj za igranje, eksperimentiranje s elektronikom i naučiti neke programe. Nitko ne treba pokazivač ambijentalne kiše u svojoj kuhinji, na primjer, ali izgradnja je zabavna vježba i veliki podsjetnik da vaš kišobran donese sa sobom u potencijalno olujnim danima.

Što trebam?

Da biste pratili zajedno s tutorialom, trebat će vam nekoliko stvari. Prvo pretpostavljamo da ste već pratili naš prethodni vodič: HTG Vodič za početak korištenja maline Pi( i na taj način imate osnove pokriveno instaliranjem Rasbian na Raspberry Pi).

Ako želite izvršiti ovaj projekt na proračunu, s povjerenjem vam možemo reći da je najnoviji model Raspberry Pi značajan prekoračenje za taj posao i potaknemo vas da otpustite prašinu sa starog malina Pi koje ste dobiligurnut u ormar ili pokupiti jeftinu koristi jedan off eBay ili slično. Proračun s dugačakim zubima Raspberry Pi 1 Model A ili Model B snopom s eBaya za 10-15 dolara savršeno je prikladan za ovaj projekt nad kupnjom potpuno nove 35 dolara za sadašnju generaciju Pi.

Uz funkcionalnu PI jedinicu s Raspbian instaliranim na njoj trebate sljedeće:

  • 1 LedBorg modul( ~ $ 5.00 sa $ 4 isporukom iz Velike Britanije do SAD-a radi sa svim modelima Raspberry Pi).
  • 1 Clear Raspberry Pi Case kompatibilan s vašim Pi modelom kao što je ovaj slučaj Raspberry Pi 1 Model B.

Napomena: Prozračnjeni / zamrljani slučaj Pi je potpuno opcionalan, ali ako trenutno koristite neprozirnu kutiju, LED indikator će biti skriven unutra. Morat ćete ili izrezati rupu u svojem kućištu kako bi se osvijetlila ili upotrijebila GPIO produžni kabel s kitom za izbacivanje - poput ove tvrtke Adafruit Industries - da biste povezali LedBorg na svoj Raspberry Pi. Prilikom korištenja kabela za izbacivanje dodaje se oko 8 dolara na trošak projekta i nudi više potencijala za prilagodbu krajnjeg proizvoda jer možete lakše staviti LED unutar stvari ili pod nešto što želite osvijetliti.

Instaliranje LedBorg

Iako možete zasigurno izgraditi potpuno indikator LED indikatora( i traženje tražilice potaknut će puno ljudi koji su to učinili), organizacija Piborg proizvodi takav kompaktan i jeftin LED modul, LedBorg, da se nismo mogli oduprijeti korištenju kao osnovi našeg projekta LED indikatora maline Pi.

Instaliranje modula je ugriz kao što je dizajniran da se uklapa izravno preko GPIO igle na Pi. Prvo, iskopčajte Pi i otvorite slučaj.

Najvažniji dio instalacijskog postupka je usmjeravanje modula tako da je ikona LedBorg najbliža RCA modulu na ploči Raspberry Pi( i time je rub LedBorg-a ispiran s rubovima ploče Pi snadstojni dio LedBorg koji visi preko ploče Pi, a ne s ruba).Pogledajte fotografiju iznad.

Dok ste otvorili pločicu Pi, sada bi bilo izvrsno vrijeme za pokrivanje LED indikatora na vozilu( pored USB priključaka), pogotovo ako koristite jasan slučaj. Ne želite da bude zbunjujuće za čitanje vašeg LedBorg pokazatelja jer su svjetla indikatora napajanja i mreže tako svijetla.

Mi smo pokrivali našu sloju bijele električne trake. To ih je dovoljno dimmed da ih još uvijek možemo referencirati, ali su bili toliko slabiji od LedBorg da više nije zbunjujući.

Nakon što instalirate LedBorg i opcionalno pokrivate LED indikatore Pi s električnom vrpcom, vrijeme je da zatvorite slučaj. Pokrenite svoj Pi prije nego što se prebacite na sljedeću fazu tutoriala.

Instaliranje softvera LedBorg

PiBorg pruža veliki softverski paket za LedBorg koji uključuje i GUI kontroler kao i upravljačke programe za pristup LedBorgu iz naredbenog retka.

Prije nego što počnemo, morate se pobrinuti da uhvatite pravi paket za svoju verziju Rasbian i reviziju # svoje ploče za Raspberry Pi. Ako vaš Raspberry Pi ploča nema ugradne otvore, to je Revizija 1. Ako vaš Raspberry Pi ima ugradne otvore( nalazi se između USB priključaka i između napajanja i HDMI priključka) onda je to Revizija 2. Također morate znati kernelverziju vaše Rasbian instalacije. Otvorite terminal i unesite sljedeću naredbu da biste provjerili:

uname -r

Nakon što imate broj izmjene i broj kernela, ovdje možete posjetiti odjeljak Paketi da biste preuzeli vezu za svoj paket. U našem slučaju koristimo ploču Revision 1 s kernelom 3.6.11 kako bismo iskoristili datoteku raspbian-2013-02-09-rev1.zip.

Da bismo instalirali sve pogodnosti, moramo otvoriti terminal na Pi.a zatim unesite sljedeće naredbe za instalaciju LedBorg paketa.

Napomena: Morate zamijeniti URL u trećoj naredbi s URL-om paketa za kombinaciju ploče / kernela.

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

U ovom trenutku sada imate GUI zamotajte za LedBorg vozače i sami vozači instalirali. Na radnoj površini Raspifa vidjet ćete ikonu za GUI omot:

Idite naprijed i kliknite ikonu LedBorg kako biste pokrenuli GUI paket. Bit ćete tretirani na sučelje odabira boja kao što je to:

Sada je savršeno vrijeme da provjerite je li vaš modul funkcionalan. Izaberite bilo koju boju, osim za crnu, da biste ga isprobali. Mi ćemo ga testirati odabirom nekoliko boja:

Izgleda dobro! Svijetle, a matirana plastika slučaja koju smo naručili za projekt nudi umjerenu difuziju. Ako želite igrati sa LED modulom prije nego što krenete dalje, kliknite demo način rada:

U demo načinu rada možete ciklusati sve boje različitim brzinama, provjeriti visoku / nisku razinu i na drugi način staviti LED modul kroz korake,

Ovdje je u sekciji Demo Mode da možete pretvoriti svoj LedBorg u prvi od mnogih pokazatelja. Odabirom CPU-a u odjeljku Boja LED će se početi mijenjati od zelene do žute do crvene da bi označio opterećenje ARM procesora Raspberry Pi. Preporučujemo da promijenite brzinu na usporavanje dok ste na njemu - Brzo ažurira LED prebrzo i čini indikator CPU-a omamljujući umjesto korisnim.

Osim korištenja GUI sučelja za odabir boja, možete odabrati boje s terminala pomoću RGB vrijednosti. Otvorite terminal i unesite sljedeću naredbu za isključivanje LED diode:

echo "000" & gt;/dev/ ledborg

Način na koji LedBorg obrađuje RGB vrijednosti je da 0 znači da je kanal isključen, 1 znači da je kanal pola snage, a 2 znači da je kanal pun snage. Tako bi na primjer 001 postavio Crveni kanal na 0%, zeleni kanal na 0% i plavi kanal s 50% snage.

Promijenite vrijednost na 002 i LED izlaz ostaje plava, ali postaje svjetliji jer plavi kanal sada ima 100% izlaza. Promijenite vrijednost na 202 i Crveno i Plavo kombinirano s punom snagom da biste napravili magenta boju.

Sada kad znamo kako ručno upravljati LED-om, pogledajmo upotrebu skripata kako bismo našu LED diodu pretvorili iz jednostavnog svjetla na stvarni pokazatelj.

Konfiguriranje vašeg LedBorg kao indikatora kiše

Za ovaj dio udžbenika ćemo kombinirati nekoliko stvari kako bismo naš LED modul LedBorg pretvorili u pokazatelj kiše na temelju vremenske prognoze za našu lokaciju. Koristit ćemo Python skriptu kako bismo nazvali vremensku API koja će zauzvrat pročitati vjerojatnost kiše za taj dan, a zatim prebaciti LED od off do svijetlo plave da bi naznačio prognozu kiše.

Prvo, trebamo dobiti API pristupni ključ za Weather Underground. Za osobnu upotrebu i mali razvojni projekti API je besplatan. Posjetite stranicu za registraciju Vrijeme API-ja i prijavite se za API ključ.

Kada imate API ključ, posjetite Weather Underground i potražite grad koji želite pratiti. U našem slučaju ćemo pratiti San Fransisku, CA.URL za predviđanje stranice San Fransisona je:

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

Važan dio naših svrha posljednji je dio URL-a: /CA/ San_Francisco.html. Koristit ćemo to za uređivanje URL predviđanja API alata. Osnovni URL je:

http: //api.wunderground.com/api/ VAŠ KLJUČNI API /forecast/q/STATE/ CITY.json

Možete generirati prognozu za bilo koji grad u SAD-u unošenjem API ključa, dvoslovnog državnog koda i naziva grada iz URL-a koji ste izdvojili s vremenskog razdobljaPodzemni rezultati pretraživanja.

Nakon što ste unijeli URL API-ja s vašim API ključem i državom / gradom, tada možete urediti sljedeću Python skriptu stvaranjem novog tekstualnog dokumenta na svojem Pi pomoću Leafpad i zalijepite sljedeći kôd:

iz urllib2 uvoz urlopen
uvoz json

pop = int( parsed_json ['forecast'] ['txt_forecast'] ['forecastday']
parsed_json = json.load( req)
req = urlopen( 'http: //api.wunderground.com/api/ VAŠ API KEY /forecast/q/STATE/ CITY.json'[0] ['pop'])

# Slijedi vrijednost ispravljanja pogrešaka.
# Obrišite hash i promijenite
# cijeli broj na 0-100 da biste testirali
# LED odgovor.

# Tvornička postavka je uključivanje LED diode
# za bilo koju kišu od 20%.Možete podesiti
# vrijednost u "ako je pop> 20:" kako želite.

ako pop & gt;20:
LedBorg = otvoren( '/dev/ ledborg', 'w')
LedBorg.write( '002')
od LedBorg
ispisw ')
LedBorg.write( ' 000 ')
del LedBorg
ispis( ' Nema kiše! ')

Spremite datoteku kao wunderground.py u /home/pi/ direktoriju. Otvorite terminal i upišite sljedeću naredbu:

python wunderground.py

Ako ste ispravno unijeli svoj API ključ i države / gradske kôdove, trebao bi povratiti odgovor koji izgleda kao:

Ako je predviđeno oborina za vašu zonuvaš LedBorg izlaz bi trebao izgledati ovako:

Sada čekajući kišni dan da ispravno ispita skripta bi bila zamorna. Ako danas nema šanse za kišu na vašem području i želite li LED zasvijetliti, uredite skriptu wunderground.py i zamijenite vrijednost prozora "pop = pop" u retku 13 s vrijednošću većom od 20, kao što je 60da je naša prognoza vraćena. Ne zaboravite vratiti retku na "pop = pop" kada završite.

Posljednji korak je da postavite cron posao za automatsko pokretanje skripte koju smo upravo spremili u redovitom intervalu kako bi LED indikator bio trenutni. Budući da je ovaj zadatak neophodan i za ovu skriptu i za indikator e-pošte koji slijedi, obuhvatit ćemo postavljanje zadatka za cron nakon što vam pokazujemo kako postaviti drugu skriptu.

Konfiguriranje vašeg LedBorg kao indikator za Gmail

Tko ne sviđa popravak dopamina koji dolazi s vidljivom novom porukom e-pošte u pristigloj pošti? U ovom dijelu udžbenika prikazat ćemo vam kako koristiti LedBorg kao novi pokazatelj Gmail. Baš kao i posljednji put, kombinirat ćemo vanjski unos( u ovom slučaju Atom feed umjesto API-ja) i jednostavnu skriptu za pokretanje naše LED diode.

Moramo malo proširiti funkcionalnost naše instalacije Python-a instaliranjem FeedParser, alata za čitanje feeda Python RSS / Atom. Otvorite terminal i unesite sljedeću naredbu:

sudo easy_install feedparser

Nakon dovršetka instalacije možemo postaviti da rade na izradi skripte za provjeru usluge Gmail. Opet, koristeći Leafpad, zalijepite sljedeći tekst u urednik. Promijenite korisničko ime i zaporku kako biste se podudarali s korisničkim imenom i zaporkom Gmail računa koji želite provjeriti.

uvoz feedparser

# Unesite svoje Gmail korisničko ime
# i zaporku. Nemojte uključiti
# dio @ gmail.com
# svoje korisničko ime.

username = "korisničko ime"
password = "lozinka"

mail = int( feedparser.parse( "https: //" + korisničko ime + ":" + lozinka "@ mail.google.com /gmail/feed/ atom") ["feed"] [" fullcount "])

# Slijedi vrijednost pogrešaka.
# Ispravi hash i promijeni
# cijeli broj na 0 ili 1 za testiranje
# LED odgovora.

# mail = 0

ako je pošta & gt;
ispis( 'Mail!')
drugo:
LedBorg = otvoren( '/dev/ ledborg', '
'w ')
LedBorg.write( ' 000 ')
od LedBorg
ispis( ' Bez pošte! ')

Spremite skriptu kao gmailcheck.py. Otvorite terminal i upišite sljedeću naredbu:

python gmailcheck.py

Ako imate e-poštu koja sjedi u pretincu pristigle pošte u Gmailu, LED će postati zelena i dobit ćete odgovor kao takav:

Ako imate poštu u Gmailu Inbox, vaš LedBorgizgledat će tako:

Baš kao i skripta za provjeru kiše, uključili smo vrijednost za uklanjanje pogrešaka. Ako nemate novu e-poštu, možete se poslati e-poštom kako biste povećali broj dolaznih pretinaca na 1 ili biste mogli urediti isječak komentara i promijeniti redak za uklanjanje pogrešaka u "mail = 1" kako biste testirali skriptu. Ne zaboravite vratiti liniju kada završite s testiranjem.

Uđite u sljedeći dio udžbenika da biste postavili skriptu za Gmail na raspored.

Postavljanje zadatka koji je pokrenut za pokretanje skripte

Sada kada imamo dvije skripte za igranje, moramo postaviti kronski posao kako bismo ih pokrenuli tijekom dana kako bi LED indikator bio trenutni.

Prvo što želimo učiniti je isključiti LED ako je trenutno na našim prethodnim eksperimentima. Na vrsti terminala:

echo "000" & gt;/dev/ ledborg

Dok ste još uvijek u naredbenom retku, možete otvoriti cron editor. Ako nikad prije niste postavili posao, predlažemo da provjerite naš vodič za upotrebu ovdje. To je rekao, mi ćemo vas prošetati postavljanjem osnovnog rasporeda upravo ovdje.

Na terminalu tipa:

sudo crontab -e

To će otvoriti Raspbian cron tablicu u Nano uređivaču teksta. Pomoću tipki sa strelicama pomaknite se prema dolje do samog dna. Ovo je mjesto gdje ćemo postaviti ponavljajući posao cron za naše Python skripte.

Ako želite postaviti skriptu za kišu, unesite sljedeću retku u tablicu cron:

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

Pritisnite CTRL + X za izlaz;odaberite da za spremanje i prebrisanje postojećeg stola za cron. Vrijednost koju unesemo u tablicu "* / 5 * * * *" postavlja skriptu da se pokreće svaka 5 minuta, zauvijek.

Svakih 5 minuta je lijep raspon vremena za skriptu koja provjerava predviđenu kišu - moglo bi se čak tvrditi da je to previše agresivno - ali ako pokušavate zadržati vrhunac e-pošte, to je malo predugačak raspon zaobavijest. Ako postavljate raspored za skriptu obavijesti za Gmail unesite sljedeću liniju u tablici cron:

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

Ovaj unos svake minute pokreće gmailcheck.py skriptu mnogo bržemažuriranje obavijesti.

To je sve što je u njemu! Možete eksperimentirati s vlastitim Python skriptima uklanjanjem if / other izjava iz naših i isprobavajući ih s potpuno nove varijable. Ako možete pronaći ulazni izvor za podatke, možete ga pretvoriti u varijablu u vašem Pythonovom scenariju tržišta dionica, broj polena, Twitter spominje, ako postoji API za njega možete ga pretvoriti u ambijentalni LED indikator.

Konačno, želim zahvaljivati ​​svim velikim resursima koje sam koristio za ovaj projekt. Prošlo je nešto više od desetljeća otkako sam aktivno pisala programe i trebalo je nekoliko kucanja da bi dobili prašinu i hrđu. Suradnici na /r/ LearnPythonu pomogli su mi da se zavaravam u API izlazu za Weather Underground, proučavajući kako je Michael na Mitch Techu obrađivao feed s usluge Gmail Atom koji je napravio analizu za LedBorg i studiranje Pythonovih modula za učenje kod Code Academy bio je izvrstannačin da pokupim osnovnu sintaksu i strukturu jezika koji nikada prije nisam koristio.