If-Koubou

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

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

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 na Pi i postaviti neke osnovne obavijesti ,

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 potrebe primjerice, pokazatelj ambijentalne kiše u svojoj kuhinji, no izgradnja je zabavna vježba i veliki podsjetnik da vam donese kišobran s vama u potencijalno olujnim danima.

Što trebam?

Da biste slijedili 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 Rasbiana 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, a potaknuli biste nas da otpustite prašinu sa starog malina Pi koje ste dobili u ormaru ili pokupiti jeftinu upotrebu jednog eBaya 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 jedinicu Pi s Raspbian instaliranim na njoj trebate sljedeće:

  • 1 LedBorg modul (~ 5,00 $ s 4 dolara isporučuje se od UK do SAD, radi sa svim modelima Raspberry Pi).
  • 1 Clear Raspberry Pi Case kompatibilan s vašim Pi modelom poput ovog modela Raspberry Pi 1 Model B.

Bilješka: Prozirni / 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 biste se mogli zasigurno izgraditi potpuno indikator LED indikatora (a traženje tražilica potaknut će puno ljudi koji su to učinili), organizacija Piborg proizvodi takav kompaktan i jeftin LED modul, LedBorg, t oduprijeti se tome da ga koristite kao temelj 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 da usmjeravate modul tako da je ikona LedBorg najbliža RCA modulu na ploči Raspberry Pi (i time je rub LedBorg-a isprepleten s rubovima ploče Pi s prekomjernim 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.

Naše smo pokrivale slojem 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 Pi's LED indikatore električnom trakom, 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 započnemo, morate se pobrinuti da uhvatite pravi paket za svoju verziju Rasbian i reviziju # svoje ploče s malinama.

Ako vaša lampa Raspberry Pi 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), to je Revizija 2. Također morate znati verziju kernela vašeg Rasbian instalacije. Otvorite terminal i unesite sljedeću naredbu da biste provjerili:

uname -r

Nakon što dobijete 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.

Bilješka: 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
raspakirajte setup.zip
chmod + x install.sh
./install.sh

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

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. Testirat ćemo ga 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 modu možete kružiti kroz sve boje pri različitim brzinama, provjeriti visoku / nisku razinu i na drugi način staviti LED modul kroz korak.

Ovdje je u odjeljku Demo Mode da i LedBorg možete pretvoriti 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 da isključite LED:

echo "000"> / 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 pomoću skripti kako bismo naš LED diode pretvorili iz jednostavnog svjetla na stvarni pokazatelj.

Konfiguriranje vašeg LedBorg kao indikatora kiše

Za ovaj dio udžbenika ćemo kombinirati nekoliko stvari zajedno 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č.

Nakon što dobijete 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 je posljednji 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/YOUR API KEY / forecast / q / STATE / CITY.json

Možete generirati predviđanje 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 iz rezultatima pretraživanja podzemnih pretraga.

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 ga u nju:

od urllib2 uvoz urlopen
uvoz json

req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / prognoza / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['prognoza'] ['txt_forecast'] ['prognoza dana'] [0] ['pop'])

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

# pop = 0

ispis 'Trenutna šansa oborine je .'. format (pop)

# Zadana postavka je uključiti LED
# za bilo kakvu kišu iznad 20%. Možete prilagoditi
# vrijednost u "ako pop> 20:" kako želite.

ako pop> 20:
LedBorg = otvoren ('/ dev / ledborg', 'w')
LedBorg.write ( '002')
del LedBorg
print ('Rain!')
drugo:
LedBorg = otvoren ('/ dev / ledborg', 'w')
LedBorg.write ( '000')
del LedBorg
print ('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 pravilno unijeli svoj API ključ i države / gradske kôdove, trebao bi povratiti odgovor koji izgleda kao:

Ako se predviđa oborina za vašu zonu, vaš LedBorg izlaz trebao bi izgledati ovako:

Sada čekajući kišni dan da ispravno ispita pismo bi bilo dosadno. 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 60 da je naša prognoza vraćena. Ne zaboravite vratiti retku na "pop = pop" kada završite.

Posljednji korak je da postavimo cron posao za automatsko pokretanje skripte koju smo upravo spremili na 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 pokazatelja usluge Gmail

Tko ne sviđa popravak dopamina koji dolazi s vidljivom novom e-poštom 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 ulaz (u ovom slučaju Atom feed umjesto API-ja) i jednostavnu skriptu za vožnju našeg LED-a.

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

sudo easy_install feedparser

Po dovršetku instalacije možemo postaviti da radimo 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 feedparsera

# Unesite svoje korisničko ime za Gmail
# i zaporka. Nemoj uključiti
# dio @ gmail.com
# vaše korisničko ime.

korisničko ime = "korisničko ime"
lozinka = "lozinka"

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

# Slijedi vrijednost ispravljanja pogrešaka.
# Obrišite hash i promijenite
# cijeli broj na 0 ili 1 za testiranje
# LED odgovor.

# mail = 0

ako je mail> 0:
LedBorg = otvoren ('/ dev / ledborg', 'w')
LedBorg.write ( '020')
del LedBorg
ispisati ('Mail!')
drugo:
LedBorg = otvoren ('/ dev / ledborg', 'w')
LedBorg.write ( '000')
del LedBorg
ispisati ('Bez pošte!')

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

python gmailcheck.py

Ako u sobi za pristiglu poštu imate e-poštu, LED će postati zelena i dobit ćete odgovor poput takvog:

Ako imate poštu u pretincu pristigle pošte u Gmailu, vaš će LedBorg izgledati ovako:

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 da se pokrene u rasporedu.

Postavljanje Cron Joba za pokretanje skripte

Sada kada imamo dvije skripte s kojima trebamo igrati, moramo postaviti posao koji će se izvoditi tijekom dana kako bi LED indikator bio trenutni.

Prvo što želimo je isključiti LED ako je trenutačno uključen iz naših prethodnih eksperimenata. Na vrsti terminala:

echo "000"> / 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č da ga koristite ovdje. To je rekao, mi ćemo vas prošetati postavljanjem osnovnog rasporeda upravo ovdje.

Na vrsti terminala:

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.

Svaka 5 minuta je lijep raspon vremena za skriptu koja provjerava predviđenu kišu - čak se može pretpostaviti da je to previše agresivno - no ako pokušavate zadržati vrhunac e-pošte, to je malo predugačak raspon za obavijest , Ako postavljate raspored za skriptu obavijesti za Gmail, unesite sljedeći redak u tablicu cron:

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

Ovaj unos svake minute pokreće gmailcheck.py skriptu za mnogo bržu ažuriranu obavijest.

To je sve što je moguće! Možete eksperimentirati s vlastitim Python skriptima uklanjanjem if / other izjava iz naših i pokušavajuć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. Doprinosi / r / LearnPython mi pomogli da se mučim u API izlazu za Weather Underground, proučavajući kako je Michael nad Mitch Techom bavio Gmail Atom feed napravio je parsiranje za LedBorg lako, a proučavanje Pythonovih modula učenja na Kodnoj akademiji bio je sjajan je način za preuzimanje osnovne sintakse i strukture jezika koji nikad prije nisam koristio.