Izveidojiet LED indikatoru ar Raspberry Pi (e-pastam, laikapstākļiem vai kaut ko)
Raspberry Pi padara jauku kompaktu platformu, lai pievienotu indikatoru gaismu visdažādākajiem projektiem - laika paziņojumiem, jauniem e-pastiem utt. Lasiet, kā parādīsim, kā piestiprināt LED moduli savam Pi un iestatīt dažus pamata paziņojumus.
Kāpēc es gribu to darīt?
Jo tas ir jautri. Atšķirībā no daudzām mūsu apmācībām, kurās augšpusē ir iekļauts neliels blurbs, kurā precīzi aprakstīts, kāds ieguvums jums būs no projekta, šajā gadījumā ir ļoti īss, jo ieguvums ir vienkārši jautri.
Raspberry Pi ir ideāla ierīce, lai spēlētu apkārt, eksperimentētu ar elektroniku un apgūtu kādu programmu. Neviens vajadzībām piemēram, apkārtējā lietus indikators savā virtuvē, bet viena ēka ir jautri vingrinājums un lielisks atgādinājums, lai jūsu lietussargs ar jums varētu satikt vētrainajās dienās.
Kas man ir nepieciešams?
Lai sekotu līdzi apmācībai, jums būs nepieciešamas dažas lietas. Pirmkārt, mēs pieņemam, ka jūs jau esat sekojis mūsu iepriekšējai apmācībai: HTG ceļvedis, lai sāktu darbu ar Raspberry Pi (un tādējādi pamatus, kas aptverti līdz Rasbian instalēšanai mūsu Raspberry Pi).
Ja jūs plānojat veikt šo projektu budžetā, mēs varam droši pateikt, ka jaunākais modelis Raspberry Pi ir ievērojams pārspīlējums darbam, un mēs aicinām jūs izpūst putekļus no vecā Raspberry Pi skapī vai uzņemt lētu lietotu vienreizēju eBay vai tamlīdzīgu. Budžets gudrs Raspberry Pi 1 modelis A vai B modelis aizgāja pie eBay par $ 10-15 ir ideāli piemērots šim projektam, iegādājoties pavisam jaunu $ 35 pašreizējo paaudzi Pi.
Papildus funkcionālai Pi vienībai, kurā ir instalēta Raspbian, jums būs nepieciešamas šādas lietas:
- 1 LedBorg modulis (~ $ 5,00 ar 4 ASV dolāriem no ASV uz ASV, strādā ar visiem Raspberry Pi modeļiem).
- 1 Skaidrs Raspberry Pi gadījums, kas ir saderīgs ar jūsu konkrēto Pi modeli, piemēram, Raspberry Pi 1 modeļa B gadījumā.
Piezīme: Skaidrs / matēts Pi gadījums ir pilnīgi neobligāts, bet, ja jūs pašlaik izmantojat necaurspīdīgu gadījumu, tad jūsu LED indikators būs paslēpts. Jums vai nu būs nepieciešams izgriezt caurumu jūsu gadījumā, lai ļautu apgaismojumam, vai arī izmantojiet GPIO pagarinājuma kabeli ar izlaušanas komplektu, piemēram, šo no Adafruit Industries, lai piesaistītu LedBorg ar savu Raspberry Pi. Izmantojot izlaišanas kabeli, par aptuveni 8 ASV dolāriem tiek pieskaitīts projekta rēķins, kas piedāvā vairāk iespēju pielāgot galaproduktu, jo jūs varat vieglāk novietot LED iekšpusē vai kaut ko, ko vēlaties apgaismot.
LedBorg instalēšana
Lai gan jūs noteikti varētu izveidot sev pilnīgi no nulles LED indikatoru (un meklētājprogrammas aptauja radīs daudz cilvēku, kas to izdarījuši), Piborg organizācija ražo tik kompaktu un lētu LED moduli, LedBorg, ka mēs nevarējām. t pret to izmantot kā pamatu mūsu Raspberry Pi LED indikatora projektam.
Moduļa instalēšana ir snap, jo tā ir izstrādāta, lai tā būtu piemērota tieši pār GPIO tapām uz Pi. Pirmkārt, izslēdziet savu Pi un atveriet lietu.
Svarīgākā uzstādīšanas procesa daļa ir tā, ka jūs orientējat moduli tā, lai LedBorg ikona būtu vistuvāk RCA modulim Raspberry Pi dēlis (un līdz ar to LedBorg mala ir vienāda ar Pi kuģa malām ar pārsegumu daļa no LedBorg, kas karājas virs Pi kuģa, nevis no malas). Skatiet iepriekš minēto fotogrāfiju.
Kamēr jums ir atvērta Pi karte, tagad būtu lielisks laiks, lai segtu borta LED indikatorus (blakus USB portiem), jo īpaši, ja izmantojat skaidru gadījumu. Jūs nevēlaties, lai tas būtu mulsinoši, lai lasītu jūsu LedBorg indikatoru, jo strāvas un tīkla indikatori ir tik spilgti.
Mēs pārklājām ar balto elektrisko lentu. Tas viņiem pietrūka, lai mēs varētu tos atsaukties, bet tie bija tik daudz spilgtāki, nekā LedBorg, kas vairs netraucēja.
Kad esat uzstādījis LedBorg un pēc izvēles ir iekļāvis Pi LED indikatorus ar elektrisko lenti, ir pienācis laiks aizvērt lietu. Pirms braukšanas uz nākamo apmācības fāzi, palaidiet savu Pi.
LedBorg programmatūras instalēšana
PiBorg nodrošina lielisku programmatūras pakotni LedBorg, kas ietver gan GUI kontrolieri, gan draiverus, lai piekļūtu LedBorg no komandrindas.
Pirms sākam darbu, jums ir jāpārliecinās, ka esat satveris pareizo paketi jūsu Rasbian versijai un jūsu Raspberry Pi kuģa versiju..
Ja jūsu Raspberry Pi dēlis nav montāžas caurumu, tas ir 1. redakcija. Ja jūsu Raspberry Pi ir uzstādīšanas caurumi (atrodas pie USB portiem un starp strāvas un HDMI portu), tad tas ir 2. versija. Jums ir jāzina arī kodola versija jūsu Rasbiešu instalācijas. Atveriet termināli un ievadiet šādu komandu, lai pārbaudītu:
uname -r
Kad būsit pārskatīšanas numurs un koda numurs, šeit varat apmeklēt sadaļu Iepakojumi, lai piesaistītu saiti jūsu pakotnei. Mūsu gadījumā mēs izmantojam Revision 1 dēli ar 3.6.11 kodolu, lai mēs paņemtu failu raspbian 2013-02-09-rev1.zip.
Lai instalētu visus labumus, mums nepieciešams atvērt termināli Pi. un pēc tam ievadiet šādas komandas, lai instalētu LedBorg paketi.
Piezīme: Trešajā komandā esošais URL ir jāaizstāj ar jūsu kuģa / kodola kombinācijas paketes URL.
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
Šajā brīdī jums tagad ir GUI iesaiņojums LedBorg vadītājiem un paši vadītāji. Raspbian darbvirsmā jūs redzēsiet GUI iesaiņojuma ikonu:
Iet uz priekšu un noklikšķiniet uz ikonas LedBorg, lai palaistu GUI iesaiņojumu. Jūs tiksiet apstrādāts ar krāsu atlasītāja interfeisu, piemēram:
Tagad ir ideāls laiks, lai pārliecinātos, ka jūsu modulis ir funkcionāls. Izvēlieties jebkuru krāsu, izņemot melno krāsu, lai to izmēģinātu. Mēs to pārbaudīsim, izvēloties dažas krāsas:
Izskatās labi! Tas ir spilgts un matētais plastmasas materiāls, ko pasūtījām projektam, piedāvā mērenu izkliedi. Ja vēlaties doties spēlēt ar LED moduli vēl pirms pārvietošanās, noklikšķiniet uz Demo režīms:
Demonstrācijas režīmā jūs varat pārvietoties pa visām krāsām dažādos ātrumos, pārbaudīt augsto / zemo jaudu un citādi novietot LED moduli caur ātrumu.
Demonstrācijas sadaļā jūs varat arī pārvērst savu LedBorg par pirmo no daudzajiem rādītājiem. Izvēloties CPU sadaļā Krāsas, LED 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 esat pie tā. Ātri atjaunina LED pārāk ātri un padara CPU indikatoru par traucējošu, nevis noderīgu.
Papildus GUI interfeisa izmantošanai, lai izvēlētos krāsas, varat izvēlēties termināļa krāsas, izmantojot RGB vērtības. Atveriet termināli un ievadiet šādu komandu, lai izslēgtu LED:
atbalss "000"> / dev / ledborg
LedBorg rokturi RGB vērtības ir tāds, ka 0 nozīmē, ka kanāls ir izslēgts, 1 nozīmē, ka kanāls ir puse jauda, un 2 nozīmē, ka kanāls ir pilna jauda. Tā, piemēram, 001 iestatītu sarkano kanālu 0%, zaļo kanālu - 0% un zilo kanālu - 50%.
Mainiet vērtību uz 002 un LED izeja paliek zila, bet kļūst gaišāka, jo zilais kanāls tagad ir 100% izeja. Mainiet vērtību līdz 202, bet sarkanā un zilā krāsā ar pilnu jaudu apvienojas, lai iegūtu fuksētu krāsu.
Tagad, kad mēs zinām, kā apstrādāt LED manuāli, aplūkosim skriptu izmantošanu, lai ieslēgtu mūsu LED no vienkāršas gaismas līdz faktiskajam indikatoram.
LedBorg konfigurēšana kā lietus indikators
Šajā apmācības daļā mēs apvienosim vairākas lietas, lai pārvērstu LedBorg LED moduli lietus indikatorā, pamatojoties uz laika apstākļu prognozi mūsu atrašanās vietai. Mēs izmantosim Python skriptu, lai izsauktu laika apstākļu API, kas savukārt lasīs dienas lietus varbūtību, un pēc tam pārslēgs LED no izslēgta uz spilgti zilu, lai norādītu prognozēto lietus.
Pirmkārt, mums ir jāsaņem API piekļuves atslēga laika apstākļu pazemē. Personīgai lietošanai un nelieliem attīstības projektiem API ir bezmaksas. Apmeklējiet šeit API API pierakstīšanās lapu un pierakstieties API atslēgai.
Kad esat ieguvis savu API atslēgu, apmeklējiet meteoroloģisko metru un meklējiet pilsētu, kuru vēlaties pārraudzīt. Mūsu gadījumā mēs uzraudzīsim San Fransisco, CA. San Fransisco prognozes lapas URL ir:
http://www.wunderground.com/US/CA/San_Francisco.html
Svarīga mūsu mērķu daļa ir pēdējā URL daļa: /CA/San_Francisco.html. Mēs to izmantosim, lai rediģētu API rīka prognozes URL. Bāzes URL ir:
http://api.wunderground.com/api/YOUR API KEY / prognoze / 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 URL, kuru esat noņēmis no laika pazemes meklēšanas rezultātiem.
Pēc tam, kad būsit API API ar savu API atslēgu un valsti / pilsētu, varat rediģēt šādu Python skriptu, izveidojot jaunu Ps dokumenta dokumentu, izmantojot Leafpad un ielīmējot šādu kodu:
no urllib2 importa urlopen
importēt json
req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / prognoze / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['prognoze'] ['txt_forecast'] ['prognozes diena'] [0] ['pop'])# Tālāk ir atkļūdošanas vērtība.
# Rediģējiet maiņu un izmaiņas
#, lai pārbaudītu veselu skaitli līdz 0-100
# LED atbilde.# pop = 0
drukāt 'Pašreizējā nokrišņu iespēja ir . ". formāts (pop)
# Noklusējuma iestatījums ir ieslēgt LED
# par jebkādu varbūtību, kas pārsniedz 20%. Jūs varat pielāgot
# vērtība "ja pop> 20:", kā vēlaties.
ja pop> 20:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ('002')
del LedBorg
drukāt (“Lietus!”)
cits:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
drukāt (“Lietus nav!”)
Saglabājiet failu kā wunderground.py / home / pi / direktorijā. Atveriet termināli un ierakstiet šādu komandu:
python wunderground.py
Ja esat pareizi ievadījis savu API atslēgu un jūsu valsts / pilsētas kodus, tam jāatgādina atbilde, kas izskatās šādi:
Ja jūsu apgabalā tiek prognozēts nokrišņu daudzums, LedBorg izvadam vajadzētu izskatīties šādi:
Tagad, gaidot lietainu dienu, lai pareizi pārbaudītu skriptu, būtu garlaicīgs. Ja jūsu reģionā nav lietus varbūtības un vēlaties redzēt LED iedegšanos, rediģējiet wunderground.py skriptu un nomainiet “pop = pop” caurlaidības vērtību 13. rindā ar vērtību, kas lielāka par 20, piemēram, 60 ka 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 darbu, lai automātiski palaist skriptu, ko mēs tikko saglabājām regulāri, lai saglabātu LED indikatora strāvu. Tā kā šis uzdevums ir nepieciešams gan šim skriptam, gan tālāk norādītajam e-pasta indikatoram, mēs aptversim crona darba iestatīšanu pēc tam, kad būsim parādījuši, kā iestatīt citu skriptu.
LedBorg konfigurēšana kā Gmail indikators
Kas nepatīk dopamīna labojums, kas tiek parādīts, redzot jaunu e-pastu savā iesūtnē? Šajā apmācības daļā mēs parādīsim, kā izmantot LedBorg kā jaunu Gmail indikatoru. Tāpat kā pagājušajā reizē, mēs apvienosim ārēju ievadi (šajā gadījumā API, nevis Atomu plūsmu) un vienkāršu skriptu, lai vadītu mūsu LED.
Mums nedaudz jāpaplašina Python instalācijas funkcionalitāte, instalējot FeedParser, Python RSS / Atom plūsmas lasīšanas rīku. Atveriet termināli un ievadiet šādu komandu:
sudo easy_install feedparser
Kad instalēšana ir pabeigta, mēs varam iestatīt darbu, lai izveidotu mūsu Gmail pārbaudes skriptu. Atkal, izmantojot Leafpad, ielīmējiet šādu tekstu redaktorā. Mainiet lietotājvārdu un paroli, lai tas atbilstu Gmail konta lietotājvārdam un parolei, kuru vēlaties pārbaudīt.
importēt feedparser
# Ievadiet savu Gmail lietotājvārdu
# un parole. Neietveriet
# @ gmail.com daļa
# Tavs lietotājvārds.
lietotājvārds = "lietotājvārds"
password = "parole"
mail = int (feedparser.parse ("https: //" + lietotājvārds + ":" + parole + "@ mail.google.com/gmail/feed/atom") rules"feed"] ["fullcount"])
# Tālāk ir atkļūdošanas vērtība.
# Rediģējiet maiņu un izmaiņas
# veselam skaitlim līdz 0 vai 1, lai pārbaudītu
# LED atbilde.# mail = 0
ja pasts> 0:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ('020')
del LedBorg
drukāt ('Mail!')
cits:
LedBorg = open ('/ dev / ledborg', 'w')
LedBorg.write ('000')
del LedBorg
drukāt ('Nav pasta!')
Saglabājiet skriptu kā gmailcheck.py. Atveriet termināli un ievadiet šādu komandu:
python gmailcheck.py
Ja jums ir e-pasts, kas sēž jūsu Gmail iesūtnē, gaismas diode kļūs zaļa un jūs saņemsiet atbildi, piemēram:
Ja Gmail iesūtnē ir e-pasts, jūsu LedBorg izskatīsies šādi:
Tāpat kā lietus pārbaudes skripts, mēs esam iekļāvuši atkļūdošanas vērtību. Ja jums nav nekādu jaunu e-pasta ziņojumu, jūs varat nosūtīt sev e-pastu, lai palielinātu iesūtnes skaitu līdz 1, vai arī varat rediģēt komentārus un izmainīt atkļūdošanas līniju uz “mail = 1”, lai pārbaudītu skriptu. Neaizmirstiet atgriezt līniju, kad esat pabeidzis testēšanu.
Lai iestatītu Gmail skriptu darbam grafikā, iekļūstiet nākamajā apmācības sadaļā.
Crona darba iestatīšana, lai palaistu skriptu
Tagad, kad mums ir divi skripti, ar kuriem jāsāk spēlēt, mums ir jāizveido cron darbs, lai tos darbinātu visu dienu, lai saglabātu LED indikatora strāvu.
Pirmā lieta, ko mēs vēlamies darīt, ir izslēgt LED, ja tas pašlaik ir no mūsu iepriekšējiem eksperimentiem. Pie termināļa veida:
atbalss “000”> / dev / ledborg
Kamēr jūs joprojām esat komandrindā, varat atvērt cron redaktoru. Ja jūs nekad iepriekš neesat izveidojis cron darbu, mēs iesakām pārbaudīt mūsu rokasgrāmatu, lai to izmantotu šeit. Tas nozīmē, ka mēs šeit ietīsim pamata grafiku.
Pie termināļa veida:
sudo crontab -e
Tas atvērs Raspbian cron tabulu Nano teksta redaktorā. Izmantojiet bulttaustiņus, lai ritinātu uz leju līdz apakšai. Tas ir, ja mēs gatavojamies iestatīt atkārtotu cron darbu mūsu Python skriptiem.
Ja vēlaties iestatīt lietus skriptu, ievadiet crona tabulā šādu rindiņu:
* / 5 * * * * python / home/pi/wunderground.py
Lai izietu, nospiediet CTRL + X; izvēlieties jā, lai saglabātu un pārrakstītu esošo cron tabulu. Crona tabulā “* / 5 * * * *” ievadītā vērtība nosaka skriptu, lai tā darbotos ik pēc 5 minūtēm, uz visiem laikiem.
Katru 5 minūšu laikā ir liels laika posms skriptam, kas pārbauda prognozēto lietus - jūs pat varētu apgalvot, ka tas ir pārāk agresīvs, bet, ja jūs mēģināt saglabāt savu e-pasta virsotni, tas ir pārāk ilgs laiks, lai paziņotu . Ja iestatāt Gmail paziņojumu skripta grafiku, ievadiet crona tabulā šādu rindiņu:
* / 1 * * * * pythons / home/pi/wunderground.py
Šis ieraksts katru minūti vada gmailcheck.py skriptu, lai saņemtu ātrāku atjaunināšanas paziņojumu.
Tas viss ir ar to! Jūs varat eksperimentēt ar saviem Python skriptiem, izceļot no / un paziņojumus no mūsu un izmēģinot tos ar jauniem mainīgajiem. Ja jūs varat atrast datu ievades avotu, varat to pārvērst par mainīgo jūsu Python skriptu akciju tirgus vidējos rādītājos, putekšņu skaits, Twitter min, ja ir API, lai to varētu pārvērst par apkārtējo LED indikatoru.
Visbeidzot, es vēlos pateikties visiem lielajiem resursiem, ko es strādāju pie šī projekta. Tas ir bijis mazliet vairāk nekā desmit gadus, kopš es biju aktīvi rakstījis programmas, un bija vajadzīgi daži sitieni, lai iegūtu putekļus un rūsu. / R / LearnPython iemaksas palīdzēja man sacensties par laika apstākļu metro API izlaidi, pētot, kā Mihails pār Mitch Tech nodarbojās ar Gmail Atom padevi, kas tika veidota par vienkāršu LedBorg, un Python mācību moduļu izpēte Kodu akadēmijā bija lielisks veids, kā uzņemt valodas sintaksi un struktūru, kuru es nekad agrāk neizmantoju.