1Aug

Ustvarite LED indikator z Raspberry Pi( za e-pošto, vreme ali kaj drugega)

click fraud protection

Raspberry Pi naredi lepo kompaktno platformo za pritrditev indikatorske lučke na vse vrste projektov - obvestila o vremenu, nova e-poštna sporočila itd. Preberite, kako vam pokažemo, kako priključiti LED modul na vaš Pi in nastaviti nekaj osnovnihobvestila.

Zakaj želim to storiti?

Ker je zabavno. Za razliko od mnogih naših vadnic, kjer smo na vrhu dodali malo blurbov, ki natančno opisujejo, kakšno korist boste pridobili iz projekta, je blurb v tem primeru precej kratek, saj se koristi preprosto zabavajo.

Raspberry Pi je odlična naprava za igranje, eksperimentiranje z elektroniko in učenje nekaterih programov. Nihče ne potrebuje indikatorja okoliškega dežja v svoji kuhinji, ampak gradnja enega je zabavna vaja in odličen opomnik, da bi vaš dežnik prinesel potencialno nevihtne dni.

Kaj potrebujem?

Če želite slediti skupaj z vadnico, boste potrebovali nekaj stvari. Najprej smo domnevali, da ste že sledili našemu prejšnjemu tutorialu: vodič po HTG-u za začetek uporabe Raspberry Pi( in s tem osnove, na katere se nanaša namestitev Rasbian na naši Raspberry Pi).

instagram viewer

Če iščete ta projekt v proračunu, vam lahko zaupamo, da je najnovejši model Raspberry Pi precejšen presežek za to delo in vas spodbudili, da razstrelite prah iz starega Raspberry Pi, ki ste ga dobilipotisnili v omari ali pobrali poceni, ki so ga uporabljali eno eBay ali podobno. Približno proračuna je dolg v-zob Raspberry Pi 1 Model A ali Model B, ki se je zbral na eBayu za $ 10-15, je odlično primeren za ta projekt pred nakupom povsem nove generacije Pi $ 35.

Poleg tega, da imate nameščeno funkcionalno Pi enoto z Raspbian, boste potrebovali naslednje stvari:

  • 1 LedBorg modul( ~ $ 5,00 s 4 pošiljko iz Združenega kraljestva v ZDA, deluje z vsemi modeli Raspberry Pi).
  • 1 Clear Clear Case Raspberry Pi, ki je združljiv z vašim Pi modelom, kot je ta model Razpberry Pi 1 Model B.

Opomba: Prosojno / zamrznjeno ohišje Pi je povsem neobvezno, če pa trenutno uporabljate neprozorno ohišje, bo vaš indikator LED skrit. V vašem primeru boste morali izrezati luknjo, da bi osvetlili ali uporabili razširitveni kabel GPIO s kompletom za zlom, kot je ta od podjetja Adafruit Industries, da bi privezali LedBorg na vašo Raspberry Pi. Medtem ko uporabljate zlomljen kabel dodate približno $ 8 na račun projekta, ponuja več možnosti za prilagajanje končnega izdelka, tako da lahko lažje postavite LED v notranjost stvari ali pod nekaj, kar želite osvetliti.

Nameščanje LedBorg

Medtem ko si lahko vsekakor zgradite popolnoma indikator LED-izpisa( in iskalnik poizvedbe bo obiskal veliko ljudi, ki so to storili), organizacija Piborg proizvaja tako kompakten in poceni LED modul, LedBorg, da se ne moremo upreti, da ga bomo uporabili kot osnovo za naš indikator projekta Raspberry Pi LED.

Namestitev modula je hitra, saj je zasnovana tako, da se prilega neposredno preko GPIO zatičev na Pi. Najprej izklopite Pi in odprite primer.

Najpomembnejši del namestitvenega procesa je, da usmerite modul tako, da je ikona LedBorg najbližja RCA modulu na plošči Raspberry Pi( zato je rob LedBorg-a obrobljen z robovi plošče Pi zprevisni del LedBorg, ki visi nad ploščo Pi in ni izven roba).Oglejte si fotografijo zgoraj.

Medtem ko imate odprtino Pi, je zdaj odličen čas za pokrivanje LED-indikatorjev na vozilu( poleg vrat USB), še posebej, če uporabljate jasen primer. Ne želite, da bi bilo zmedeno, da bi prebrali vaš LedBorgov indikator, ker so lučke za napajanje in omrežje tako svetle.

