Početna » kako da » Izgradite LED indikator s Raspberry Pi (za e-poštu, vrijeme ili bilo što drugo)

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

    Raspberry Pi čini lijepu kompaktnu platformu za priključivanje indikatorskog svjetla za sve vrste projekata - obavijesti o vremenskim prilikama, nove poruke e-pošte, itd. Pročitajte kako vam pokazujemo kako spojiti LED modul na vaš Pi i postaviti neke osnovne obavijesti.

    Zašto to želim učiniti?

    Zato što je zabavno. Za razliku od mnogih naših tutorijala u koje smo uključili i malu reklamu na vrhu koja precizno opisuje kakvu će korist imati od projekta, blurb je u ovom slučaju prilično kratak jer se korist jednostavno zabavlja.

    Raspberry Pi je savršen uređaj za igru, eksperimentiranje s elektronikom i učenje programiranja. Nitko potrebe primjerice, indikator ambijentalne kiše u njihovoj kuhinji, ali izgradnja jedne je zabavna vježba i veliki podsjetnik da ponesete kišobran sa sobom u potencijalno olujne dane.

    Što trebam?

    Da biste pratili zajedno s out tutorial trebat će vam nekoliko stvari. Prvo, pretpostavljamo da ste već slijedili naš prethodni vodič: HTG Vodič za početak rada s Raspberry Pi (i na taj način imati osnove prekrivene instalacijom Rasbiana na Raspberry Pi).

    Ako želite napraviti ovaj projekt na proračun, možemo pouzdano reći da je najnoviji model Raspberry Pi značajan za posao i potaknuli bismo vas da otpuhnete prašinu sa starog Raspberry Pi u ormaru ili pokupite jeftini rabljeni eBay ili slično. Budžet je dugotrajan Raspberry Pi 1 Model A ili Model B odskočio s eBay-a za $ 10-15 je savršeno prikladan za ovaj projekt o kupnji potpuno nove generacije sadašnje generacije Pi $ 35.

    Osim što imate instaliranu funkcionalnu Pi jedinicu s Raspbianom, trebat će vam sljedeće stvari:

    • 1 modul LedBorg (~ 5,00 USD s dostavljanjem 4 USD iz Velike Britanije u SAD, radi sa svim modelima Raspberry Pi).
    • 1 Clear Raspberry Pi Case kompatibilan s vašim modelom Pi kao što je ovaj Raspberry Pi 1 Model B slučaj.

    Bilješka: Pi slučaj s prozirnim / matiranim materijalom je potpuno neobavezan, ali ako trenutno koristite neprozirni slučaj, vaš LED indikator bit će skriven unutra. Ili ćete morati izrezati rupu u vašem kućištu kako biste osvijetlili ili upotrijebili GPIO produžni kabel s kompletom za prebacivanje - poput ove iz Adafruit Industries-a, kako biste povezali LedBorg na Raspberry Pi. Dok korištenje kabela za prebacivanje dodaje oko 8 USD trošku projekta, on nudi više potencijala za prilagodbu krajnjeg proizvoda u tome što LED lakše možete postaviti unutar stvari ili pod nešto što želite osvijetliti.

    Instaliranje LedBorga

    Iako možete zasigurno sami izgraditi LED indikator potpuno od ogrebotina (a upit za tražilicu će imati mnogo ljudi koji su to učinili) organizacija Piborg proizvodi tako kompaktan i jeftin LED modul, LedBorg, koji nije moguće. t odoljeti koristeći ga kao temelj za naše Raspberry Pi LED indikator projekta.

    Instalacija modula je ugriz jer je dizajnirana da stane izravno preko GPIO pinova na Pi. Prvo, isključite Pi i otvorite kutiju.

    Najvažniji dio instalacijskog procesa je da orijentirate modul tako da je ikona LedBorg najbliža RCA modulu na ploči Raspberry Pi (i tako je rub LedBorga u ravnini s rubovima Pi ploče s prevjesom dio LedBorga koji visi iznad Pi ploče, a ne s ruba). Pogledajte gore navedenu fotografiju.

    Dok je Pi kartica otvorena, sada bi bilo izvrsno vrijeme za pokrivanje ugrađenih LED indikatora (pored USB portova), pogotovo ako koristite jasan slučaj. Ne želite da bude zbunjujuće čitati vaš LedBorg indikator jer su indikatori napajanja i mreže toliko svijetli.

    Pokrivali smo naš sloj bijele električne trake. To ih je dovoljno zatamnilo da bismo ih još uvijek mogli referencirati, ali bili su toliko prigušeniji od LedBorg-a da više nije ometala.

    Nakon što ste instalirali LedBorg i opcionalno pokrili LED indikatore s električnom trakom, vrijeme je da zatvorite kućište. Pokrenite svoje Pi prije nego pređete na sljedeću fazu tutoriala.

    Instaliranje LedBorg softvera

    PiBorg nudi odličan softverski paket za LedBorg koji uključuje i GUI kontroler kao i upravljačke programe za pristup LedBorg-u iz komandne linije.

    Prije nego što počnemo morate provjeriti jeste li uhvatili pravi paket za svoju verziju Rasbiana i reviziju # vaše Raspberry Pi ploče.

    Ako vaša Raspberry Pi ploča nema rupe za montažu, to je Revizija 1. Ako Raspberry Pi ima rupe za montažu (koje se nalaze uz USB priključke i između napajanja i HDMI priključka), onda je to Revizija 2. Također morate znati verziju kernela. vaše Rasian instalacije. Otvorite terminal i unesite sljedeću naredbu za provjeru:

    uname -r

    Nakon što imate broj revizije i broj kernela, možete posjetiti odjeljak Paketi ovdje da biste dohvatili vezu za svoj paket. U našem slučaju koristimo ploču Revizije 1 s kernelom 3.6.11 kako bismo zgrabili raspbian2013-02-09-rev1.zip datoteku.

    Da bismo instalirali sve dobre stvari, moramo otvoriti terminal na Pi. i zatim unesite sljedeće naredbe za instaliranje LedBorg paketa.

    Bilješka: URL u trećoj naredbi morate zamijeniti URL-om paketa za kombinaciju odbora / kernela.

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

    U ovom trenutku sada imate GUI omot za LedBorg drivere i sami upravljačke programe. Na Raspbian radnoj površini vidjet ćete ikonu za GUI omot:

    Krenite i kliknite na ikonu LedBorg kako biste pokrenuli GUI omot. Tako ćete biti tretirani s sučeljem za odabir boja:

    Sada je pravo vrijeme da provjerite je li vaš modul funkcionalan. Odaberite bilo koju boju, osim za crnu, kako biste je isprobali. Testirat ćemo ga odabirom nekoliko boja:

    Izgleda dobro! Svijetla je i matirana plastika kućišta koje smo naručili za projekt nudi umjerenu difuziju. Ako se želite igrati s LED modulom prije nego što krenete dalje, kliknite Demo način:

    U demo modu možete kružiti kroz sve boje pri različitim brzinama, provjeriti visok / nizak izlaz i na drugi način staviti LED modul kroz korake.

    Ovdje u odjeljku Demo Mode možete pretvoriti vaš LedBorg u prvi od mnogih pokazatelja. Odabirom CPU-a u odjeljku Boje LED će početi mijenjati od zelene do žute do crvene kako bi označio opterećenje na ARM procesoru Raspberry Pi. Predlažemo da promijenite Speed ​​to Slow (Brzina na sporo) dok ste u njoj - Fast (Brzo) ažurira LED prebrzo i čini CPU indikator ometanjem umjesto korisnim.

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

    echo "000"> / dev / ledborg

    Način na koji LedBorg upravlja RGB vrijednostima 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 puna snaga. Tako bi primjerice 001 Crveni kanal postavili na 0%, Zeleni kanal na 0% i Plavi kanal na 50%.

    Promijenite vrijednost na 002 i LED izlaz ostaje plavi, ali postaje svjetliji jer je Plavi kanal sada na 100% izlazu. Promijenite vrijednost na 202, a crvena i plava u punoj snazi ​​kombiniraju se kako bi napravile magenta boju.

    Sada kada znamo ručno upravljati LED-om, pogledajmo pomoću skripti kako bismo LED iz jednostavnog svjetla pretvorili u stvarni indikator.

    Konfiguriranje vašeg LedBorg kao indikatora za kišu

    Za ovaj dio tutoriala ćemo zajedno pročešljati nekoliko stvari kako bismo LedBorg modul pretvorili u indikator kiše na temelju vremenske prognoze za našu lokaciju. Upotrijebit ćemo Python skriptu za pozivanje vremenskog API-ja koji će zauzvrat pročitati šanse za kišu za taj dan, a zatim uključiti LED iz svijetli u plavo kako bi označio predviđenu kišu..

    Prvo, moramo dobiti API pristupni ključ za Weather Underground. Za osobnu upotrebu i male razvojne projekte API je besplatan. Posjetite stranicu za prijavu API-ja za vremensku prognozu ovdje i prijavite se za API ključ.

    Kada dobijete API ključ, posjetite Weather Underground i potražite grad koji želite pratiti. U našem slučaju pratit ćemo San Fransisco, CA. URL stranice za prognozu San Fransisco je:

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

    Važan dio za naše potrebe je zadnji dio URL-a: /CA/San_Francisco.html. To ćemo koristiti za uređivanje URL-a predviđanja za API alat. Osnovni URL je:

    http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json

    Možete generirati prognozu za bilo koji grad u SAD-u unosom ključa API-ja, šifrom stanja s dva slova i nazivom grada iz URL-a koji ste izvukli iz rezultata pretraživanja vremenske podzemne željeznice.

    Nakon što imate API URL s umetnutim API ključem i državom / gradom, tada možete urediti sljedeću Python skriptu stvaranjem novog tekstualnog dokumenta na vašem Pi pomoću Leafpad-a i umetanja sljedećeg koda u njega:

    iz urllib2 uvoz urlopen
    import 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 ['forecast'] ['txt_forecast'] ['prognoze'] [0] ['pop'])

    # Slijedeće je ispravljanje pogrešaka.
    # Uredite hash i promijenite
    # cijeli broj na 0-100 za testiranje
    # LED odgovor.

    # pop = 0

    print 'Trenutačna mogućnost padavina je .'. format (pop)

    # Zadana postavka je da uključite LED
    # za svaku mogućnost kiše iznad 20%. Možete prilagoditi
    # vrijednost u "if pop> 20:" kako želite.

    ako je pop> 20:
    LedBorg = otvori ('/ dev / ledborg', 'w')
    LedBorg.write ( '002')
    del LedBorg
    print ('Kiša!')
    drugo:
    LedBorg = otvori ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    print ('Nema kiše!')

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

    python wunderground.py

    Ako ste ispravno unijeli svoj API ključ i kodove države / grada, trebao bi odgovoriti na sljedeći odgovor:

    Ako se predviđa oborina za vaše područje, LedBorg izlaz mora izgledati ovako:

    Sada čekaju kišni dan kako bi ispravno testirali skriptu bilo dosadno. Ako danas nema šanse za kišu u vašem području i želite vidjeti LED svjetlo, uredite skriptu wunderground.py i zamijenite "pop = pop" vrijednost prijelaza u red 13 s vrijednošću većom od 20 kao što je 60 da se naša prognoza vratila. Samo zapamtite da promijenite liniju natrag na "pop = pop" kada završite.

    Posljednji korak je postavljanje cron zadatka za automatsko pokretanje skripte koju smo upravo spremili u redovitim intervalima kako bi LED indikator bio aktualan. Budući da je ovaj zadatak potreban i za ovu skriptu i za indikator e-pošte koji slijedi, pokrit ćemo postavljanje cron posla nakon što vam pokažemo kako postaviti drugu skriptu.

    Konfiguriranje vašeg LedBorg kao Gmail indikatora

    Tko ne voli dopamin popravak koji dolazi s gledanjem nove e-pošte u pristiglu poštu? U ovom dijelu tutoriala pokazat ćemo vam kako koristiti LedBorg kao novi Gmail indikator. Baš kao i prošli put, kombinirat ćemo vanjski ulaz (u ovom slučaju Atom feed umjesto API-ja) i jednostavnu skriptu za pogon LED-a.

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

    sudo easy_install alat za pretragu

    Nakon dovršetka instalacije možemo podesiti rad na izradi skripte za provjeru usluge Gmail. Opet, koristeći Leafpad, zalijepite sljedeći tekst u editor. Promijenite korisničko ime i zaporku tako da odgovaraju korisničkom imenu i zaporci Gmail računa koji želite provjeriti.

    uvoznik

    # Unesite svoje korisničko ime za Gmail
    # i zaporku. Nemojte uključivati
    # dio @ gmail.com od
    # vaše korisničko ime.

    username = "username"
    password = "password"

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

    # Slijedeće je ispravljanje pogrešaka.
    # Uredite hash i promijenite
    # cijeli broj na 0 ili 1 za testiranje
    # LED odgovor.

    # mail = 0

    ako je poruka pošte> 0:
    LedBorg = otvori ('/ dev / ledborg', 'w')
    LedBorg.write ( '020')
    del LedBorg
    print ('Mail!')
    drugo:
    LedBorg = otvori ('/ dev / ledborg', 'w')
    LedBorg.write ( '000')
    del LedBorg
    print ('Nema pošte!')

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

    python gmailcheck.py

    Ako imate poruku e-pošte koja sjedi u vašoj Gmailovoj ulaznoj pošti, LED će postati zelena i dobit ćete odgovor kao što je:

    Ako imate poštu u pristigloj pošti za Gmail, vaš će LedBorg izgledati tako:

    Baš kao i skripta za provjeru kiše, uključili smo vrijednost ispravljanja pogrešaka. Ako nemate nikakvu novu e-poštu, mogli biste sebi poslati poruku e-pošte kako biste povećali broj pristigle pošte na 1 ili biste mogli urediti hash komentara i promijeniti liniju za ispravljanje pogrešaka na "mail = 1" da biste testirali skriptu. Ne zaboravite vratiti test kad završite s testiranjem.

    Uskočite u sljedeći odjeljak vodiča kako biste Gmail skriptu postavili na raspored.

    Postavljanje Cron zadatka za pokretanje skripte

    Sada kada imamo dvije skripte s kojima se moramo igrati, moramo postaviti cron posao kako bismo ih pokrenuli tijekom dana kako bi LED indikator bio aktualan.

    Prvo što želimo učiniti jest isključiti LED ako je trenutno uključen iz naših prethodnih eksperimenata. Na tipu terminala:

    echo "000"> / dev / ledborg

    Dok ste još uvijek u naredbenom retku, možete otvoriti cron editor. Ako nikada prije niste postavili cron posao, preporučujemo da provjerite naš vodič da ga koristite ovdje. S tim u vezi, provest ćemo vas kroz postavljanje osnovnog rasporeda ovdje.

    Na tipu terminala:

    sudo crontab -e

    To će otvoriti Raspbian cron tablicu u Nano uređivaču teksta. Pomoću tipki sa strelicama pomičite se do samog dna. Ovdje ćemo namjestiti ponavljajući cron posao za naše Python skripte.

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

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

    Pritisnite CTRL + X za izlaz; odaberite yes da spremite i prepišete postojeću cron tablicu. Vrijednost koju smo unijeli u kronsku tablicu "* / 5 * * * *" postavlja skriptu za pokretanje svakih 5 minuta, zauvijek.

    Svakih 5 minuta je fini vremenski period za skriptu koja provjerava predviđenu kišu - mogli biste čak tvrditi da je malo previše agresivna - ali ako pokušavate zadržati na vrhu svoje e-pošte, to je malo predugo za obavijest , Ako postavljate raspored za Gmail obavijesti, unesite sljedeći redak u cron tablicu:

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

    Ovaj unos pokreće skriptu gmailcheck.py svake minute za znatno brže obavijesti o ažuriranju.


    To je sve! Možete eksperimentirati s vlastitim Python skriptama tako što ćete podignuti izjave if / else iz naših i isprobati ih s potpuno novim varijablama. Ako možete pronaći ulazni izvor podataka, možete ga pretvoriti u varijablu u Vašem Python skriptnom burzovnom prosjeku, broj peludi, Twitter spominje, ako postoji API za to, možete ga pretvoriti u ambijentalni LED indikator.

    Konačno, želim zahvaliti svim velikim resursima koje sam koristio za rad na ovom projektu. Prošlo je malo više od desetljeća otkad sam aktivno pisao programe i trebalo je nekoliko kvarova da se prašina i hrđa izvuku. Suradnici u / r / LearnPython su mi pomogli da se zabavljam u API izlazu za Weather Underground, proučavajući kako se Michael u Mitch Techu bavio Gmail Atom feedom i napravio parsiranje za LedBorg jednostavno, a proučavanje Python modula za učenje na Code Academy bilo je sjajan način da otkrijete osnovnu sintaksu i strukturu jezika koji nikada prije nisam koristio.