1Aug

Rakenna LED-merkkivalo vadelmalla Pi( sähköpostilla, säällä tai muulla)

Raspberry Pi on mukava kompakti alusta, joka kiinnittää merkkivalon kaikenlaisiin projekteihin - sääilmoitukseen, uusiin sähköposteihin jne. Lue, miten voimme näyttää LED-moduulin liittämisen Pi-laitteeseen ja perustaa joitain perustietojailmoituksia.

Miksi haluan tehdä tämän?

Koska se on hauskaa. Toisin kuin monet oppitunnit, joissa meillä on pieni ilmiö ylhäältä, jossa hahmotellaan täsmällisesti, mitä etua hankkisi projektista, puhuminen on tässä tapauksessa melko lyhyt, koska hyöty on yksinkertaisesti hauskaa.

Raspberry Pi on täydellinen laite, jolla voi leikkiä, kokeilla elektroniikkaa ja oppia ohjelmointia. Kukaan tarvitsee esimerkiksi : n ympäristön sateen osoittimen keittiössä, mutta rakennuksen yksi on hauska harjoitus ja suuri muistutus, joka tuo sateenvarjon mukanasi mahdollisesti myrskypäivinä.

Mitä tarvitsen?

Seuraavaksi opetusohjelman mukana tarvitset muutamia asioita. Ensinnäkin oletamme, että olet jo seurannut edellistä opetusohjelmaa: HTG-opas Raspberry Pi -oppaan käyttöönottoon( ja näin ollen sinulla on perusasiat, jotka on tarkoitettu Rasbianin asentamiseen Raspberry Pi-laitteeseen).

Jos haluat tehdä tämän projektin budjettiin, voimme varmasti kertoa teille, että uusin malli Raspberry Pi on merkittävä työpaikalle ylikuormitus, ja me kannustamme sinua puhjettua pölyn pois vanha vadelma Pi, jonka sinulla onsiirretty kaapissa tai poimia halpa käytetty yksi pois eBay tai vastaava. Talousarvio viisas pitkä-in-the-hammas Vadelma Pi 1 Malli A tai malli B otettu pois eBay 10-15 dollaria on täydellinen sopivuus tähän hankkeeseen yli ostamalla upouusi 35 dollaria nykyinen sukupolvi Pi.

Sen lisäksi, että sinulla on toiminnallinen Pi-yksikkö, johon on asennettu Raspbian, tarvitset seuraavat asiat:

  • 1 LedBorg -moduuli( ~ 5,00 dollaria ja 4 dollaria toimitusta Yhdistyneestä kuningaskunnasta Yhdysvaltoihin, toimii kaikkien Raspberry Pi -mallien kanssa).
  • 1 Clear Raspberry Pi -kotelo, joka on yhteensopiva oman Pi-mallisi kanssa, kuten tämä Raspberry Pi 1 Model B -kotelo.

Huomautus: Kirkas / himmeä Pi-kotelo on täysin valinnainen, mutta jos käytät nyt läpinäkymätöntä koteloa, LED-ilmaisin on piilotettu sisälle. Sinun on joko leikattava reikä teidän tapauksestasi, jotta valo syttyy tai käytä GPIO-jatkojohtoa, jossa on katkoviiva, kuten Adafruit Industries -tuote, jonka avulla voit liittää LedBorgin vadelmasi piihin. Kun käytät breakout kaapeli lisää noin 8 dollaria hankkeen kustannuksella se tarjoaa enemmän potentiaalia mukauttaa lopputuotteita, että voit helpommin sijoittaa LED sisällä asioita tai jotain haluat valaista.

LedBorg

: n asentaminen Vaikka voit luultavasti rakentaa itsesi täysin tyhjästä LED-indikaattorista( ja hakukoneen kysely kääntyy runsaasti ihmisiä, jotka ovat tehneet niin), Piborg-organisaatio tuottaa niin kompakti ja halpa LED-moduuli, LedBorg, ettemme voineet vastustaa sen käyttöä Vadelma Pi LED -indikaattoriprojektin perustana.