Obložili smo našo plast belega električnega traku. To jih je zadihalo, da bi jih lahko še vedno sklicevali, vendar so bili toliko bolj zatemnjeni kot LedBorg, ki jih ni več motilo.

Ko imate nameščen LedBorg in po želji prekrijete LED indikatorje Pi z električnim trakom, je čas, da se ohišje vrne nazaj. Zaženite Pi, preden se premaknete na naslednjo fazo vadnice.

Nameščanje programske opreme LedBorg

PiBorg ponuja odličen programski paket za LedBorg, ki vključuje tako krmilnik GUI kot tudi gonilnike za dostop do LedBorg iz ukazne vrstice.

Preden začnemo, morate poskrbeti, da boste zagrabili pravi paket za vašo različico programa Rasbian in revizijo vaše plošče Raspberry Pi.

Če vaša plošča Raspberry Pi nima pritrdilnih lukenj, je to revizija 1. Če ima vaš Raspberry Pi luknje za montažo( ki se nahajajo prek vrat USB in med priključkom za napajanje in HDMI), potem je to revizija 2. Prav tako morate poznati jedrorazličico vaše namestitve v Rasbian. Odprite terminal in vnesite naslednji ukaz, da preverite:

uname -r

Ko imate številko Revizija in številko jedra, si lahko ogledate razdelek Paketi tukaj, da zgrabite povezavo za svoj paket. V našem primeru uporabljamo ploščo Revision 1 z jedrom 3.6.11, zato bomo zagrabili datoteko raspbian-2013-02-09-rev1.zip.

Da bi namestili vse dobrote, ki jih potrebujemo za odpiranje terminala na Pi.in nato vnesite naslednje ukaze za namestitev paketa LedBorg.

Opomba: URL v tretjem ukazu morate nadomestiti z URL-jem paketa za kombinacijo plošče / jedra.

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

V tem trenutku imate zdaj ovojnik GUI za gonilnike LedBorg in sami gonilniki. Na vašem namizju Raspbian boste videli ikono za ovojnik GUI:

Pojdite naprej in kliknite ikono LedBorg, da zaženete ovojnik GUI.Z vami boste obravnavali vmesnik za izbiro barve:

Zdaj je pravi čas, da se prepričate, ali je vaš modul funkcionalen. Izberite barvo, razen črne barve, da jo preizkusite. Preizkusili ga bomo tako, da izberemo nekaj barv:

Izgleda dobro! To je svetlo in zamrznjena plastika primera, ki smo ga naročili za projekt, nudi zmerno difuzijo.Če želite igrati z LED modulom preden se premaknete naprej, kliknite Demo Mode:

V demo načinu lahko kolesarite po vseh barvah pri različnih hitrostih, preverite visok / nizek izhod in drugače postavite LED modul skozi korake.

Tukaj je v razdelku Demo Mode, ki vam lahko LedBorg postane tudi prvi od mnogih kazalnikov.Če izberete CPU v razdelku Colors, se bo LED začela spreminjati od zelene do rumene do rdeče, da bi označili obremenitev procesorja ARM Raspberry Pi. Predlagamo, da spremenite Hitrost do počasi, ko ste pri tem. Hitro posodablja LED prehitro, zaradi česar indikator CPU odvrača, namesto da bi bil uporaben.

Poleg uporabe grafičnega vmesnika za izbiro barv lahko izbirate barve iz terminala z uporabo RGB vrednosti. Odprite terminal in vnesite naslednji ukaz, da izklopite LED:

echo "000" & gt;/dev/ ledborg

Način, na katerega LedBorg upravlja z RGB vrednostmi, je, da 0 pomeni, da je kanal izklopljen, 1 pomeni, da je kanal pol napajanja in 2 pomeni, da je kanal polna moč.Tako bi na primer 001 nastavil rdeči kanal na 0%, zeleni kanal na 0% in kanal Blue ob 50% moči.

Spremenite vrednost na 002 in LED izhod ostane modro, vendar postane svetlejša, saj je modri kanal sedaj na 100% izhodu. Spremenite vrednost na 202 in Rdeča in Modra v polni moči združita, da naredita čudovito barvo.

Zdaj, ko vemo, kako ročno upravljati LED, si oglejmo uporabo skriptov, da LED diode pretvorimo iz preproste svetlobe na dejanski kazalnik.

Konfiguriranje vašega LedBorg kot indikatorja dežja

Za ta del vadnice bomo združili več stvari skupaj, da bi naš LedBorg LED modul spremenili v kazalnik dežja na podlagi vremenske napovedi za našo lokacijo. Uporabili bomo skript Python, da pokličemo vremenski API, ki bo prebral možnost dežja za dan, nato pa preklopite LED iz izklopljene v svetlo modro, da označite napovedani dež.

