Sukurkite LED indikatorių su aviečių Pi (el. Paštui, oru ar viskam)

Turinys:

Sukurkite LED indikatorių su aviečių Pi (el. Paštui, oru ar viskam)
Sukurkite LED indikatorių su aviečių Pi (el. Paštui, oru ar viskam)

Video: Sukurkite LED indikatorių su aviečių Pi (el. Paštui, oru ar viskam)

Video: Sukurkite LED indikatorių su aviečių Pi (el. Paštui, oru ar viskam)
Video: How to remove extension from Mozilla Firefox? // Smart Enough 2024, Balandis
Anonim
"Raspberry Pi" sukuria gražią kompaktišką platformą, skirtą pritvirtinti indikacinę lemputę, skirtą visų rūšių projektams - pranešimams apie orą, naujus el. Laiškus ir tt Skaitykite taip, kaip parodome, kaip prijungti LED modulį prie "Pi" ir nustatyti keletą pagrindinių pranešimų.
"Raspberry Pi" sukuria gražią kompaktišką platformą, skirtą pritvirtinti indikacinę lemputę, skirtą visų rūšių projektams - pranešimams apie orą, naujus el. Laiškus ir tt Skaitykite taip, kaip parodome, kaip prijungti LED modulį prie "Pi" ir nustatyti keletą pagrindinių pranešimų.

Kodėl aš noriu tai padaryti?

Nes tai yra smagu. Skirtingai nuo daugelio mūsų samouczków, kuriuose mes įtraukiame šiek tiek sumaišytą į viršų, tiksliai nurodydami, kokią naudą jūs gausite iš projekto, šis atvejis yra gana trumpas, nes nauda yra tiesiog linksma.

"Raspberry Pi" yra puikus būdas žaisti, eksperimentuoti su elektronika ir sužinoti apie programavimą. Niekas poreikiai Pavyzdžiui, virtuvėje yra aplinkos lietaus indikatorius, tačiau pastatymas yra įdomus užsiėmimas ir puikus priminimas, kad jūsų lietussargas su jumis galėtų kelti audrų dienas.

Ką man reikia?

Kad galėtumėte sekti kartu su pamoka, jums reikės kelių dalykų. Pirma, mes manome, kad jau vykdote ankstesnį pamokėlį: "HTG" vadovas pradedant "Raspberry Pi" (ir todėl pagrindai yra įtraukti į "Rasbian" įdiegimą "Raspberry Pi").

Jei norėtumėte šį projektą atlikti pagal biudžetą, galime pasitikėti, kad naujausias modelis "Raspberry Pi" yra reikšmingas darbo užmokestis, ir mes norėtume paskatinti jus išpūsti senus "Raspberry Pi" dulkes spinte arba pasiimkite pigiai panaudotą vien tik "eBay" ar pan. Biudžeto protingas ilgas dantis "Raspberry Pi 1" modelis "A" arba "B" modelis, užpuls "eBay" už 10-15 dolerių, puikiai tinka šiam projektui įsigyti visiškai naują 35 $ dabartinės kartos Pi.

Be to, įdiegę funkcinį "Pi" įrenginį su "Raspbian", jums reikės šių dalykų:

  • 1 "LedBorg" modulis (~ $ 5.00 su 4 dol. Pristatymu iš Jungtinės Karalystės į JAV, dirba su visais "Raspberry Pi" modeliais).
  • 1 "Clear Raspberry Pi Case" suderinamas su jūsų konkrečiu Pi modeliu, kaip šis "Raspberry Pi 1" B modelio pavyzdys.

Pastaba: Aiškus / matinis "Pi" korpusas yra visiškai neprivalomas, bet jei šiuo metu naudojate nepermatomą atvejį, jūsų LED indikatorius bus paslėptas viduje. Jums reikės iškirpti skylę, kad galėtumėte išvystyti šviesą, arba naudokite GPIO pratęsimo kabelį su "Breakout" komplektu, kaip šis iš "Adafruit Industries", kad "LedBorg" būtų prijungtas prie "Raspberry Pi". Naudodamiesi "Breakout" kabeliu, projekto sąskaita pridedama apie 8 JAV dolerių, todėl jis suteikia daugiau galimybių pritaikyti galutinį produktą, nes jūs galite lengviau įdėti šviesos diodą į viduje esančius daiktus arba pagal kažką, kurį norite apšviesti.