Moduulin asentaminen on helppoa, koska se on suunniteltu sovittamaan suoraan GP: n GPIO-tappien päälle. Ensinnäkin, katkaise Pi ja avaa asia.

Asennusprosessin tärkein osa on, että suunnataan moduuli niin, että LedBorg-kuvake on lähimpänä Raspberry Pi -laudan RCA-moduulia( ja siten LedBorgin reuna on tasossa Pi-levyn reunojen kanssaLedBorgin ylävää osaa, joka roikkuu Pi-levyn yli eikä reunasta).Katso yllä oleva kuva.

Kun Pi-kortti on auki, nyt olisi erinomainen aika peittää LED-merkkivalot( USB-porttien vieressä) varsinkin, jos käytät selkeää koteloa. Et halua, että se on hämmentävä lukemaan LedBorg-merkkivalon, koska virta- ja verkkolukivalojen valot ovat niin kirkkaat.

Peitimme meidät kerroksella valkoista sähköistä nauhaa. Tämä heikensi heitä tarpeeksi, jotta voisimme edelleen viitata heihin, mutta he olivat niin himmennettyjä kuin LedBorg, ettei se enää häiritse.

Kun LedBorg on asennettu ja valinnaisesti Pi-LED-merkkivalot peitetty sähköisellä nauhalla, on aika sulkea tapaus takaisin ylös. Käynnistä Pi ylöspäin ennen siirtymistä opetusohjelman seuraavaan vaiheeseen.

LedBorg-ohjelmiston asentaminen

PiBorg tarjoaa loistavan ohjelmistopaketin LedBorgille, joka sisältää sekä GUI-ohjaimen että ohjaimet LedBorgin käyttämiseen komentoriviltä.

Ennen kuin aloitatte, sinun on varmistettava, että olet kaappaamassa oikea paketti Rasbian versiosi ja Raspberry Pi -laudan versiota # varten.

Jos Raspberry Pi -laitteessa ei ole asennusreikiä, se on tarkistus 1. Jos Raspberry Pi: lla on asennusreikiä( sijaitsee USB-porttien ja teho- ja HDMI-porttien välissä), se on Revision 2. Sinun on myös tiedettävä ydinRasbian asennuksen versio. Avaa päätelaite ja kirjoita seuraava komento tarkistamaan:

uname -r

Kun sinulla on tarkistusnumero ja ytimen numero, voit käydä tässä Paketit-osassa napauttaa pakettisi linkkiä.Meidän tapauksessamme käytämme Revision 1 -levyä 3.6.11-ytimen kanssa, jotta saisimme raspbian-2013-02-09-rev1.zip -tiedoston.

Kaikkien herkkujen asentamiseksi tarvitsemme Pi-terminaalin avaamisen.ja aseta sitten seuraavat komennot LedBorg-paketin asentamiseksi.

Huomautus: Sinun täytyy korvata URL-osoite kolmannessa komennossa, jossa on URL-osoite hallituksen / ytimen yhdistelmälle.

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

Tässä vaiheessa sinulla on nyt GUI-kääre LedBorg-ohjaimille ja itse ohjaimet. Raspal-työpöydällesi näet GUI-kääreen kuvakkeen:

Käynnistä GUI-kääre napsauttamalla LedBorg-kuvaketta. Sinua käsitellään värinvalinta-liittymällä kuten:

Nyt on täydellinen aika varmistaa moduulin toimivuus. Valitse mikä tahansa väri, paitsi musta, kokeilla sitä.Aiomme testata sen poimimalla muutamia värejä:

Näyttää hyvältä!Se on kirkas ja hankkeen tilaamamme kotelon huurrettu muovi tarjoaa kohtalaisen diffuusiota. Jos haluat pelata LED-moduulin kanssa ennen siirtymistä, napsauta Demo Mode:

Demo-tilassa voit selata kaikkia värejä eri nopeuksilla, tarkistaa korkean / matalan ulostulon ja muuten asettaa LED-moduulin läpi.