Prvič, potrebujemo dostopni ključ API za Weather Underground. API je za osebno rabo in majhne razvojne projekte brezplačen. Obiščite stran za prijavo API-ja API in se prijavite za ključ API.

Ko imate ključ API, obiščite Weather Underground in poiščite mesto, ki ga želite spremljati. V našem primeru bomo spremljali San Fransisco, CA.URL za napovedano stran San Francisca je:

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

Pomemben del za naše namene je zadnji del URL-ja: /CA/ San_Francisco.html. To bomo uporabili za urejanje napovedanega URL-ja za orodje API.Osnovni URL je:

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

Napoved za vsako mesto v ZDA lahko ustvarite tako, da vnesete ključ API, državno kodo z dvema črkama in ime mesta iz URL-ja, ki ste ga povlekli iz svojega vremenaPodzemni rezultati iskanja.

Ko imate URL API z vašim ključem API in vstavljenim državo / mestom, lahko nato urejate naslednji skript Python tako, da ustvarite nov besedilni dokument na vašem Pi z uporabo Leafpad in ga prilepite v naslednjo kodo:

iz urllib2 import urlopen
uvoz json

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

# V nadaljevanju je razhroščevalna vrednost.
# Urejanje razpršila in spreminjanje
# celo število na 0-100 za preizkušanje
# odziva LED.

# pop = 0 natisni

'Trenutna možnost padavin je{ }.'. Format( pop)

# Privzeta nastavitev je, da vklopite LED
# za vse možnosti dežja nad 20%.
# lahko nastavite vrednost v "če je pop & gt; 20:", kot želite.