"LedBorg" diegimas

Nors jūs tikrai galėtumėte pastatyti sau visiškai nulenktą šviesos diodo indikatorių (ir paieškos užklausa atsiras daug žmonių, kurie tai padarė), "Piborg" organizacija gamina tokį kompaktišką ir nebrangų LED modulį "LedBorg", kad mes negalėjome " t pasipriešinkite, kaip pagrindą mūsų "Magneto Pi" LED indikatoriaus projektui.
Nors jūs tikrai galėtumėte pastatyti sau visiškai nulenktą šviesos diodo indikatorių (ir paieškos užklausa atsiras daug žmonių, kurie tai padarė), "Piborg" organizacija gamina tokį kompaktišką ir nebrangų LED modulį "LedBorg", kad mes negalėjome " t pasipriešinkite, kaip pagrindą mūsų "Magneto Pi" LED indikatoriaus projektui.

Modulio įdiegimas yra greitas, nes jis suprojektuotas taip, kad tilptų tiesiai prie "Pi" GPIO kaiščių. Pirma, išjunkite Pi ir atidarykite dėžutę.

Svarbiausia diegimo proceso dalis yra ta, kad nukreipiate modulį taip, kad "LedBorg" piktograma būtų arčiausiai "Raspberry Pi" plokštės RCA modulio (taigi "LedBorg" kraštas yra lygiagretus "Pi" plokštės kraštams su "overhanging" dalis "LedBorg" kabo virš "Pi" lentos, o ne nuo krašto). Žiūrėkite aukščiau esančią nuotrauką.

Nors "Pi" lenta atvira, dabar būtų puikus laikas padengti indikatoriaus šviesos diodų indikatorius (šalia USB jungčių), ypač jei naudojate aiškų dėklą. Jūs nenorite, kad būtų supainioti skaityti jūsų "LedBorg" indikatorių, nes maitinimo ir tinklo lemputės yra tokios ryškios.

Mes padengėme mūsų baltos elektros juostos sluoksniu. Tai sugadina juos pakankamai, kad mes galėtume vis dar atsekti juos, bet jie buvo daug mažesni, nei "LedBorg", tai nebeatitiko dėmesio.

Kai jūs turite įdiegtą "LedBorg" ir pasirinkę "Pi" LED indikatorius su elektrine juosta, atėjo laikas uždaryti korpusą atgal. Įkelkite savo Pi aukštyn prieš pereidami į kitą mokymo pakopą.

"LedBorg" programinės įrangos įdiegimas

"PiBorg" yra puikus "LedBorg" programinės įrangos paketas, kuriame yra tiek GUI valdiklis, tiek tvarkyklės, kad galėtų pasiekti "LedBorg" iš komandinės eilutės.
"PiBorg" yra puikus "LedBorg" programinės įrangos paketas, kuriame yra tiek GUI valdiklis, tiek tvarkyklės, kad galėtų pasiekti "LedBorg" iš komandinės eilutės.

Prieš pradėdami, turite įsitikinti, kad esate sugriebęs tinkamą "Rasbian" versiją ir "Raspberry Pi" pataisos # paketą.

Jei jūsų "Raspberry Pi" lentoje nėra montavimo skylių, tai yra 1 versija. Jei jūsų "Avokadas" Pi yra montavimo skylių (esančių USB prievaduose ir tarp maitinimo ir HDMI prievado), tai yra 2 redagavimas. Taip pat turite žinoti branduolio versiją savo "Rasbian" įrenginio. Atidarykite terminalą ir įveskite šią komandą, kad patikrintumėte:

uname -r

