Izveidojiet LED indikatoru ar Raspberry Pi (e-pastam, laikapstākļiem vai jebkam)
Raspberry Pi ir jauka, kompakta platforma, kurai pievienot indikatora lampiņu visu veidu projektiem — laikapstākļu paziņojumiem, jauniem e-pastiem utt. Lasiet tālāk, jo mēs parādīsim, kā pievienot LED moduli jūsu Pi un iestatīt dažus pamata paziņojumus. .
Kāpēc es vēlos to darīt?
Jo tas ir jautri. Atšķirībā no daudzām mūsu pamācībām, kur augšpusē ir iekļauts neliels izplūdums, kurā precīzi norādīts, kādu labumu jūs gūsit no projekta, šajā gadījumā izplūdums ir diezgan īss, jo ieguvums ir vienkārši jautrība.
Raspberry Pi ir lieliska ierīce, ar kuru spēlēties, eksperimentēt ar elektroniku un iemācīties programmēt. Neviens vajadzībām piemēram, apkārtējā lietus indikators viņu virtuvē, bet tāda izveidošana ir jautrs vingrinājums un lielisks atgādinājums, ka potenciāli vētras dienās jāņem līdzi lietussargs.
Kas man ir vajadzīgs?
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 rokasgrāmata, lai sāktu darbu ar Raspberry Pi (un tādējādi apgūstiet pamatinformāciju par Rasbian instalēšanu mūsu Raspberry Pi).
Ja vēlaties īstenot šo projektu ar budžetu, mēs varam jums droši teikt, ka jaunākais Raspberry Pi modelis ir ievērojams pārspīlējums šim darbam, un mēs iesakām jums nopūst putekļus no vecā Raspberry Pi, kuru esat izstumjis. skapī vai paņem lētu lietotu eBay vai tamlīdzīgi. Budžeta ziņā ieilgušais Raspberry Pi 1 modelis A vai modelis B, kas no eBay tika nopirkts par 10–15 USD, ir lieliski piemērots šim projektam, nevis iegādājoties pilnīgi jaunu pašreizējās paaudzes Pi par 35 USD.
ReklāmaPapildus funkcionālai Pi ierīcei ar instalētu Raspbian jums būs nepieciešamas šādas lietas:
- viens LedBorg modulis (~5,00 USD ar 4 USD piegādi no Apvienotās Karalistes uz ASV, darbojas ar visiem Raspberry Pi modeļiem).
- 1 Caurspīdīgs Raspberry Pi futrālis, kas ir saderīgs ar jūsu konkrēto Pi modeli kā šis Raspberry Pi 1 modeļa B korpuss .
Piezīme: Caurspīdīgais/matētais Pi korpuss ir pilnībā neobligāts, taču, ja pašlaik izmantojat necaurspīdīgu korpusu, LED indikators tiks paslēpts iekšpusē. Jums būs vai nu jāizgriež caurums savā korpusā, lai izlaistu gaisma, vai arī izmantojiet GPIO pagarinātāju ar atdalīšanas komplektu, piemēram, šis no Adafruit Industries — lai savienotu LedBorg ar Raspberry Pi. Lai gan, izmantojot atdalīšanas kabeli, projekta izdevumi tiek palielināti par aptuveni 8 ASV dolāriem, tas sniedz lielāku potenciālu galaprodukta pielāgošanai, jo jūs varat vieglāk novietot LED priekšmetu iekšpusē vai zem kaut kā, ko vēlaties apgaismot.
LedBorg uzstādīšana
Lai gan jūs noteikti varētu izveidot sev pilnīgi no nulles LED indikatoru (un meklētājprogrammas aptauja atklās daudz cilvēku, kas to ir izdarījuši), Piborgas organizācija ražo tik kompaktu un lētu LED moduli LedBorg, ka mēs nevaram Nelietojiet to kā pamatu mūsu Raspberry Pi LED indikatora projektam.
Moduļa instalēšana ir vienkārša, jo tā ir paredzēta tieši pāri Pi GPIO tapām. Vispirms izslēdziet Pi un atveriet korpusu.
Vissvarīgākā instalēšanas procesa daļa ir moduli orientēt tā, lai LedBorg ikona atrastos vistuvāk RCA modulim Raspberry Pi platē (un līdz ar to LedBorg mala ir vienā līmenī ar Pi plates malām ar pārkarēm. LedBorg daļa, kas karājas virs Pi dēļa, nevis no malas). Skatiet fotoattēlu augstāk.
Kamēr jums ir atvērts Pi plate, tagad būtu lielisks laiks, lai aizsegtu iebūvētos LED indikatorus (blakus USB portiem), it īpaši, ja izmantojat caurspīdīgu korpusu. Jūs nevēlaties, lai LedBorg indikatora lasīšana būtu mulsinoša, jo strāvas un tīkla indikatora gaismas ir tik spilgtas.
ReklāmaMēs savējo pārklājām ar baltas elektriskās lentes kārtu. Tas tos pietiekami aptumšoja, lai mēs joprojām varētu uz tiem atsaukties, taču tie bija tik blāvāki nekā LedBorg, ka tas vairs nenovērsa uzmanību.
Kad esat instalējis LedBorg un pēc izvēles esat pārklājis Pi LED indikatorus ar elektrisko lenti, ir pienācis laiks aizvērt korpusu. Pirms pāriet uz nākamo apmācības posmu, palaidiet savu Pi.
LedBorg programmatūras instalēšana
PiBorg nodrošina lielisku LedBorg programmatūras pakotni, kas ietver gan GUI kontrolleri, gan draiverus, lai piekļūtu LedBorg no komandrindas.
Pirms sākam darbu, jums ir jāpārliecinās, vai esat izvēlējies pareizo pakotni savai Rasbian versijai un Raspberry Pi plates versijas #.
Ja jūsu Raspberry Pi platei nav montāžas caurumu, tas ir 1. versija. Ja jūsu Raspberry Pi ir montāžas caurumi (atrodas pie USB pieslēgvietām un starp barošanas un HDMI portu), tad tas ir 2. versija. Jums ir jāzina arī kodola versija. jūsu Rasbian instalācijas. Atveriet termināli un ievadiet šo komandu, lai pārbaudītu:
uname -r
Kad esat ieguvis versijas numuru un kodola numuru, varat to izdarīt apmeklējiet sadaļu Pakas šeit lai satvertu saiti savai pakai. Mūsu gadījumā mēs izmantojam 1. versijas plati ar kodolu 3.6.11, lai mēs varētu tvert raspbian-2013-02-09-rev1.zip failu.
ReklāmaLai instalētu visus labumus, mums ir jāatver Pi terminālis. un pēc tam ievadiet šādas komandas, lai instalētu LedBorg pakotni.
Piezīme: Trešajā komandā URL jāaizstāj ar jūsu dēļa/kodola kombinācijas pakotnes 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
Šobrīd jums ir instalēts LedBorg draiveru GUI iesaiņojums un paši draiveri. Raspbian darbvirsmā redzēsit GUI iesaiņojuma ikonu:
Dodieties uz priekšu un noklikšķiniet uz LedBorg ikonas, lai palaistu GUI iesaiņojumu. Krāsu atlasītāja interfeiss tiks apstrādāts šādi:
Tagad ir īstais laiks, lai pārliecinātos, ka modulis darbojas. Izvēlieties jebkuru krāsu, izņemot melno, 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 projektam pasūtītā korpusa matētā plastmasa piedāvā mērenu difūziju. Ja vēlaties vairāk spēlēt ar LED moduli, pirms turpināt, noklikšķiniet uz Demo Mode:
Demonstrācijas režīmā varat pārvietoties cauri visām krāsām dažādos ātrumos, pārbaudīt augstu/zemo izvadi un citādi izmainīt LED moduli.
Šeit, sadaļā Demo režīms, varat arī pārvērst savu LedBorg par pirmo no daudzajiem indikatoriem. Sadaļā Colors atlasot CPU, gaismas diode sāks mainīties no zaļas uz dzeltenu uz sarkanu, lai norādītu Raspberry Pi ARM procesora slodzi. Iesakām mainīt ātrumu uz Lēnu, kamēr to darāt — funkcija Fast atjaunina LED pārāk ātri un CPU indikators novērš uzmanību, nevis noder.
Papildus GUI interfeisa izmantošanai krāsu atlasei varat izvēlēties krāsas no termināļa, izmantojot RGB vērtības. Atveriet termināli un ievadiet šo komandu, lai izslēgtu LED:
echo '000' > /dev/ledborg
Tas, kā LedBorg apstrādā RGB vērtības, ir tāds, ka 0 nozīmē, ka kanāls ir izslēgts, 1 nozīmē, ka kanāls ir pusjaudas un 2 nozīmē, ka kanāls ir pilnas jaudas. Piemēram, 001 sarkanajam kanālam iestatītu 0%, zaļajam kanālam 0% un zilajam kanālam 50% jaudas.
Mainiet vērtību uz 002, un LED izeja paliek zilā krāsā, bet kļūst gaišāka, jo zilā kanāla jauda tagad ir 100%. Mainiet vērtību uz 202 un apvienojiet sarkano un zilo krāsu ar pilnu jaudu, lai iegūtu fuksīna krāsu.
Tagad, kad mēs zinām, kā manuāli manipulēt ar LED, apskatīsim skriptu izmantošanu, lai pārvērstu mūsu LED no vienkāršas gaismas par faktisku indikatoru.
LedBorg kā lietus indikatora konfigurēšana
Šajā apmācības daļā mēs apvienosim vairākas lietas, lai mūsu LedBorg LED moduli pārvērstu par lietus indikatoru, pamatojoties uz laika prognozi mūsu atrašanās vietai. Mēs izmantosim Python skriptu, lai izsauktu laikapstākļu API, kas savukārt nolasīs lietus iespējamību dienā, un pēc tam pārslēgs LED no izslēgtas uz spilgti zilu, lai norādītu prognozēto lietu.
ReklāmaPirmkārt, mums ir jāiegūst API piekļuves atslēga Weather Underground. Personīgai lietošanai un nelieliem attīstības projektiem API ir bezmaksas. Apmeklējiet Weather API reģistrācijas lapu šeit un reģistrējieties API atslēgai.
Kad jums ir API atslēga, apmeklējiet Weather Underground un meklējiet pilsētu, kuru vēlaties pārraudzīt. Mūsu gadījumā mēs uzraudzīsim Sanfrancisko, Kalifornijā. Sanfrancisko prognožu lapas URL ir:
http://www.wunderground.com/US/CA/San_Francisco.html
Mūsu vajadzībām svarīgākā daļa ir URL pēdējā daļa: /CA/San_Francisco.html. Mēs to izmantosim, lai rediģētu API rīka prognozes URL. Pamata URL ir:
http://api.wunderground.com/api/YOUR API KEY/forecast/q/STATE/CITY.json
Varat ģenerēt prognozi jebkurai ASV pilsētai, ievadot savu API atslēgu, divu burtu valsts kodu un pilsētas nosaukumu no URL, ko izvilkāt no Weather Underground meklēšanas rezultātiem.
Kad esat ievietojis API URL ar API atslēgu un štatu/pilsētu, varat rediģēt šo Python skriptu, izveidojot jaunu teksta dokumentu savā Pi, izmantojot Leafpad, un ielīmējot tajā šādu kodu:
Reklāma
from 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['forecast']['txt_forecast']['forecastday'][0]['pop'])# Tālāk ir norādīta atkļūdošanas vērtība.
# Rediģējiet hash un mainiet
# vesels skaitlis līdz 0–100, lai pārbaudītu
# LED reakcija.# 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!')
Saglabājiet failu kā wunderground.py direktorijā /home/pi/. Atveriet termināli un ierakstiet šādu komandu:
python wunderground.py
Ja esat pareizi ievadījis savu API atslēgu un štata/pilsētas kodus, tai vajadzētu atsaukt atbildi, kas izskatās šādi:
Ja jūsu reģionā tiek prognozēti nokrišņi, jūsu LedBorg produkcijai vajadzētu izskatīties šādi:
Tagad gaidīt lietainu dienu, lai pareizi pārbaudītu skriptu, būtu nogurdinoši. Ja jūsu reģionā šodien nav lietus iespējamības un vēlaties, lai gaismas diode iedegas, rediģējiet wunderground.py skriptu un aizstājiet pop = pop caurlaides vērtību 13. rindā ar vērtību, kas lielāka par 20, piemēram, 60, ko 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 regulāri palaistu tikko saglabāto skriptu, lai LED indikators būtu aktuāls. Tā kā šis uzdevums ir nepieciešams gan šim skriptam, gan tam sekojošajam e-pasta indikatoram, mēs apskatīsim cron darba iestatīšanu pēc tam, kad esam parādījuši, kā iestatīt otru skriptu.
LedBorg konfigurēšana kā Gmail indikators
Kuram gan nepatīk dopamīna labojums, kas tiek nodrošināts, redzot jaunu e-pasta ziņojumu 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ējo ievadi (šajā gadījumā Atom plūsmu, nevis API) un vienkāršu skriptu, lai vadītu mūsu LED.
ReklāmaMums ir nedaudz jāpaplašina mūsu Python instalācijas funkcionalitāte, instalējot FeedParser , Python RSS/Atom plūsmas lasīšanas rīks. Atveriet termināli un ievadiet šādu komandu:
sudo easy_install feedparser
Kad instalēšana ir pabeigta, mēs varam sākt strādāt, lai izveidotu Gmail pārbaudes skriptu. Atkal, izmantojot Leafpad, ielīmējiet šādu tekstu redaktorā. Mainiet lietotājvārdu un paroli, lai tas atbilstu tā Gmail konta lietotājvārdam un parolei, kuru vēlaties pārbaudīt.
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'])
# Tālāk ir norādīta atkļūdošanas vērtība.
# Rediģējiet hash un mainiet
# vesels skaitlis līdz 0 vai 1, lai pārbaudītu
# LED reakcija.# pasts = 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!')
Saglabājiet skriptu kā gmailcheck.py. Atveriet termināli un ierakstiet šādu komandu:
python gmailcheck.py
Ja jūsu Gmail iesūtnē ir e-pasts, gaismas diode kļūs zaļa un jūs saņemsit šādu atbildi:
Ja jūsu Gmail iesūtnē ir pasts, jūsu LedBorg izskatīsies šādi:
Tāpat kā lietus pārbaudes skriptā, mēs esam iekļāvuši atkļūdošanas vērtību. Ja jums nav neviena jauna e-pasta, varat vai nu nosūtīt sev e-pasta ziņojumu, lai palielinātu iesūtnes skaitu līdz 1, vai arī varat rediģēt komentāru jaucējkodu un mainīt atkļūdošanas rindiņu uz pasts = 1, lai pārbaudītu skriptu. Neaizmirstiet atjaunot līniju, kad esat pabeidzis testēšanu.
ReklāmaPārejiet uz nākamo apmācības sadaļu, lai iestatītu Gmail skripta darbību pēc grafika.
Cron darba iestatīšana, lai palaistu skriptu
Tagad, kad mums ir divi skripti, ar kuriem var spēlēt, mums ir jāiestata cron darbs, lai tie darbotos visas dienas garumā, lai LED indikators darbotos.
Pirmā lieta, ko mēs vēlamies darīt, ir izslēgt LED, ja tas pašlaik ir ieslēgts no mūsu iepriekšējiem eksperimentiem. Termināļa veids:
echo 000 > /dev/ledborg
Kamēr joprojām atrodaties komandrindā, varat atvērt cron redaktoru. Ja jūs nekad iepriekš neesat izveidojis cron darbu, mēs ļoti iesakām skatiet mūsu ceļvedi par tā lietošanu šeit . Tas nozīmē, ka mēs šeit palīdzēsim izveidot pamata grafiku.
Termināļa veids:
sudo crontab -e
Tas atvērs Raspbian cron tabulu Nano teksta redaktorā. Izmantojiet bulttaustiņus, lai ritinātu uz leju līdz pašai apakšai. Šeit mēs iestatīsim atkārtoto cron darbu mūsu Python skriptiem.
Ja vēlaties iestatīt lietus skriptu, cron tabulā ievadiet šādu rindu:
Reklāma*/5 * * * * python /home/pi/wunderground.py
Nospiediet CTRL+X, lai izietu; atlasiet Jā, lai saglabātu un pārrakstītu esošo cron tabulu. Vērtība, ko ievadījām cron tabulā */5 * * * *, iestata skriptu darboties ik pēc 5 minūtēm, uz visiem laikiem.
Ik pēc 5 minūtēm ir lielisks laika posms skriptam, kas pārbauda, vai nav gaidāms lietus — jūs pat varētu iebilst, ka tas ir pārāk agresīvs —, taču, ja mēģināt sekot līdzi savam e-pasta ziņojumam, tas ir pārāk ilgs laiks paziņojumu saņemšanai. . Ja iestatāt Gmail paziņojumu skripta grafiku, cron tabulā ievadiet šādu rindu:
*/1 * * * * python /home/pi/wunderground.py
Šis ieraksts katru minūti palaiž skriptu gmailcheck.py, lai saņemtu daudz ātrāku atjauninājumu paziņojumu.
Tas ir viss! Varat eksperimentēt ar saviem Python skriptiem, atceļot if/else paziņojumus no mūsu un izmēģinot tos ar pavisam jauniem mainīgajiem. Ja varat atrast datu ievades avotu, varat pārvērst tos par mainīgo savā Python skriptā — biržas vidējie rādītāji, ziedputekšņu skaits, Twitter min, ja tam ir API, varat to pārvērst par apkārtējās vides LED indikatoru.
Visbeidzot, es vēlos pateikties visiem lieliskajiem resursiem, ko izmantoju, strādājot pie šī projekta. Ir pagājuši nedaudz vairāk nekā desmit gadi, kopš es aktīvi rakstīju programmas, un bija nepieciešami daži sitieni, lai noņemtu putekļus un rūsu. Līdzstrādnieki plkst /r/LearnPython palīdzēja man izklaidēties ar API izvadi Weather Underground, pētot, kā Maikls strādā Mitch Tech nodarbojas ar Gmail Atom plūsmu padarīja tā parsēšanu priekš LedBorg vienkāršu un apgūst Python mācību moduļus Code Academy bija lielisks veids, kā apgūt valodas pamata sintaksi un struktūru, kuru es nekad iepriekš nebiju izmantojis.
LASĪT TĀLĀK- & rsaquo; Kā palaist zemu izmaksu Minecraft ar Raspberry Pi, lai lēti izveidotu bloku
- & rsaquo; Kā konfigurēt Raspberry Pi attālajam apvalkam, darbvirsmai un failu pārsūtīšanai
- & rsaquo; Viss, kas jums jāzina, lai sāktu darbu ar Raspberry Pi
- & rsaquo; Kā pārvērst Raspberry Pi par Google mākoņdrukas serveri
- & rsaquo; Kā pievienot printeri savam Raspberry Pi (vai citam Linux datoram)
- & rsaquo; Kā pārspīlēt Raspberry Pi (neatceļot garantiju)
- & rsaquo; Kā izbaudīt Dead Simple Raspberry Pi iestatīšanu, izmantojot NOOBS
- & rsaquo; Kiberpirmdiena 2021: labākie tehnoloģiju piedāvājumi

Džeisons Ficpatriks ir LifeSavvy galvenais redaktors, How-To Geek māsas vietne, kurā ir apkopoti dzīves uzlauzumi, padomi un triki. Viņam ir vairāk nekā desmit gadu pieredze publicēšanā, un viņš ir sarakstījis tūkstošiem rakstu vietnēs Review Geek, How-To Geek un Lifehacker. Džeisons bija Lifehacker's Weekend redaktors, pirms viņš pievienojās How-To Geek.
Lasīt pilnu biogrāfiju