, če je pop & gt;20:
LedBorg = odprt( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
natisni( 'Rain!')
še:
LedBorg = odprt( '/dev/ ledborg'w ')
LedBorg.write( ' 000 ')
del LedBorg
natisni( ' Brez dežja! ')

Shranite datoteko kot wunderground.py v imeniku /home/pi/.Odprite terminal in vnesite naslednji ukaz:

python wunderground.py

Če ste pravilno vnesli ključ API in vaše državne / mestne kode pravilno, bi morali preklicati odgovor, ki je videti tako:

Če je padavina predvidena za vaše območjevaš LedBorg izhod bi moral biti takšen:

Zdaj čaka na deževni dan, da pravilno testira scenarij, bi bil dolgočasen.Če v vašem območju danes ni prostora za dež in želite videti LED osvetlitev, uredite skript wunderground.py in zamenjate vrednost "pop = pop" v pasu 13 z vrednostjo, večjo od 20, kot je 60da se je naša napoved vrnila. Ne pozabite spremeniti vrstice nazaj na "pop = pop", ko končate.

Zadnji korak je nastaviti cronovo nalogo, da samodejno zaženemo skript, ki smo ga pravkar shranili v rednem intervalu, da bi ohranili LED indikator. Ker je ta naloga potrebna tako za ta skript kot tudi za kazalnik e-pošte, ki sledi, bomo pokrili nastavitev cron job-ja, potem ko smo vam pokazali, kako nastaviti drug skript.

Konfiguriranje LedBorg kot Gmailovega kazalnika

Kdo ne dopušča popravka dopamina, ki prihaja z ogledom novih e-poštnih sporočil v mapi »Prejeto«?V tem delu vadnice vam bomo pokazali, kako uporabljati LedBorg kot nov Gmailov kazalnik. Tako kot v zadnjem času bomo združili zunanji vhod( v tem primeru krmilnik Atom namesto API) in preprost skript za vožnjo naše LED.

Razširiti moramo funkcionalnost naše namestitve Python z namestitvijo programa FeedParser, orodja za branje virov Python RSS / Atom. Odprite terminal in vnesite naslednji ukaz:

sudo easy_install feedparser

Ko je namestitev dokončana, lahko nastavimo za delo z ustvarjanjem našega skripta za preverjanje v Gmailu.Še enkrat, z uporabo Leafpada, vstavite naslednje besedilo v urejevalnik. Spremenite uporabniško ime in geslo, da se ujemata z uporabniškim imenom in geslom računa Gmail, ki ga želite preveriti.

uvoz feedparser

# Vnesite svoje uporabniško ime za Gmail
# in geslo. Ne vključite
# @ gmail.com dela
# vaše uporabniško ime.

username = "uporabniško ime"
geslo = "geslo"

mail = int( feedparser.parse( "https: //" + username + ":" + geslo + "@ mail.google.com /gmail/feed/ atom") ["feed"] [" fullcount "])

# V nadaljevanju je razhroščevalna vrednost.
# Uredite razpršitev in spremenite
# celo število na 0 ali 1, da preizkusite
# odgovor odzivnika.

# mail = 0

če je pošta & gt;0:
LedBorg = odprt( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
natisni( 'Mail!')
še:
LedBorg = open( '/dev/ ledborg'w ')
LedBorg.write( ' 000 ')
del LedBorg
natisni( ' Ni pošte! ')

Shranite skript kot gmailcheck.py. Odprite terminal in vnesite naslednji ukaz:

python gmailcheck.py

Če imate e-poštno sporočilo, ki sedi v mapi »Prejeto v Gmailu«, se bo LED obarvalo zeleno in dobili boste odgovor takega:

Če imate v nabiralnikih Gmail v vašem pošti svoj LedBorgbo izgledal tako:

Tako kot skript za preverjanje dežja smo vključili tudi vrednost za odpravljanje napak.Če nimate nobenega novega e-poštnega sporočila, lahko sami pošljete e-poštno sporočilo, da povečate število vaših prejetih sporočil na 1, ali pa lahko urejate vsebino komentarja in spremenite vrstico za odpravljanje napak na "mail = 1", da preizkusite skript. Ne pozabite vrniti vrstice, ko ste končali testiranje.

Spustite se v naslednji del vadnice, da nastavite svoj Gmailov skript za zagon v urniku.

Nastavitev Cron Job za zagon vašega skripta

Zdaj, ko imamo dva skripta za igranje, moramo nastaviti cronovo nalogo, da bi jih vodili ves dan, da bi LED indikator tekel.

Prva stvar, ki jo želimo storiti, je ugasniti LED, če je trenutno v prejšnjih poskusih. Na vrsti terminala:

echo "000" & gt;/dev/ ledborg

Medtem ko ste še vedno v ukazni vrstici, lahko odprete urejevalnik cronov.Če še nikoli niste nastavili cronove naloge, priporočamo, da preverite naš vodnik, da ga uporabite tukaj. Torej, vas bomo sprehodili skozi osnovni razpored tukaj.

Na vrsti terminala:

sudo crontab -e

To bo odprlo tabelo Raspbian cron v urejevalniku besedila Nano. S puščičnimi tipkami se pomaknite navzdol do dna. Tukaj bomo nastavili ponavljajoče se delo cron za naše skripte Python.

Če želite nastaviti dežni skript, v tabelo cron vnesite naslednjo vrstico:

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

Pritisnite CTRL + X za izhod;izberite da, da shranite in prepišete obstoječo tabelo cronov. Vrednost, ki smo jo vnesli v tabelo cron "* / 5 * * * *", nastavi scenarij vsakih 5 minut, za vedno.

Vsakih 5 minut je dober čas za scenarij, ki preverja napovedan dež - lahko bi celo trdil, da je preveč agresiven - če pa poskušate obdržati vrh svojega e-poštnega sporočila, je preveč časa zaobvestilo.Če nastavljate razpored za prijavni skript za Gmail, v tabelo cron vnesite naslednjo vrstico:

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

Ta vnos zažene skript gmailcheck.py vsako minuto za veliko hitrejšeobvestilo o posodobitvi.

To je vse, kar ima! Lahko poskusite s svojimi skripti Python tako, da odstranite izjave if / else iz naše in jih preizkusite z novimi spremenljivkami.Če lahko najdete vhodni vir za podatke, ki jih lahko spremenite v spremenljivki na vaši Python-skriptni borzi, povprečje, število peloda, omemba Cvrkutati, če obstaja API za to, ga lahko spremenite v indikator okolice LED.

Na koncu se zahvaljujem vsem velikim virom, ki sem jih rabil pri tem projektu. Bilo je malo več kot desetletje, odkar sem aktivno pisal programe in je trajalo nekaj udarcev, da bi dobili prah in rja. Prispevki na /r/ LearnPython so mi pomagali pri izdelavi API-ja za Weather Underground in preučevali, kako se je Michael v Mitch Techu ukvarjal z Gmail Atom feedom, ki ga je enostavno razčlenil na LedBorg, in preučevanje modulov za učenje Python na Kodni akademiji je bilo supernačin, da pridobim osnovno sintakso in strukturo jezika, ki sem ga prej nikoli uporabljal.