Kai turite redagavimo numerį ir branduolio numerį, galite apsilankyti skyriuje "Paketai", norėdami paimti paketo nuorodą. Mūsų atveju mes naudojame "Review Revision 1" plokštę su 3.6.11 branduoliu, kad būtų galima paimti failą raspbianii-02-09-rev1.zip.

Norint įdiegti visas gėles, mes turime atidaryti "Pi" terminalą. tada įdiekite LedBorg paketo diegimo šias komandas.

Pastaba: Jūs turite pakeisti trečiosios komandos URL adresą, nurodydamas savo lentos / branduolio derinio paketo URL.

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

Šiuo metu dabar turite GUI aplanką, skirtą "LedBorg" tvarkyklėms ir patys įdiegtiems vairuotojams. Raspbian darbalaukyje pamatysite GUI aplanko piktogramą:

Eik į priekį ir spustelėkite piktogramą LedBorg, kad paleistumėte GUI įvyniojimo įrenginį. Jums bus taikoma tokia spalvų rinkimo sąsaja:
Eik į priekį ir spustelėkite piktogramą LedBorg, kad paleistumėte GUI įvyniojimo įrenginį. Jums bus taikoma tokia spalvų rinkimo sąsaja:
Dabar yra puikus laikas įsitikinti, kad jūsų modulis veikia. Paimkite bet kokią spalvą, išskyrus juodą, išbandykite. Mes bandysime jį išrinkti keliomis spalvomis:
Dabar yra puikus laikas įsitikinti, kad jūsų modulis veikia. Paimkite bet kokią spalvą, išskyrus juodą, išbandykite. Mes bandysime jį išrinkti keliomis spalvomis:
Atrodo gerai! Tai ryškus ir matinio plastiko, kurį mes užsakėme projektui, siūlo vidutinį sklaidą. Jei prieš paleidžiant norite daugiau žaisti su LED moduliu, spustelėkite Demo režimas:
Atrodo gerai! Tai ryškus ir matinio plastiko, kurį mes užsakėme projektui, siūlo vidutinį sklaidą. Jei prieš paleidžiant norite daugiau žaisti su LED moduliu, spustelėkite Demo režimas:
Demonstraciniame režime galite pereiti per visas spalvas įvairiu greičiu, patikrinti aukštą / žemą išėjimo lygį ir kitaip dėti LED modulį per žingsnius.
Demonstraciniame režime galite pereiti per visas spalvas įvairiu greičiu, patikrinti aukštą / žemą išėjimo lygį ir kitaip dėti LED modulį per žingsnius.

Tai yra skyriuje "Demo režimas", pagal kurią jūs taip pat galite paversti "LedBorg" pirmąja iš daugelio rodiklių. Pasirinkus CPU skyriuje "Spalvos", LED pradės keisti nuo žalios iki geltonos spalvos į raudoną, kad būtų nurodyta "Raspberry Pi" ARM procesoriaus apkrova. Mes rekomenduojame pakeisti greitį į lėtą, kol esate prie jo. Greitai atnaujina LED pernelyg greitai, o CPU indikatorius atitraukia, o ne naudingas.

Be to, kad naudosite GUI sąsają, kad pasirinktumėte spalvas, galite pasirinkti spalvas iš terminalo, naudodami RGB vertes. Atidarykite terminalą ir įveskite šią komandą, kad išjungtumėte LED:

echo '000' > /dev/ledborg

Kaip LedBorg tvarko RGB reikšmes, tai reiškia, kad kanalas yra išjungtas, 1 reiškia, kad kanalas yra pusiau galios, o 2 reiškia, kad kanalas yra pilnutinė. Pvz., 001 nustatys raudoną kanalą 0%, Žaliąjį kanalą - 0%, o Mėlynąjį kanalą - 50%.

Pakeiskite reikšmę 002, o šviesos diodo išvestis išlieka mėlyna, bet tampa ryškesnė, nes "Blue" kanalas dabar yra 100% išvesties. Pakeiskite vertę iki 202, o raudonai ir mėlynai - su visišku galingumu, kad padarytumėte raudonos spalvos.