Tässä Demo Mode -osiossa voit myös kääntää LedBorgin ensimmäiseksi monista indikaattoreista. Valitsemalla CPU: n Värit-osassa LED alkaa muuttua vihreästä keltaiseen punaiseen osoittaen Raspberry Pi: n ARM-prosessorin kuormitusta. Suosittelemme nopeuden muuttamista hitaaksi, kun olet siinä - nopea päivittää LED liian nopeasti ja tekee CPU-indikaattorin häiritsevän hyödyllisyyden sijaan.

Sen lisäksi, että käytät GUI-käyttöliittymää värejä valitsemalla, voit valita värit päätteestä käyttäen RGB-arvoja. Avaa terminaali ja kirjoita LED pois päältä seuraavasti:

echo "000" & gt;/dev/ ledborg

LedBorg käsittelee RGB-arvoja, että 0 tarkoittaa, että kanava on pois päältä, 1 tarkoittaa, että kanava on puolitoistoa ja 2 tarkoittaa, että kanava on täysi teho. Joten esimerkiksi 001 asettaa punaisen kanavan 0%, vihreä kanava 0% ja sininen kanava 50% teholla.

Muuta arvo 002 ja LED-ulostulo pysyy sinisenä mutta kirkastuu, koska sininen kanava on nyt 100% lähtö.Vaihda arvo 202: een ja Punainen ja Sininen täydellä teholla yhdistävät magenta-värin.

Nyt kun tiedämme, miten LED-käsin manipuloidaan, katsotaan, että käytämme komentosarjoja, jotta voimme kääntää LEDimme yksinkertaiselta valolta todelliselta indikaattorilta.

LedBorgin asentaminen rain-ilmaisijaksi

Tässä opetusohjelman osassa koukkaamme useita asioita, jotta voimme kääntää LedBorg-LED-moduulin sadeilmoitukseksi sijaintimme sääennusteen perusteella. Käytämme Python-skriptiä soittamalla sääliittymästä, joka puolestaan ​​lukee päivän sateen mahdollisuuden ja vaihtaa sitten LED: n pois kirkkaalta siniseltä ilmoittamaan ennustetun sateen.

Ensinnäkin meidän täytyy saada API-käyttöavain Weather Undergroundille. Henkilökohtaiseen käyttöön ja pieniin kehityshankkeisiin API on ilmainen. Käy Weather API -sivustossivulla täällä ja rekisteröidy API-avaimella.

Kun sinulla on API-avain, käy Weather Undergroundissa ja etsi kaupunkia, jota haluat seurata. Meidän tapauksessamme seuraamme San Fransisconia, CA.San Franciscon ennustussivun URL-osoite on:

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

Tärkeä osa tarkoituksemme on URL-osoitteen viimeinen osa: /CA/ San_Francisco.html. Aiomme käyttää sitä muokata API-työkalun ennakoivaa URL-osoitetta. Perus-URL-osoite on:

http: //api.wunderground.com/api/ API-ASIAKIRJA /forecast/q/STATE/ CITY.json

Voit luoda ennusteita mille tahansa Yhdysvaltain kaupunkille kirjoittamalla API-avaimen, kahden kirjaimen tilakoodin ja kaupungin nimen URL-osoitteeseesi, Underground-hakutulokset.

Kun olet lisännyt sovellusliittymän URL-osoitteen, jossa API-avain ja tila / kaupunki on asetettu, voit muokata seuraavaa python-skriptiä luomalla uusi tekstidokumentti Pi: ssä Leafpadilla ja liittämällä siihen seuraava koodi:

from urllib2 import urlopen

parsed_json = json.load( req)
pop = int( parsed_json ['forecast'] ['txt_forecast'] ['forecastday'][0] ['pop'])

# Seuraava on virheenkorjausarvo.
# Muokkaa hash ja muuta
# kokonaisluku 0-100 testata
# LED-vastaus.

#

# pop = 0

print 'Nykyinen sateen mahdollisuus on{ }.' Format( pop)

# Oletusasetuksena on LED
#.Voit säätää
# arvoa "jos pop & gt; 20:", kuten haluat.

jos pop & gt;
tulostus( 'Rain!')
muu:
LedBorg = avoin( '/dev/ ledborg', '
ledborg', '
LedBorg'w ')
LedBorg.write( ' 000 ')
del LedBorg
tulostaa( ' Ei sateita! ')

Tallenna tiedosto wunderground.py /home/pi/-hakemistosta. Avaa päätelaite ja kirjoita seuraava komento:

python wunderground.py

Jos olet kirjoittanut API-avaimen ja valtion / kaupunkikoodisi oikein, sen pitäisi avata vastaus, joka näyttää:

Jos sadanta on ennustettu alueellesisinun LedBorg-lähdön pitäisi näyttää sellaiselta:

Odottaessaan sadepäivää, että käsikirjoitus testattiin oikein, se olisi ikävää.Jos tänään ei ole mahdollisuutta sateeseen alueellasi ja haluat nähdä LED-valon, muokkaa wunderground.py -komentoa ja korvaa rivin 13 pop-pop-läpäisyarvo arvolla, joka on yli 20, kuten 60että ennusteemme palautui. Muista vain muuttaa rivin takaisin "pop = pop", kun olet valmis.

Viimeinen vaihe on määrittää cron-työ, joka automaattisesti käsittelee käsikirjoituksen, jota me vain tallennimme säännöllisesti, jotta LED-merkkivalo pysyy voimassa. Koska tämä tehtävä on välttämätön sekä tässä kirjoitusohjelmassa että seuraavassa sähköpostin indikaattorissa, aiomme kattaa cron-työn luomisen sen jälkeen, kun olemme osoittaneet, miten toisen komentosarjan asetukset voidaan määrittää.

LedBorgin määrittäminen Gmail-indikaattoriksi

Kuka ei pidä dopamiinikiinnityksestä, joka tulee näkemään uudet sähköpostit postilaatikossaan? Tässä opetusohjelman osassa esitämme sinulle, miten LedBorgia käytetään uuden Gmail-indikaattorina. Aivan kuten viime kerralla, aiomme yhdistää ulkoisen syötteen( tässä tapauksessa Atom-syötteen API: n sijasta) ja yksinkertaisen komentosarjan, joka ajaa LEDiamme.

Python-asennuksen toimivuutta on lisättävä hieman asenntamalla FeedParser, Python RSS / Atom -rehunlukityökalu. Avaa päätelaite ja kirjoita seuraava komento:

sudo easy_install syöttöparaattori

Kun asennus on valmis, voimme asettaa Gmail-tarkistuskoodin luomisen. Käytä Leafpadia liimaamalla seuraavaa tekstiä editoriksi. Muuta käyttäjätunnusta ja salasanaa vastaamaan Gmail-tilisi käyttäjänimeä ja salasanaa, jonka haluat tarkistaa.

-tuontiretki

# Anna Gmail-käyttäjänimi
# ja salasana.Älä sisällytä
#
#: n @ gmail.com -osaa käyttäjänimeesi.

salasana = "salasana"

mail = int( feedparser.parse( "https: //" + käyttäjätunnus + ":" + salasana + "@ mail.google.com /gmail/feed/ atomi") ["syöte"] [" fullcount "])

# Seuraavassa on virheenkorjausarvo.
# Muokkaa hash ja muuta
# kokonaisluku 0 tai 1 testata
# LED-vastaus.

# mail = 0

jos posti & gt;
tulostus( 'Mail!')
muu:
LedBorg = avoin( '/dev/ ledborg', '
ledborg', '
leddb'w ')
LedBorg.write( ' 000 ')
del LedBorg
tulostaa( ' Ei postia! ')

Tallenna komentosarja gmailcheck.py. Avaa päätelaite ja kirjoita seuraava komento:

python gmailcheck.py

Jos sinulla on sähköpostiviesti Gmail-postilaatikkoosi, LED-valo muuttuu vihreäksi ja saat vastauksen sellaisenaan:

Jos sinulla on postia Gmail-postilaatikossasi, LedBorgnäyttävät näin:

Kuten sateen tarkistuskäsikirjoituksessa, olemme sisällyttäneet virheenkorjausarvon. Jos sinulla ei ole uusia sähköpostiviestejä, voit joko lähettää itsellesi sähköpostiviestin, jos haluat lisätä postilaatikon määrän 1: een, tai voit muokata kommentin hajautusta ja muuttaa virheenkorjausrivin "mail = 1" testataksesi komentosarjaa. Muista palauttaa linja, kun olet tehnyt testin.

Ohita opetusohjelman seuraavaan osaan asettaaksesi Gmail-komentosarjan suoritettavaksi aikataulussa.

Cron-työohjelman luominen komentosarjan suorittamiseen

Nyt kun meillä on kaksi skriptaa, meidän on luotava cron-työ, jotta voisimme käyttää niitä koko päivän ajan, jotta LED-merkkivalo säilyisi.

Haluamme ensin kytkeä LED pois päältä, jos se on tällä hetkellä aiemmista kokeiluistamme. Päätetyypissä:

echo "000" & gt;/dev/ ledborg

Kun olet yhä komentorivillä, voit avata cron-editorin. Jos et ole aiemmin asettanut cron-työtä, suosittelemme tarkkaan, että käytämme oppaamme täällä.Sanoimme, että käymme läpi perusasetuksen perustamisen täällä.

Päätetyypissä:

sudo crontab -e

Tämä avaa Raspbian cron-taulukon Nano-tekstieditorissa. Selaa alaspäin nuolinäppäimillä alareunaan. Tässä me aiomme asettaa toistuvan cron-työn Python-skripteihimme.

Jos haluat asettaa rain-komentosarjan, kirjoita seuraava rivi cron-taulukkoon:

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

Poistu CTRL + X-näppäimestä;valitse Kyllä, jos haluat tallentaa ja korvata olemassa olevan cron-taulukon. Cron-taulukossa annettu arvo "* / 5 * * * *" asettaa käsikirjoituksen toimimaan joka 5. minuutti, ikuisesti.

Joka 5. minuutti on hieno määräaika skriptiä varten, joka tarkistaa ennustetun sateen - voit jopa väittää, että se on hieman liian aggressiivinen - mutta jos yrität pysyä sähköpostisi yläpuolella, se on hieman liian pitkä spanilmoitusta. Jos määrität Gmail-ilmoituksen komentosarjan aikataulun, syötä seuraava rivi cron-taulukossa:

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

Tämä kohta suorittaa gmailcheck.py-komentosarjan joka minuutti paljon nopeamminpäivitysilmoitus.

Se kaikki on siinä!Voit kokeilla omia Python-skriptejä poistamalla jos / muut lausunnot ulos ja kokeilemalla niitä uusilla muuttujilla. Jos löydät tulolähteen tiedoille, voit muuttaa sen Python-komentosarjalamarkkinoiden keskiarvoihin, siitepölyn laskut, Twitterin maininnat, jos siinä on API, voit muuttaa sen ympäristön LED-indikaattoriksi.

Lopuksi haluan kiittää kaikkia niitä suuria resursseja, joita käytin tässä projektissa. Se on ollut hieman yli vuosikymmen sitten, koska olin aktiivisesti kirjoittamassa ohjelmia, ja kesti pari koputtaa pölyn ja ruosteeksi. /r/ LearnPythonin avustajat auttoivat minua pilkkelemaan Weather Undergroundin API-lähdöstä selvittääkseen, kuinka Michael kertoi Mitch Techissa käsitteli Gmail Atom-syötteen, joka käsitteli sen LedBorgin helppoutta varten ja tutkinut Code Academyin Python-oppimismoduuleita oli hienokeino saada perussyntaksia ja rakentaa sellaista kieltä, jota en ollut koskaan aiemmin käyttänyt.