Loo Raspberry Pi-ga LED-indikaator (e-posti, ilmaga või midagi muud)
Raspberry Pi teeb meeldiva kompaktse platvormi, et lisada indikaatortuli igasuguste projektide, ilmastikutingimuste, uute e-kirjade jne jaoks. Lugege edasi, kui näitame teile, kuidas ühendada LED-moodul Pi-ga ja luua mõned põhilised teated.
Miks ma seda tahan teha?
Sest see on lõbus. Erinevalt paljudest meie juhenditest, kus me lisame ülaosas väikese tõkke, milles kirjeldatakse täpselt, millist kasu saate projektist, on sellel juhul väga lühike, sest kasu on lihtsalt lõbus.
Raspberry Pi on ideaalne seade, kus mängida, katsetada elektroonikat ja õppida programmeerimist. Keegi vajadusi näiteks köögi ümbritseva vihma näitaja, kuid ühe hoone ehitamine on lõbus harjutus ja suurepärane meeldetuletus, et tuua teie vihmavari teiega potentsiaalselt tormilistel päevadel.
Mida ma pean??
Selleks, et järgida väljaõpet, on vaja mõningaid asju. Esiteks eeldame, et olete juba järginud meie eelmist juhendit: HTG juhend Raspberry Pi alustamise kohta (ja seega on põhitõed kuni Rasbian paigaldamiseni meie Raspberry Pi-sse).
Kui soovid seda projekti eelarvel teha, siis võime kindlalt öelda, et uusim mudel Raspberry Pi on selle töö jaoks märkimisväärne ülejääk ja me julgustaksime teid tolmust vana Raspberry Pi'st maha lööma kapis või võtke odav kasutatud eBay või muu sarnane. Eelarve arukas Raspberry Pi 1 pikk-in-the-hammas mudel A või B mudel tõmbas eBayst välja $ 10-15 eest..
Lisaks funktsionaalsele Pi-ühikule, millele on paigaldatud Raspbian, on vaja järgmisi asju:
- 1 LedBorgi moodul (~ $ 5,00 koos $ 4 laevaliiklusega Ühendkuningriigist USA-sse, töötab kõigi Raspberry Pi mudelitega).
- 1 Selge Raspberry Pi kaitseümbris, mis sobib teie konkreetse Pi mudeliga, nagu see on Raspberry Pi 1 mudeli B puhul.
Märge: Selge / mattunud pi juhtum on täiesti vabatahtlik, kuid kui kasutate praegu läbipaistmatut juhtumit, jääb teie LED-indikaator peidetud sisemusse. Te peate oma korpuses lõigama auku, et lasta valgusel välja või kasutada GPIO pikenduskaablit, millel on Breakout kit-tüüpi selline Adafruit Industries-l, et siduda LedBorg oma Raspberry Pi-ga. Kui kasutate katkestuskaablit, lisab see projekti kulule umbes 8 dollarit, mis pakub rohkem võimalusi lõpptoote kohandamiseks, kuna saate hõlpsamini asetada LED-i asju või midagi, mida soovite valgustada.
LedBorgi installimine
Kuigi sa võid kindlasti ehitada end täiesti tühjalt LED-indikaatorilt (ja otsingumootori küsitlus toob kaasa palju inimesi, kes seda teinud on), toodab Piborgi organisatsioon sellise kompaktse ja odav LED-mooduli, LedBorgi, mida me ei suutnud t ei kasuta seda Raspberry Pi LED indikaatori projekti aluseks.
Mooduli paigaldamine on snap, kuna see on mõeldud sobituma otse Pii GPIO tihvtidega. Esmalt lülitage oma Pi ja avage juhtum.
Paigaldamisprotsessi kõige olulisem osa on see, et suunate moodulit nii, et LedBorgi ikoon on Raspberry Pi pardal RCA moodulile kõige lähemal (ja seega on LedBorgi serv servaga Pi kattuval äärel võrdne. osa LedBorgist, mis ripub Pi pardal ja mitte servast välja). Vaadake ülaltoodud fotot.
Kui teil on Pi plaat avatud, oleks nüüd suurepärane aeg katta pardal olevad LED-indikaatorid (USB-pordi kõrval), eriti kui kasutate selget juhtumit. Sa ei taha, et teie LedBorgi indikaatori lugemine oleks segadust tekitav, sest toite- ja võrguindikaatorid on nii heledad.
Me kaotasime meie valge lindi kihiga. See hämardas neid piisavalt, et saaksime neid siiski viidata, kuid nad olid nii palju hämaramad kui LedBorg, mis enam ei häirinud.
Kui olete LedBorgi paigaldanud ja on valikuliselt katnud Pi LED-indikaatorid elektrilindiga, on aeg juhtum sulgeda. Enne õpetuse järgmise etapi peale liikumist alustage oma Pi-ga.
LedBorgi tarkvara installimine
PiBorg pakub suurepärase tarkvarapaketi LedBorgile, mis sisaldab nii GUI-kontrollerit kui ka draivereid LedBorgi pääsemiseks käsurealt.
Enne kui alustate, peate veenduma, et olete haaranud õige paketi oma Rasbian versioonile ja oma Raspberry Pi pardal olevale versioonile..
Kui teie Raspberry Pi plaadil pole kinnitusavasid, siis on see versioon 1. Kui teie Raspberry Pi-l on kinnitusavad (asuvad USB-pordi ja toite- ja HDMI-pordi vahel), siis on see 2. versioon. Samuti peate teadma kerneli versiooni teie Rasbese paigaldamise kohta. Avage terminal ja sisestage kontrollimiseks järgmine käsk:
uname -r
Kui teil on revisjoni number ja tuuma number, võite siit külastada paketid, et haarata oma paketi link. Meie puhul kasutame 3.6.11 kerneliga versiooni 1 plaati, nii et me võtaksime raspbian 2013-02-09-rev1.zip faili.
Kõigi hüvede paigaldamiseks peame terminali Pi avama. ja seejärel sisesta järgmised käsud LedBorgi paketi installimiseks.
Märge: Kolmanda käsu URL peab asendama oma laua / kerneli kombinatsiooni paketi URL-iga.
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
Sel hetkel on teil nüüd olemas GUI ümbris LedBorgi draiveritele ja draiverid ise. Teie Raspbian töölaual kuvatakse GUI ümbrise ikoon:
Mine edasi ja kliki LedBorgi ikoonil, et käivitada GUI ümbris. Teid töödeldakse värvivalija liidesega nagu:
Nüüd on õige aeg veenduda, et teie moodul on töökorras. Puuduta värvi, välja arvatud must, et seda proovida. Me testime seda, valides mõned värvid:
Näeb hea välja! See on särav ja projekti jaoks tellitud korgist plastik pakub mõõdukat difusiooni. Kui soovid mängida LED-mooduliga rohkem enne liikumist, klõpsake nuppu Demo Mode:
Demo-režiimis saate erinevate värvide läbida erinevatel kiirustel, vaadata kõrge / madala väljundvõimsusega ja muul viisil panna LED-moodul läbi kiiruste.
See on siin Demo režiimi sektsioonis, mille abil saate oma LedBorgi muuta paljudest paljudest näitajatest. Valides CPU valiku Värvid, hakkab LED muutuma rohelisest kollaseks punaseks, et näidata Raspberry Pi ARM protsessori koormust. Soovitame muuta kiirust aeglaseks, kui olete selle juures. Kiire värskendab LED-i liiga kiiresti ja muudab CPU-indikaatori segaduse kasulikuks.
Lisaks GUI liidese kasutamisele värvide valimiseks saate valida terminalist värve RGB väärtuste abil. Avage terminal ja sisestage LED-i väljalülitamiseks järgmine käsk:
echo "000"> / dev / ledborg
LedBorgi käepidemete RGB väärtused on, et 0 tähendab, et kanal on välja lülitatud, 1 tähendab, et kanal on poolvõimsus ja 2 tähendab, et kanal on täisvõimsusel. Nii näiteks seaks 001 punase kanali 0%, rohelise kanali 0% ja sinise kanali 50% võimsust.
Muutke väärtust 002-le ja LED-väljund jääb siniseks, kuid muutub heledamaks, sest sinine kanal on nüüd 100% -lise väljundiga. Muutke väärtus väärtuseks 202 ja punane ja sinine täisvõimsusel kombineerivad magenta värvi.
Nüüd, kui me teame, kuidas LED-i käsitsi manipuleerida, vaatame skripte, et muuta oma LED-i lihtsast valgust tegelikuks indikaatoriks.
LedBorgi seadistamine vihmaindikaatorina
Selle õpetusosa jaoks me kombineerime mitmeid asju kokku, et muuta meie LedBorg LED-moodul meie asukoha asukohaennustuse alusel vihmaindikaatoriks. Me kasutame Pythoni skripti, et helistada ilmastikutingimustele API-le, mis omakorda loeb päeva vihmasadu ja seejärel lülitab valgusdioodi väljalülitatult siniseks, et näidata prognoositavat vihma.
Kõigepealt peame hankima Weather Undergroundi jaoks API-juurdepääsu võtme. Isiklikuks kasutamiseks ja väikeste arendusprojektide jaoks on API tasuta. Külastage siin API-i registreerumislehte ja registreeruge API-võtmele.
Kui teil on API-võti, külastage maa-alust maa-ala ja otsige linn, mida soovite jälgida. Meie puhul jälgime San Fransisco, CA. San Fransisco prognoosi lehe URL on:
http://www.wunderground.com/US/CA/San_Francisco.html
Meie eesmärkide oluline osa on URL-i viimane osa: /CA/San_Francisco.html. Me kasutame seda API-tööriista prognoosi URL-i muutmiseks. Alus URL on:
http://api.wunderground.com/api/YOUR API KEY / prognoos / q / STATE / CITY.json
Saate genereerida prognoosi mis tahes USA linnale, sisestades oma API-võtme, kahe tähega olekukoodi ja linna nime URL-ist, mille olete oma maa-alustest otsingutulemustest tõmbanud.
Kui olete API-URL-i oma API-võtmega ja oleku / linnaga sisestatud, saate seejärel muuta järgmist Pythoni skripti, luues Pi-le uue tekstidokumendi, kasutades Leafpadi ja kleepides sellele järgmise koodi:
alates urllib2 import urlopen
impordi json
req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / prognoos / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['prognoos'] ['txt_forecast'] ['prognoosipäev "] [0] [' pop '])# Järgnev on silumine väärtus.
# Redigeerige räsi ja muutus
# täisarv kuni 0-100 testimiseks
# LED-vastus.# pop = 0
prindi 'Sademete tõenäosus on . ". formaat (pop)
# Vaikimisi on LED-i sisselülitamine
# võimaliku vihma korral üle 20%. Saate reguleerida
# väärtus "kui pop> 20:" nagu soovite.
kui pop> 20:
LedBorg = avatud ('/ dev / ledborg', 'w')
LedBorg.write ('002')
del LedBorg
print ('Vihma!')
muu:
LedBorg = avatud ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
print ("Vihma puudumine")
Salvestage fail kui wunderground.py / home / pi / kataloogi. Avage terminal ja sisestage järgmine käsk:
python wunderground.py
Kui olete oma API-võtme ja oma riigi- / linnakoodid õigesti sisestanud, peaks ta tagasi lükkama vastuse, mis näeb välja:
Kui teie piirkonnas on ennustatud sademete arvu, peaks LedBorgi väljund välja nägema:
Nüüd ootab vihmane päev, et skript õigesti testida. Kui teie piirkonnas pole vihma tekkimise võimalust ja soovite näha, et LED süttib, muutke wunderground.py skripti ja asendage rida 13 "pop = pop" läbipääsu väärtus väärtusega, mis on suurem kui 20, näiteks 60 et meie prognoos tagasi. Pea meeles, et vahetate rida tagasi „pop = pop“, kui olete valmis.
Viimane samm on seadistada croni töö, et käivitada automaatselt skript, mille me just salvestasime regulaarselt, et hoida LED-indikaator voolu. Kuna see ülesanne on vajalik nii selle skripti kui ka järgneva e-posti indikaatori jaoks, siis me katame croni töö seadistamise pärast seda, kui oleme teile näidanud, kuidas teise skripti seadistada.
LedBorgi seadistamine Gmaili indikaatorina
Kes ei meeldi dopamiini fikseerimisel, mis kaasneb uute postkastide vaatamisega? Juhendi selles osas näitame teile, kuidas kasutada LedBorgi uue Gmaili indikaatorina. Nagu eelmisel korral, kombineerime välise sisendi (sel juhul API-liidese asemel Atomi kanal) ja lihtsa skripti, et juhtida meie LED-i.
Peame Pythoni installatsiooni funktsionaalsust veidi laiendama, paigaldades FeedParseri, Pythoni RSS / Atomi sööda lugemise tööriista. Avage terminal ja sisestage järgmine käsk:
sudo easy_install feedparser
Kui installimine on lõppenud, saame seada töö, et luua meie Gmaili kontrolliskript. Jällegi kleepige Leafpadi abil järgmine tekst toimetajale. Muutke kasutajanime ja parooli, et see vastaks kontrollitava Gmaili konto kasutajanimele ja paroolile.
importida feedparserit
# Sisestage oma Gmaili kasutajanimi
# ja parool. Ärge lisage
# @ gmail.com osa
# sinu kasutajanimi.
kasutajanimi = "kasutajanimi"
password = "password"
mail = int (feedparser.parse ("https: //" + kasutajanimi + ":" + parool + "@ mail.google.com/gmail/feed/atom") rules"feed"] ["fullcount"])
# Järgnev on silumine väärtus.
# Redigeerige räsi ja muutus
# täisarv kuni 0 või 1 testimiseks
# LED-vastus.# mail = 0
kui kiri> 0:
LedBorg = avatud ('/ dev / ledborg', 'w')
LedBorg.write ('020')
del LedBorg
print ('Mail!')
muu:
LedBorg = avatud ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
print ('Ei postita!')
Salvestage skript kui gmailcheck.py. Avage terminal ja sisestage järgmine käsk:
python gmailcheck.py
Kui teil on oma Gmaili postkastis e-posti, muutub LED roheliseks ja teile saadakse selline vastus:
Kui teil on oma Gmaili postkastis kirju, näeb teie LedBorg nii:
Just nagu vihma kontrollimise skript, oleme lisanud silumise väärtuse. Kui sul ei ole uut e-posti, võite saata ise e-posti, et tõsta postkasti arvu 1-ni või saate kommentaarihäiret redigeerida ja muuta silumise rea "mail = 1" skripti testimiseks. Ärge unustage seda rida testimise lõpetamisel tagasi.
Looge juhendaja järgmisesse sektsiooni, et seada Gmaili skript ajakavale tööle.
Croni töö seadistamine skripti käivitamiseks
Nüüd, kui meil on kaks skripti mängimiseks, peame seadistama croni töö, et neid kogu päeva jooksul LED-indikaatori voolu hoida.
Esimene asi, mida me tahame teha, on LED-i välja lülitamine, kui see on meie eelmiste katsete ajal. Terminali tüübi juures:
echo “000”> / dev / ledborg
Kuigi olete ikka käsureal, saate croni redaktori avada. Kui te pole kunagi varem croni tööd teinud, soovitame tungivalt kontrollida meie juhendit selle kasutamiseks. See tähendab, et me teeme teid siin peamise ajakava koostamise kaudu.
Terminali tüübi juures:
sudo crontab -e
See avab nano tekstiredaktoris Raspbian croni tabeli. Kasutage nooleklahve, et kerida allapoole. See on koht, kus me seadistame korduva croni töö meie Pythoni skriptide jaoks.
Kui soovite vihma skripti seadistada, sisestage järgmine rida croni tabelisse:
* / 5 * * * * python / home/pi/wunderground.py
Väljumiseks vajutage CTRL + X; olemasoleva croni tabeli salvestamiseks ja ülekirjutamiseks valige jah. Väärtus, mille me sisestasime croni tabelisse * * 5 * * * *, määrab skripti iga 5 minuti järel, igavesti.
Iga 5 minuti järel on skript, mis kontrollib prognoositud vihma, võib isegi väita, et see on natuke liiga agressiivne, kuid kui üritate oma e-posti peal hoida, on teatamise liiga pikk pikkus. . Kui seadistate Gmaili teavituskripti ajakava, sisestage croni tabelis järgmine rida:
* / 1 * * * * python / home/pi/wunderground.py
See kirje käivitab iga minuti jooksul gmailcheck.py skripti, et värskendusteade oleks kiirem.
See on kõik selleks! Te saate oma Pythoni skripte katsetada, tõstes meie / välja ütlused välja ja proovides neid läbi uute muutujatega. Kui leiad andmete sisendallika, saate selle muuta Pythoni skripti aktsiaturu keskmisteks muutujateks, õietolmu arv, Twitter mainib, kui selle jaoks on API, saate selle muuta LED-indikaatoriks.
Lõpetuseks tahan tänada kõiki suuri ressursse, mida ma selle projekti kallal kasutasin. See on olnud natuke üle kümne aasta, sest ma olin aktiivselt kirjutanud programme ja paar tolmu ja rooste väljavõtmist kulus paar lööki. / R / LearnPythoni toetajad aitasid mul öelda, et API-väljund Weather Undergroundi jaoks uuris, kuidas Michael üle Mitch Tech'il tegeles Gmaili Atomiga, mis oli selle LedBorgi jaoks lihtsaks analüüsimiseks ja Pythoni õppemoodulite uurimine Code Academy'is oli suurepärane võimalus kiirendada selle keele põhilist süntaksit ja struktuuri, mida ma varem ei kasutanud.