Dabar, kai mes žinome, kaip manipuliuoti LED rankiniu būdu, pažvelkime į scenarijų naudojimą, kad mūsų šviesos diodas būtų įjungtas nuo paprastos šviesos iki faktinio indikatoriaus.

Jūsų "LedBorg" konfigūravimas kaip lietaus rodiklis

Šioje mokymo dalyje pamokysime keletą dalykų, kad mūsų "LedBorg" LED modulis taptų lietaus indikatoriumi, pagrįstu mūsų vietovės orų prognoze. Mes panaudosime "Python" scenarijų, kad paskambintume "Weather API", kuris savo ruožtu skaitė dienos lietaus galimybę, o po to perjungsite šviesos diodą iš išjungto iki ryškiai mėlynos, kad nurodytumėte numatomą lietų.
Šioje mokymo dalyje pamokysime keletą dalykų, kad mūsų "LedBorg" LED modulis taptų lietaus indikatoriumi, pagrįstu mūsų vietovės orų prognoze. Mes panaudosime "Python" scenarijų, kad paskambintume "Weather API", kuris savo ruožtu skaitė dienos lietaus galimybę, o po to perjungsite šviesos diodą iš išjungto iki ryškiai mėlynos, kad nurodytumėte numatomą lietų.

Pirma, mes turime gauti API prieigos raktą "Weather Underground". Asmeniniam naudojimui ir mažiems plėtros projektams API yra nemokamas. Apsilankykite "Weather API" registracijos puslapyje ir užsiregistruokite API raktą.

Kai turėsite API raktą, apsilankykite Weather Underground ir ieškokite miesto, kurį norite stebėti. Šiuo atveju mes stebėsime San Fransisko, CA. San Francisko prognozių puslapio URL yra:

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

Svarbi mūsų tikslų dalis yra paskutinė URL dalis: /CA/San_Francisco.html. Mes ketiname tai naudoti norėdami redaguoti API įrankio prognozuojamą URL. Pagrindinis URL yra:

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

Galite generuoti prognozę bet kuriame JAV mieste, įveskite savo API raktą, abiejų raidžių valstijos kodą ir miesto pavadinimą iš URL, kurį ištraukėte iš savo "Weather Underground" paieškos rezultatų.

Kai URL-adresas yra API, kuriame yra įvestas jūsų API raktas ir valstybės / miestas, tuomet galėsite redaguoti šį "Python" scenarijų, sukurdami naują tekstinį dokumentą savo "Pi" naudojant "Leafpad" ir įtrauksite į jį šį kodą:

from urllib2 import urlopen import json

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

# Toliau pateikiama derinimo vertė. # Redaguokite maišos ir keiskite # sveikasis skaičius išbandyti 0-100 # LED atsakas.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.

if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')

Išsaugokite failą kaip wunderground.py kataloge / home / pi /. Atidarykite terminalą ir įveskite šią komandą:

python wunderground.py

Jei tinkamai įvedėte savo API raktą ir valstybės / miesto kodus, jis turėtų atmesti atsakymą, kuris atrodo taip:

Jei prognozuojama, kad jūsų vietovėje yra kritulių, LedBorg produkcija turėtų atrodyti tokia:
Jei prognozuojama, kad jūsų vietovėje yra kritulių, LedBorg produkcija turėtų atrodyti tokia:
Dabar laukiu lietingos dienos, kad tinkamai išbandytumėte scenarijų būtų nuobodus. Jei šiandien jūsų rajone nėra lietaus, ir norėtumėte matyti, kad lemputė įsižiebia, redaguokite wunderground.py scenarijų ir pakeiskite "pop = pop" passthrough vertę 13 eilutėje, kurios reikšmė yra didesnė nei 20, pvz., 60 kad mūsų prognozė sugrįžta. Tiesiog nepamirškite pakeisti eilutę atgal į "pop = pop", kai baigsite.
Dabar laukiu lietingos dienos, kad tinkamai išbandytumėte scenarijų būtų nuobodus. Jei šiandien jūsų rajone nėra lietaus, ir norėtumėte matyti, kad lemputė įsižiebia, redaguokite wunderground.py scenarijų ir pakeiskite "pop = pop" passthrough vertę 13 eilutėje, kurios reikšmė yra didesnė nei 20, pvz., 60 kad mūsų prognozė sugrįžta. Tiesiog nepamirškite pakeisti eilutę atgal į "pop = pop", kai baigsite.

