1Aug

Ehitage LED-indikaator vaarika pi( e-posti, ilmateade või midagi)

Rasvapuu Pi teeb kena kompaktse platvormi, mis ühendab indikaatorlampi igasuguste projektide jaoks - ilmateade, uued e-kirjad jne. Loe edasi, kui näeme sulle, kuidas siduda oma Pi pihuarvuti moodulit ja seadistada mõned põhilisedteated.

Miks ma tahan seda teha?

Kuna see on lõbus. Erinevalt paljudest meie juhenditest, kus me lisame ülaosale väikese valiku, mis näitab täpselt seda, millist kasu te projektist saadate, on see probleem sel juhul üsna lühike, sest kasu on lihtsalt lõbus.

Rasvapuur Pi on ideaalne seade mängima, katsetada elektroonikat ja õppida mõnd programmeerimist. Keegi -le ei vaja näiteks oma köögis ümbritsevat vihmaindikaatorit, kuid selle ehitamine on lõbus harjutus ja suurepärane meeldetuletus, et vihmavari tuua teile potentsiaalselt tormituudel.

Mida ma vajan?

Järgmiseks koos juhendajaga vajate mõnda asja. Kõigepealt eeldame, et olete juba järginud meie eelmist õpetust: HTG juhend Raspberry Pi-ga alustamiseks( ja seega on Rasbiini installimisega seotud rasvapõrsaid Pi).

Kui soovite seda projekti eelarvesse teha, võime kindlalt öelda, et uusim mudel Vaarikas Pi on töökoha jaoks märkimisväärne ülemäärane tase ja me soovitame sul puhtaks tolmu vanast vaarika Pi sulestlükatakse kapis või võtaks endale odavalt kasutatud eBay või muu sarnase. Eelarve mõistlik pikk-to-hammaste raspberry Pi 1 mudel A või mudel B ebaõnnestunud eBay jaoks 10-15 dollarini sobib ideaalselt selle projekti jaoks täiesti uue $ 35 praeguse põlvkonna ostmisega.

Lisaks funktsionaalse Pi seadme paigaldamisele, millel on selle installitud Raspbian, peate järgmisi asju:

  • 1 LedBorg moodul( ~ 5 USD, 4 USD saatmine Ühendkuningriigist USA-sse, töötab kõigi Raspberry Pi mudelitega).
  • 1 Clear Raspberry Pi Kohus sobib teie konkreetse Pi mudeliga nagu see Rasvlik Pi 1 mudel B juhtum.

Märkus: Läbipaistva / pehmendatud Pi juhtum on täiesti vabatahtlik, kuid kui te kasutate hetkel läbipaistmatut juhtumit, peidetakse teie LED-märgutuli sees. Te peate oma juhtumi jaoks auk välja laskma, et lasta valgust välja võtta või kasutada GPIO pikenduskaablit koos Breakout komplektiga nagu see, mida Adafruit Industries -l on LedBorg teie Vaarika Pi külge kinnitada. Breakout-kaabli kasutamine lisab projekti arvelt ligikaudu 8 dollarit, see pakub lõpptoote kohandamiseks rohkem võimalusi, nii et saate hõlpsalt asetada LED-i sees asjadesse või millegi alla, mida soovite valgustada.

LedBorg

paigaldamine Kuigi võite kindlasti luua täiesti tühjaks jääva LED-indikaatori( ja otsingumootorite uurimine tooks kaasa palju inimesi, kes seda teinud on), valmistab Piborgi organisatsioon sellist kompaktset ja odavat LED-moodulit, LedBorg, et me ei suutnud seda kasutada, kuna see põhineb meie Raspberry Pi LED indikaatorprojektil.

Mooduli paigaldamine on käepärane, kuna see on kavandatud sobivaks otse GP piipide GPIO tihvtidele. Esiteks, lülitage oma Pi välja ja avage kaas.

Paigaldusprotsessi kõige olulisem osa on see, et orienteerite moodulit, nii et LedBorgi ikoon oleks Raspberry Pi pardal RCA-moodulile kõige lähemal( ja seega LedBorgi ääre langeb koos Pi-laua servadegaLidBorgi rippuv osa, mis ripub Pi-lauale ja mitte servast välja).Vaata ülaltoodud fotot.

Kui teil on Pi-laud lahti, oleks nüüd suurepärane aeg sisseehitatud LED-näidikute( USB-portide kõrval) katmiseks, eriti kui kasutate selget kaas. Te ei soovi, et see oleks segane teie LedBorgi indikaatori lugemiseks, sest võrgu- ja võrgu märgutuled on nii säravad.

Me kaanesime oma valge elektrilise lindi kihiga. See hämaras neid piisavalt, et saaksime neid ikka veel viidetena, kuid need olid LedBorgiga nii palju hämmastunud, et see ei olnud enam häiriv.

Kui olete paigaldanud LedBorgi ja on valikuliselt kaetud Pi-valgusdioodi indikaatoriga elektrilindi abil, on aeg korpuse sulgeda tagasi. Käivitage oma pi enne, kui asute õppetundi järgmisele etapile.

LedBorgi tarkvara installimine

PiBorg pakub LedBorgile suurepärast tarkvarapaketti, mis sisaldab nii GUI-juhtelementi kui ka draivereid, mis võimaldavad LedBorgilt käsurealt juurdepääsu.

Enne alustamist peate veenduma, et olete haarates õige paketi oma Rasbiani versioonile ja oma Raspberry Pi pardal olevale versioonile #.

Kui teie Rasvapargi pardal pole montaaži auke, on see 1. versioon. Kui teie Rasv Piil on paigaldusavad( asuvad USB-portide ja toite- ja HDMI-pordi vahel), siis on see revision 2. Te peate ka teada kerneliteie Rasbiani installi versioon. Avage terminal ja sisestage järgmine käsk, et kontrollida:

uname-r

Kui teil on revision number ja kerneli number, võite külastada pakettide jaotist siin, et haarata oma paketi link. Meie juhul kasutame revision 1-d koos kerneliga 3.6.11, nii et me võtaksime raspbianii-02-09-rev1.zip-faili.

Selleks, et paigaldada kõik maiuspalad, peame piima terminali avama.ja sisestage järgmised käsklused, et installida LedBorg pakett.

Märkus: Sa pead asendada kolmanda käsuga URL-i paketi URL-iga oma pardal / kerneli kombinatsioonil.

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

Sellel hetkel on teil LedBorgi draiverite ja draiverite installitud GUI-ümbris. Teie Raspbian-töölaual näete GUI-ümbrise ikooni:

Mine edasi ja klõpsake GUID-ümbrise käivitamiseks ikooni LedBorg. Teid käsitletakse värvivalija liidesega nii:

Nüüd on ideaalne aeg, et veenduda, et teie moodul on funktsionaalne. Selleks proovige värvi, välja arvatud must, valimiseks. Katsetame selle, valides paar värvi:

Paistab hea! See on särav ja juhtum, mille me tellisime, on varustatud mõõduka hajutusega. Kui soovite enne liikumist LED-mooduliga rohkem mängida, klõpsake demo-režiimi:

Demorežiimis saate kõik värvid erinevate kiirustega ringi liikuda, kontrollida suure / madala väljundi ja muidu panna LED-mooduli sammudesse.

See on siin demo-režiimi jaotises, mille abil saate oma LedBorgi muuta ka paljude näitajate esimesena. Kui valite CPU-de jaotises Colours( värvid), hakkab LED Raspberry Pi's ARM-protsessoril koormust näitama, muutub see roheliseks kollaseks punaseks punaseks. Soovitame kiiruse muutmist aeglaseks muuta, kui olete sellel. - Kiirelt uuendatakse LED-i liiga kiiresti ja muudab CPU indikaatori häiriva asemel kasu.

Lisaks värvide valimiseks kasutage GUI-liideseid, saate valida terminalidest värve, kasutades RGB väärtusi. Avage terminal ja sisestage järgmine käsk, et LED välja lülitada:

echo "000" & gt;/dev/ ledborg

Kuidas LedBorg käitleb RGB väärtusi, on see, et kanal on välja lülitatud, 1 tähendab, et kanal on poole võimsusega ja 2 tähendab, et kanal on täisvõimsus. Nii näiteks määrab 001 0% punase kanali, 0% -lise rohelise kanali ja 50% võimsusega sinine kanal.

Vahetage väärtus 002-le ja LED-väljund jääb siniseks, kuid muutub heledamaks, sest sinine kanal on nüüd 100% -lise väljundi korral. Muutke 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 skriptide kasutamist, et lülitada LED-d lihtsast valgust tegeliku näitaja juurde.

Teie LedBorgi vihjeindikaatori

seadistamine Selle õpetuse selle osa jaoks koosneb meid mitu asja, et muuta meie LedBorg LED-moodul vihmasindeksi, mis põhineb meie asukoha prognoosil. Me kasutame Pythoni skripti, et helistada ilmateate API-le, mis omakorda loeb päevase vihma võimaluse ja seejärel lülitate LED-i välja, et näidata prognoositavat vihma, et helesinine oleks eredane sinine.

Esiteks peame andma Underground Ilma API-liidese võtme. Isiklikuks kasutamiseks ja väikeste arendusprojektide jaoks API on tasuta. Külastage Weather API registreerumise lehte ja registreeruge API-võtme jaoks.

Kui teil on oma API-võti, külastage Weather Underground'it ja otsige linna, mida soovite jälgida. Meie puhul jälgime San Fransisco, CA-d. San Fransisco'i prognooside lehe URL on:

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

Tähtsaks meie eesmärkideks on URL-i viimane osa: /CA/ San_Francisco.html. Me kavatseme seda kasutada API tööriista prognoositud URL-i muutmiseks. Põhi URL on:

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

Võite genereerida prognoose mis tahes USA linna jaoks, sisestades oma API-võtme, kahe tähe staatuse koodi ja linna nime URL-ist, mille olete tõmbunud oma ilmastMaa-alused otsingutulemused.

Kui olete oma API-klahviga ja riigi / linnaga sisestatud API-liidese URL-i, saate seejärel redigeerida järgmist Pythoni skripti, luues oma Pi-le piipkirjaga uue teksti dokumendi ja lisades sellele järgmise koodi:

urllib2 import urlopen
import json

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

# Järgmine on silumine väärtus.
# Muuda räsi ja muuda
# täisarv 0-100-le, et testida
# LED-vastust.

# pop = 0

print 'Praegune sademete tõenäosus on{ }.'. Formaat( pop)

# Vaikimisi seadistus on lülitada LED-iga
# -le võimalikuks 20% vihma võimalus. Saate reguleerida väärtust
# väärtusega "kui pop> 20:", nagu soovite.

kui pop & gt;20:
LedBorg = avatud( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
print( 'Rain!')
muidu:
LedBorg = open( '/dev/ ledborg'w ')
LedBorg.write( ' 000 ')
del LedBorg
prindi( ' Ei vihma! ')

Salvestage fail nagu wunderground.py kataloogis /home/pi/.Avage terminal ja sisestage järgmine käsk:

python wunderground.py

Kui olete sisestanud oma API-võtme ja oma riigi / linnakoode õigesti, peaks see tagama vastuse, mis näeb välja nagu:

Kui teie ala on sademete prognoositavteie LedBorgi väljund peaks välja nägema selline:

Nüüd ootab vihmane päev skripti nõuetekohaseks testimiseks oleks tüütu. Kui tänapäeval teie piirkonnas pole vihma vihma ja soovite, et LED süttib, redigeerige wunderground.py skripti ja asendage rea 13 väärtusega "pop = pop", mille väärtus on suurem kui 20, näiteks 60et meie prognoos tagastati. Pea meeles, et kui olete lõpetanud, muutke joont tagasi "pop = pop".

Viimane samm on cron-töö loomine, et automaatselt käivituda skript, mida me just korrapäraselt vahetasime, et hoida LED-indikaator voolu. Kuna see ülesanne on vajalik nii selle skripti kui ka järgneva e-postiindikaatori jaoks, katma me cron-tööde seadistamise pärast seda, kui oleme näidanud, kuidas teise skripti seadistada.

Teie LedBorgi seadistamine Gmaili näitajaks

Kellele ei meeldi dopamiini parandamine, mis sisaldab postkastis uut meili? Selle juhendi selles osas me näitame teile, kuidas kasutada LedBorgi uue Gmaili näitajaga. Nagu eelmisel korral, ühendame välise sisendi( antud juhul Atom'i voog API asemel) ja meie LED-i juhtimise lihtsa skripti.

Peame laiendama Pythoni installi funktsionaalsust natuke, installides FeedParseri, Pythoni RSS / Atomi voo lugemise tööriista. Avage terminal ja sisestage järgmine käsk:

sudo easy_install feedparser

Kui installimine on lõpule jõudnud, saame seadistada töö Gmaili kontroll-skripti loomiseks. Kleepige uuesti lehekaardi abil järgmine tekst redaktorisse. Muutke kasutajanime ja parooli Gmaili konto kasutajanimi ja parool, mida soovite kontrollida.

import söödajuht

# Sisesta oma Gmaili kasutajanimi
# ja parool.Ärge lisage
# avalehte @ gmail.com
# oma kasutajanime.

kasutajanimi = "kasutajanimi"
parool = parool

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

# Järgmine on silumine väärtus.
# Muuda räsi ja muutke
# täisarv 0 või 1, et testida
# LED-vastust.

# mail = 0

kui posti & gt;0:
LedBorg = avatud( /dev/ ledborg, w)
LedBorg.write( '020')
del LedBorg
print( 'Mail!')
muu:
LedBorg = open( '/dev/ ledborg', 'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' No mail! ')

Salvesta skript gmailcheck.py-ga. Avage terminal ja sisestage järgmine käsk:

python gmailcheck.py

Kui teie Gmaili postkastis on e-posti aadressi sisestatud, muutub LED roheliseks ja saad vastuse sellisena:

Kui teil on oma Gmaili postkastis oma LedBorgnäeb välja nii:

Nii nagu vihma kontrollimise skript, oleme lisanud ka silumise väärtuse. Kui teil pole uut e-posti, võite saata ennast e-kirjaga, et tõsta oma postkasti loendisse 1, või saate redigeerida kommentaari räsi ja muuta skripti testimiseks silumiseks joone "mail = 1".Ärge unustage, kui olete katsetamise lõpetanud, rida.

Hüppa juhendaja järgmise sektsiooni juurde, et teie Gmaili skript ajakava järgi käivitada.

Croni töökäigu seadistamine skripti käitamiseks

Nüüd, kui meil on kaks skripti, mida tuleb mängida, peame seadistama croni töö, et neid kogu päeva jooksul käivitada, et hoida LED-indikaator voolu.

Esimene asi, mida me tahame teha, on LED-i välja lülitada, kui see on praegu meie eelmistest katsetest. Terminali tüüp:

echo "000" & gt;/dev/ ledborg

Kui oled endiselt käsureal, saate avada cron-redaktori. Kui te pole kunagi varem cron-i töö juba seadistanud, soovitame kindlasti tutvuda meie juhendiga selle kasutamiseks siin. See tähendab, et me juhindume teid põhirakenduse seadistamisest siin.

Terminali tüüp:

sudo crontab -e

See avab Nano tekstitöötlusprogrammis raspbian cron tabeli. Kasutage nooleklahve, et liikuda allapoole. See on koht, kus me hakkame seadistama korduvat croni tööd meie Pythoni skriptidele.

Kui soovite vihma skripti seadistada, sisestage cron tabelisse järgmine rida:

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

vajutage CTRL + X väljumiseks;valige olemasolev cron tabel salvestamiseks ja üle kirjutamiseks Jah. Väärtus, mille me sisestasime cron tabelisse "* / 5 * * * *", seadistab skripti iga 5 minuti järel igaveseks.

Iga 5 minuti järel on suurepärane aeg skripti jaoks, mis kontrollib prognoositud vihma - võite isegi väita, et see on natuke liiga agressiivne - aga kui sa üritad oma e-kirja peal hoida, on see veidi liiga pikkteatis. Kui seadisite Gmaili teate skripti ajakava, sisestage cron tabelis järgmine rida:

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

See sisestus käitab gmailcheck.py skripti iga minuti eest palju kiireminiajakohastage teade.

See on kõik selleks! Saate katsetada oma Pythoni skripte, tõmbates / / muu väljavõtteid välja ja eemaldades uued muutujad. Kui leiate andmete sisendallika, võite selle muutuda Pythoni skripti aktsiaturu keskmisteks muutujateks, märkides Twitteri, kui see on olemas API jaoks, saate selle muuta ümbritseva LED-indikaatoriks.

Lõpetuseks tahaksin tänada kõiki suuri ressursse, mida ma selle projekti jaoks töötasin. See on olnud natuke üle kümne aasta, sest ma kirjutasin aktiivselt programme ja võttis pahuks koputama tolmu ja rooste. /r/ LearnPythoni toetajad aitasid mulle minna Underground'i API väljundist, uurides, kuidas Michael Mitch Tech tegeles Gmail AOMi toiduga, mis oli lihtne LedBorgi parsimisel, ja Pythoni õppemoodulite õppimine Code Academyis oli suurepäraneviis, kuidas omandada keele põhiline süntaks ja struktuur, mida ma varem kunagi ei kasutanud.