1Aug

Veidojiet LED indikatoru ar aveņu Pi( e-pastam, laika apstākļiem vai jebko)

Aveņu Pi veido jauku, kompaktu platformu, lai piestiprinātu indikatora gaismu dažādiem projektiem - paziņojumu par laika apstākļiem, jaunus e-pastus utt. Lasiet tālāk, jo mēs parādīsim, kā pieslēgt LED moduli savam Pi un izveidot dažus pamatapaziņojumi.

Kāpēc es gribu to izdarīt?

Tā ir jautri. Atšķirībā no daudziem mūsu apmācības veidiem, kur mēs iekļaujam nelielu pievilcību augšpusē, precīzi nosakot, kādu labumu jūs gūsiet no projekta, šajā gadījumā tā ir diezgan īsa, jo ieguvums ir vienkārši jautri.

Raspberry Pi ir ideāla ierīce, ar ko spēlēt, eksperimentēt ar elektroniku un apgūt kādu programmu. Piemēram, neviens savā virtuvē neietilpst apkārtējās temperatūras lietus indikatorā, bet tā veidošana ir jautrs uzdevums un lielisks atgādinājums, ka jūsu lietussargs ar jums varēs pavadīt vētras dienās.

Ko man vajag?

Lai sekotu kopā ar mācību metodi, jums būs vajadzīgas dažas lietas. Pirmkārt, mēs pieņemam, ka jūs jau sekojat mūsu iepriekšējai apmācībai: HTG rokasgrāmata, lai sāktu darbu ar Raspberry Pi( un tādēļ ir pamats, uz ko attiecas Rasbian instalēšana mūsu Raspberry Pi).

Ja jūs meklējat šo projektu par budžetu, mēs varam droši pateikt, ka jaunākais modelis Aveņu Pi ir ievērojams darba apjoma pārsniegums, un mēs aicinām jūs pūst putekļus no vecā Aveņu Pi, kas jums iršūts skapī vai uzņemt lētu lietotu vienu eBay vai tamlīdzīgi. Budžets saprātīgi ilgu zobu a Raspberry Pi 1 modelis A vai modelis B, kas piesaistīts pie eBay par 10-15 ASV dolāriem, ir ideāli piemērots šim projektam, salīdzinot ar iegādi pavisam jauna 35 ASV dolāra pašreizējās paaudzes Pi.

Papildus tam, ka tajā ir instalēta funkcionāla Pi vienība ar Raspbian, jums būs nepieciešamas šādas lietas:

  • 1 LedBorg modulis( ~ 5 ASV dolāri ar 4 ASV dolāriem piegādi no AK uz ASV, darbojas ar visiem Raspberry Pi modeļiem).
  • 1 Clear Raspberry Pi lieta atbilst jūsu konkrētajam Pi modelim, piemēram, šī Raspberry Pi 1 B paraugam.

Piezīme: Dzidrs / mirdzošs Pi kabelis ir pilnīgi izvēles iespēja, taču, ja jūs šobrīd izmantojat necaurspīdīgu lietu, tad jūsu LED indikators tiks paslēpts iekšā.Jums vai nu vajadzēs izgriezt caurumu jūsu gadījumā, lai izgaismotu gaismu vai izmantotu GPIO pagarinājuma kabeli ar izlaušanās komplektu, piemēram, šo no Adafruit Industries, lai piesaistītu LedBorg uz jūsu Raspberry Pi. Izmantojot izlaides kabeli, par projekta izmaksām tiek pieskaitīti aptuveni 8 ASV dolāri, tāpēc tas piedāvā lielāku potenciālu gala produkta pielāgošanai, jo jūs varat vieglāk novietot gaismas diodes iekšienē vai zem tā, ko vēlaties apgaismot.

LedBorg

uzstādīšana Lai gan jūs noteikti varētu uzbūvēt pilnīgi no-scratch LED indikatoru( un meklētājprogrammu aptaujā būs daudz cilvēku, kas to ir izdarījuši), Piborg organizācija ražo tik kompaktu un lētu LED moduli, LedBorg, ka mēs nevarētu pretoties to izmantot kā pamatu mūsu Aveņu Pi LED indikatora projektam.

Moduļa uzstādīšana ir snap, jo tā ir paredzēta, lai ietilptu tieši pāri GPIO pīķiem Pi. Pirmkārt, izslēdziet savu Pi un atveriet lietu.

Vissvarīgākā instalācijas procesa daļa ir tā, ka jūs orientējat moduli tā, lai LedBorg ikona būtu vistuvāk RCA modulim uz Raspberry Pi paliktni( un tādējādi LedBorg mala ir izskrūvēta ar Pi malām arLedBorg karājas virs Pi plāksnes, nevis pie malas).Skatīt fotoattēlu iepriekš.

Kamēr jūs atverat Pi plati, tagad būtu lielisks laiks, lai segtu borta LED indikatorus( blakus USB portiem), it īpaši, ja izmantojat skaidru lietu. Jūs nevēlaties, lai tas būtu mulsinoši, lai izlasītu savu LedBorg indikatoru, jo strāvas un tīkla indikatora gaismas ir tik spilgtas.

Mēs pārklājām mūs ar baltās elektriskās lentes slāni. Tas viņiem pietiekami aptumšoja, lai mēs vēl varētu tos atsaukties, bet tie bija tik daudz dimmeri kā LedBorg, tas vairs nenovērsa uzmanību.

Kad esat uzstādījis LedBorg un pēc izvēles ir aprīkots ar Pi LED indikatoriem ar elektrisko lentu, ir pienācis laiks slēgt lietu atpakaļ uz augšu. Ielādējiet savu pi pirms, pārejot uz nākamo apmācības fāzi.

LedBorg programmatūras instalēšana

PiBorg nodrošina lielisku programmatūras paketi LedBorg, kas ietver gan GUI kontrolieri, gan vadītājus, lai piekļūtu LedBorg no komandrindas.

Pirms sākat darbu, jums ir jāpārliecinās, ka jūs satverat pareizo Rasbian versiju un jūsu Raspberry Pi pārskati #.

Ja jūsu Aveņu Pi kartupei nav montāžas atveres, tā ir 1. redakcija. Ja jūsu Aveņu Pi ir montāžas caurumi( atrodas ar USB portiem un starp barošanas un HDMI portu), tad tas ir 2. redakcija. Jums arī jāzina kodolsjūsu Rasbian instalācijas versija. Atveriet termināli un ievadiet šādu komandu, lai pārbaudītu:

uname-r

Tiklīdz jums ir Pārskatīšanas numurs un kodola numurs, šeit varat apmeklēt sadaļu Pakas, lai greifersu saiti uz jūsu pakotni. Mūsu gadījumā mēs izmantojam 1. pārskatīšanas paneli ar 3.6.11 kodolu, lai mēs varētu satvert failu raspbian-2013-02-09-rev1.zip.

Lai instalētu visus labumus, mums jāatver terminālis Pi.un pēc tam ievadiet šādas komandas, lai instalētu LedBorg pakotni.

Piezīme: Trešajā komandā URL jāaizvieto ar paketi vietrādim jūsu kuģa / kodola kombinācijai.

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

Šajā brīdī jums tagad ir GUI aptinums LedBorg draiveriem un pašiem instalētajiem draiveriem. Jūsu Raspbian darbvirsmā jūs redzēsit GUI apvalka ikonu:

Iet uz priekšu un noklikšķiniet uz LedBorg ikonas, lai palaistu GUI iesaiņojumu. Tas tiks apstrādāts ar krāsu atlasītāja saskarni šādi:

Tagad ir ideāls laiks, lai pārliecinātos, vai modulis ir funkcionāls. Izvēlies jebkuru krāsu, izņemot melnu, lai to izmēģinātu. Mēs to pārbaudīsim, izvēloties dažas krāsas:

Izskatās labi! Tas ir gaišs un matēta plastmasa no lietas, ko mēs pasūtījām projektam, piedāvā mērenu izplatību. Ja pirms spēles turpināšanas vēlaties spēlēt ar LED moduli, noklikšķiniet uz Demo režīms:

Demonstrācijas režīmā varat apiet visas krāsas ar dažādiem ātrumiem, pārbaudiet augsto / zemo izejas līmeni un citādi ievietojiet LED moduli pa soļiem.

Šajā sadaļā demo režīmā jūs varat arī pārvērst savu LedBorg pirmo par daudziem rādītājiem. Izvēloties CPU sadaļā Krāsas, gaismas diode sāks mainīties no zaļas uz dzeltenu uz sarkanu, lai norādītu uz Raspberry Pi ARM procesora slodzi. Mēs iesakām mainīt ātrumu uz lēnu, kamēr jūs to esat. Ātri atjauno LED pārāk ātri un padara CPU indikatoru uzmanīgu, nevis noderīgu.

Papildus GUI saskarnes lietošanai, lai izvēlētos krāsas, jūs varat izvēlēties termināļa krāsas, izmantojot RGB vērtības. Atveriet termināli un ievadiet šādu komandu, lai izslēgtu LED:

echo "000" & gt;/dev/ ledborg

Kā LedBorg regulē RGB vērtības, 0 nozīmē, ka kanāls ir izslēgts, 1 nozīmē, ka kanāls ir puse jaudas, un 2 nozīmē, ka kanāls ir pilna jauda. Piemēram, 001 iestatītu Red kanālu 0%, zaļo kanālu 0% un zilu kanālu ar 50% jaudu.

Mainiet vērtību uz 002 un LED izeja paliek zila, bet kļūst spilgtāka, jo Blue kanāls tagad ir 100% izeja. Mainiet vērtību līdz 202 un sarkanā un zilā krāsā ar pilnu jaudu, lai izveidotu purpura krāsu.

Tagad, kad mēs zinām, kā manuāli manipulēt ar LED, apskatiet, kā izmantot skriptus, lai mūsu gaismas diodes no vienkāršas gaismas pārvērstu par faktisko rādītāju.

Jūsu LedBorg kā lietus rādītāja

konfigurēšana Šajā apmācības daļā mēs saliedēsim vairākas lietas, lai mūsu LedBorg LED moduli pārvērstu par lietus rādītāju, pamatojoties uz laika prognozi mūsu atrašanās vietai. Mēs izmantosim Python skriptu, lai izsauktu laikapstākļu API, kas savukārt izlasīs dienas lietus iespēju un pēc tam pārslēgsies no gaismas diode līdz spilgti zilā krāsā, lai norādītu uz prognozēto lietus.

Pirmkārt, mums ir jāiegūst API piekļuves atslēga, lai izmantotu Weather Underground. Lietošanai personiski un maziem attīstības projektiem API ir bezmaksas. Apmeklējiet Weather API reģistrēšanās lapu šeit un reģistrējieties API atslēgai.

Kad esat izveidojis savu API atslēgu, apmeklējiet Weather Underground un meklējiet pilsētu, kuru vēlaties pārraudzīt.Šajā gadījumā mēs pārraudzīsim Sanfransisko, CA.Sanfrancisko prognozes lapas URL ir:

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

Mūsu mērķiem svarīga ir pēdējā URL daļa: /CA/ San_Francisco.html. Mēs to izmantosim, lai rediģētu API rīka prognožu URL.Bāzes URL ir:

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

Jūs varat ģenerēt prognozi jebkurai ASV pilsētai, ievadot savu API atslēgu, divu burtu valsts kodu un pilsētas nosaukumu no vietnes, kuru jūs izvilka no laikaPazemes meklēšanas rezultāti.

Kad esat ievadījis API URL ar savu API atslēgu un ievadīto valsti / pilsētu, pēc tam varat rediģēt šādu Python skriptu, izveidojot jaunu tekstu dokumentu savā Pi ar Leafpad un ielīmējot tajā šādu kodu:

no urllib2 import urlopen
import json

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

# Šāda ir atkļūdošanas vērtība.
# Rediģējiet hash un mainiet
# veselam skaitlim ar 0-100, lai pārbaudītu
# LED atbildi.

# pop = 0

print 'Pašreizējā nokrišņu iespēja ir{ }.'. Formāts( pop)

# Noklusējuma iestatījums ir ieslēgt LED
#, lai jebkāda lietus iespēja pārsniegtu 20%.Jūs varat noregulēt
# vērtību, ja vēlaties, ja tas ir pop & gt; 20:.

ja pop & gt;20:
LedBorg = atvērt( '/dev/ ledborg', 'w')
LedBorg.write( '002')
del LedBorg
drukāt( 'lietus!')
cits:
LedBorg = atvērts( '/dev/ ledborg'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Nav lietus! ')

Saglabājiet failu kā wunderground.py /home/pi/ direktorijā.Atveriet termināli un ierakstiet šādu komandu:

python wunderground.py

Ja esat ievadījis savu API atslēgu un jūsu valsts / pilsētas kodi pareizi, tai jāatver atbilde, kas izskatās šādi:

Ja jūsu teritorijai ir paredzams nokrišņu daudzumsjūsu LedBorg produkcijai vajadzētu izskatīties šādi:

Tagad gaida lietainu dienu, lai pareizi pārbaudītu skriptu būtu garlaicīgs. Ja šodien jūsu laika zonā nav lietus iespēju, un jūs vēlaties redzēt LED iedegties, rediģējiet wunderground.py skriptu un nomainiet 13. Rindiņas vērtību "pop = pop", kuru vērtība pārsniedz 20, piemēram, 60ka mūsu prognoze atgriezās. Vienkārši atcerieties mainīt līniju atpakaļ uz "pop = pop", kad esat pabeidzis.

Pēdējais solis ir iestatīt cron uzdevumu, lai automātiski palaistu skriptu, ko tikko saglabājām regulāri, lai LED indikators būtu noturīgs. Tā kā šis uzdevums ir vajadzīgs gan šim skriptam, gan nākamajam e-pasta rādītājam, mēs apskatīsim crona darba iestatīšanu, kad būsim parādījuši, kā iestatīt citu skriptu.

Jūsu LedBorg konfigurēšana kā Gmail indikators

Kam nepatīk dopamīna labošana, kas rodas, redzot jaunu e-pastu savā iesūtnē?Šajā apmācības daļā mēs parādīsim, kā izmantot LedBorg kā jaunu Gmail rādītāju. Tāpat kā pēdējā laikā, mēs apvienojam ārējo ievadni( šajā gadījumā Atom plūsmu, nevis API) un vienkāršu skriptu, lai vadītu LED.

Mums vajag mazliet paplašināt mūsu Python instalācijas funkcionalitāti, instalējot FeedParser, Python RSS / Atom plūsmas lasīšanas rīku. Atveriet terminālu un ievadiet šādu komandu:

sudo easy_install feedparser

Kad instalēšana ir pabeigta, mēs varam iestatīt darbu, izveidojot mūsu Gmail pārbaudes skriptu. Atkal, izmantojot Leafpad, ielīmējiet šādu tekstu redaktorā.Mainiet lietotājvārdu un paroli, lai atbilstu Gmail konta lietotājvārdam un parolē, kuru vēlaties pārbaudīt.

importēšanas barības nesējs

# Ievadiet savu Gmail lietotājvārdu
# un paroli. Neiekļauj
# # @ gmail.com
daļas # jūsu lietotājvārdu.

lietotājvārds = "lietotājvārds"
parole = "parole"

pasts = int( feedparser.parse( "https: //" + lietotājvārds + ":" + parole + "@ mail.google.com /gmail/feed/ atoms") ["] [" fullcount "])

# Šāda ir atkļūdošanas vērtība.
# Rediģējiet hash un mainiet
# veselam skaitlim ar 0 vai 1, lai pārbaudītu
# LED reakciju.

# mail = 0

ja pasts>0:
LedBorg = atvērt( '/dev/ ledborg', 'w')
LedBorg.write( '020')
del LedBorg
drukāt( 'Mail!')
cits:
LedBorg = atvērts( '/dev/ ledborg'w ')
LedBorg.write( ' 000 ')
del LedBorg
print( ' Nav pasta! ')

Saglabājiet skriptu kā gmailcheck.py. Atveriet terminālu un ierakstiet šādu komandu:

python gmailcheck.py

Ja jūsu Gmail iesūtnē esat sūtījis e-pastu, LED kļūs zaļš un jūs saņemsit atbildi šādi:

Ja jums ir e-pasts jūsu Gmail iesūtnē, jūsu LedBorgizskatīsies šādi:

Tāpat kā lietus pārbaudes skripts, mēs esam iekļāvuši atkļūdošanas vērtību. Ja jums nav neviena jauna e-pasta, jūs varētu nosūtīt sev e-pastu, lai paaugstinātu iesūtnes skaitli līdz 1, vai arī jūs varētu izlabot komentāru hash un nomainīt atkļūdošanas līniju uz "mail = 1", lai pārbaudītu skriptu. Atcerieties atgriezties pie līnijas, kad esat pabeidzis testēšanu.

Apmeklējiet nākamo apmācības sadaļu, lai jūsu Gmail skriptu palaistu grafikā.

Cron uzdevuma iestatīšana sava skripta izpildīšanai

Tagad, kad mums ir divi skripti, ar ko spēlēt, mums ir jāizveido cron uzdevums, lai tos palaistu visu dienu, lai uzturētu LED indikatoru.

Pirmā lieta, ko mēs vēlamies darīt, ir izslēgt LED, ja tas pašlaik ir no mūsu iepriekšējiem eksperimentiem. Termināļa tipā:

echo "000" & gt;/dev/ ledborg

Kamēr jūs joprojām esat komandrindā, jūs varat atvērt cron redaktoru. Ja jūs nekad neesat iestatījis cron darbu, mēs noteikti iesakām izlasīt mūsu ceļvedi, kā to izmantot šeit. Tas nozīmē, ka mēs jums palīdzēsim izveidot pamata grafiku tieši šeit.

Termināļa tipā:

sudo crontab -e

Tas atvieglo Raspbian cron tabulu Nano teksta redaktorā.Izmantojiet bulttaustiņus, lai ritinātu uz leju līdz pat apakšai.Šajā vietā mēs plānojam izveidot mūsu ciklonu, kas tiek atjaunots, izmantojot mūsu Python skriptus.

Ja vēlaties iestatīt lietus skriptu, ievadiet cron tabulā šādu rindu:

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

Nospiediet CTRL + X, lai izietu;izvēlieties jā, lai saglabātu un pārrakstītu esošo cron tabulu. Vērtība, kuru mēs ievadījām cron tabulā "* / 5 * * * *", nosaka skriptu ik pēc 5 minūtēm uz visiem laikiem.

Katru 5 minūtes ir piemērots laika skripts skriptam, kas pārbauda prognozēto lietus - jūs pat varētu apgalvot, ka tas ir mazliet pārāk agresīvs - bet, ja jūs mēģināt noturēt savu e-pasta adresi, tas ir nedaudz par ilgu laikupaziņojums. Ja izveidojat Gmail paziņojumu skripta grafiku, ievadiet cron tabulā šādu rindu:

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

Šis ieraksts gmailcheck.py skriptu ik minūtē izpilda daudz ātrākatjaunināt paziņojumu.

Tas viss ir tā!Jūs varat eksperimentēt ar saviem Python skriptiem, atceļot if / else paziņojumus no mums un izmēģinot tos ar pavisam jauniem mainīgajiem. Ja jūs varat atrast datu ievades avotu, kuru jūs varat pārvērst par mainīgo savā Python skripta akciju tirgus vidējos rādītājos, ziedputekšņu skaits, Twitter minē, ja tam ir API, varat to pārvērst apkārtējā gaismas diožu indikatorā.

Visbeidzot, es vēlos pateikties par visiem lielajiem resursiem, ko izmantoju šim projektam. Tas ir bijis mazliet vairāk nekā desmit gadu, jo es aktīvi rakstīju programmu, un bija vajadzīgi daži triecieni, lai iegūtu putekļus un rūsu. /r/ "KnowPython" ieguldītāji palīdzēja mani uzzināt par Weather Underground API izvadi, pētot, kā Michael pie Mitch Tech strādāja ar Gmail Atom plūsmu, kas tika analizēta viegli LedBorg, un Pitonas mācību moduļu studijas Code Academy bija lielisksveids, kā uztvert pamata valodas sintaktu un valodas struktūru, kuru nekad neesmu lietojis.