Paskutinis veiksmas - nustatyti cron'o darbą, kad automatiškai paleistumėte tik ką laiką išsaugotą scenarijų, kad LED indikatorius būtų toks pats. Kadangi ši užduotis yra reikalinga ir šiai scenarijai, ir toliau pateikiamam el. Pašto indikatoriui, mes ketiname apriboti cron užduoties nustatymą, kai parodysime, kaip nustatyti kitą scenarijų.

"LedBorg" konfigūravimas kaip "Gmail" rodiklis

Kas nemėgsta dopamino pataisymų, kai jų gautuosiuose matysite naują el. Laišką? Šioje mokymo dalyje mes parodysime, kaip naudoti "LedBorg" kaip naują "Gmail" rodiklį. Kaip ir paskutinį kartą, mes ketiname sujungti išorinį įvestį (šiuo atveju "Atom" kanalą, o ne API) ir paprastą scenarijų, skirtą mūsų LED.
Kas nemėgsta dopamino pataisymų, kai jų gautuosiuose matysite naują el. Laišką? Šioje mokymo dalyje mes parodysime, kaip naudoti "LedBorg" kaip naują "Gmail" rodiklį. Kaip ir paskutinį kartą, mes ketiname sujungti išorinį įvestį (šiuo atveju "Atom" kanalą, o ne API) ir paprastą scenarijų, skirtą mūsų LED.

Mums reikia išplėsti mūsų "Python" diegimo funkciją, įdiekdami "FeedParser", Python RSS / Atom kanalo skaitymo įrankį. Atidarykite terminalą ir įveskite šią komandą:

sudo easy_install feedparser

Kai diegimas bus baigtas, mes galime nustatyti, kad sukursime "Gmail" tikrinimo scenarijų. Vėlgi, naudojant "Leafpad", įterpkite šį tekstą į redaktorių. Keiskite naudotojo vardą ir slaptažodį, kad atitiktumėte "Gmail" paskyros naudotojo vardą ir slaptažodį, kurį norite patikrinti.

import feedparser

# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.

username = 'username' password = 'password'

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

# Toliau pateikiama derinimo vertė. # Redaguokite maišos ir keiskite # sveikasis skaičius išbandyti 0 arba 1 # LED atsakas.

# mail = 0

if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')

Išsaugokite scenarijų kaip gmailcheck.py. Atidarykite terminalą ir įveskite šią komandą:

python gmailcheck.py

Jei jūsų "Gmail" gautųjų el. Laiške sėdi, šviesos diodas pasidaro žalios spalvos, todėl gausite tokį atsakymą:

Jei turite "Gmail" gautųjų paštą, LedBorg atrodys taip:
Jei turite "Gmail" gautųjų paštą, LedBorg atrodys taip:
Kaip ir lietaus tikrinimo scenarijus, mes įtraukėme derinimo vertę. Jei neturite jokio naujo el. Pašto, galite atsiųsti sau el. Laišką, kad padidintumėte gautųjų skaičių iki 1, arba galite redaguoti komentaro maišos ir pakeisti scenarijų išbandyti liniją "mail = 1". Nepamirškite grąžinti linijos, kai baigsite bandymus.
Kaip ir lietaus tikrinimo scenarijus, mes įtraukėme derinimo vertę. Jei neturite jokio naujo el. Pašto, galite atsiųsti sau el. Laišką, kad padidintumėte gautųjų skaičių iki 1, arba galite redaguoti komentaro maišos ir pakeisti scenarijų išbandyti liniją "mail = 1". Nepamirškite grąžinti linijos, kai baigsite bandymus.

Pasukite į kitą mokymo paketą, kad savo "Gmail" scenarijų paleistumėte pagal tvarkaraštį.

"Cron" užduoties paleisti scenarijų nustatymas

Dabar, kai mes turime du scenarijus, su kuriais turėtume žaisti, mes turime nustatyti cron darbą, kad jie būtų paleisti per dieną, kad būtų išlaikytas šviesos diodo indikatorius.
Dabar, kai mes turime du scenarijus, su kuriais turėtume žaisti, mes turime nustatyti cron darbą, kad jie būtų paleisti per dieną, kad būtų išlaikytas šviesos diodo indikatorius.

Pirmas dalykas, kurį norime padaryti, yra išjungti šviesos diodą, jei jis šiuo metu yra iš mūsų ankstesnių eksperimentų. Terminalo tipo:

echo “000” > /dev/ledborg

Kol vis dar esate komandinės eilutės, galite atidaryti cron redaktorių. Jei niekada nesukūrėte "cron" darbo anksčiau, mes primygtinai rekomenduotume perskaityti mūsų vadovą apie jo naudojimą čia. Tai pasakė, kad mes pasistengsime nustatyti pagrindinį tvarkaraštį čia.

Terminalo tipo:

sudo crontab –e

Tai atidarys "Raspbian cron" stalą Nano teksto redaktoriuje. Naudokite rodyklių klavišus, norėdami pereiti žemyn į apačią. Tai kur mes ketiname nustatyti pasikartojančią cron darbą mūsų Python scenarijus.

Jei norite nustatyti lietaus scenarijų, įveskite šią eilutę į cron lentelę:

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

Paspauskite CTRL + X, kad išeitumėte; pasirinkite Taip, kad išsaugotumėte ir perrašytumėte esamą cron lentelę. Vertė, kurią mes įrašome cron lentelėje "* / 5 * * * *" nustato, kad scenarijus paleidžiamas kas 5 minutes, amžinai.

Kas 5 minutes yra puikus laiko scenarijus, kuris tikrina prognozuojamą lietų, netgi galite teigti, kad tai šiek tiek pernelyg agresyvus, bet jei bandote išlaikyti savo el. Laišką, tai yra pernelyg ilgas pranešimas. Jei nustatote "Gmail" pranešimų scenarijų grafiką, įveskite šią eilutę lentelėje cron:

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

Šis įrašas paleidžia gmailcheck.py scenarijų kiekvieną minutę, kai pateikiamas žymiai greitesnis naujinimo pranešimas.

Štai viskas! Galite eksperimentuoti su savo "Python" scenarijais, iškeldami "if / else" teiginius iš mūsų ir išbandydami juos visiškai naujais kintamaisiais. Jei galite rasti duomenų įvesties šaltinį, kurį galite paversti kintamu savo "Python" scenarijų akcijų rinkos vidurkiu, žiedadulkių skaičius, minimas Twitter, jei yra API, galite paversti jį aplinkos šviesos diodų indikatoriumi.

Galiausiai norėčiau padėkoti už visus puikius išteklius, su kuriais dirbau šiuo projektu. Tai buvo šiek tiek daugiau nei dešimtmetį nuo tada, kai aktyviai rašiau programas, ir reikėjo kelių smūgių, kad ištrauktų dulkes ir rūdis. "Contributors at / r / LearnPython" padėjo man išsiaiškinti apie "Weather Underground" API išvestį, tyrinėjant, kaip Michaelas per "Mitch Tech" nagrinėjo "Gmail Atom" paštą, paruoštą LedBorg lengvai, ir mokytis kodo akademijos "Python" mokymosi modulių. puikus būdas paimti pagrindinę kalbos, kuriai anksčiau niekada nebuvo naudojama, sintaksę ir struktūrą.

Rekomenduojamas: