Raspberry Pi tekee mukavan kompaktin alustan liittää merkkivalo kaikenlaisiin projekteihin - sääilmoitukseen, uusiin sähköposteihin jne. Lue, kun näytämme, kuinka kytket LED-moduulin Piiin ja perustat joitain perusilmoituksia .
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 leikkiä, kokeilla elektroniikkaa ja oppia ohjelmointia. ei kukaan tarpeisiin Esimerkiksi keittiössä vallitseva sateenmittari, mutta rakennuksen yksi on hauska harjoitus ja suuri muistutus, joka tuo sateenvarjon mukanasi mahdollisesti myrskypäivinä.
Jotta voit seurata 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 aiot tehdä tämän projektin budjetista, voimme varmasti kertoa teille, että uusin mallisto Raspberry Pi on merkittävä työpaikalle ylenmääräinen, ja me kannustamme sinua puhaltamaan pölyn pois vanha vadelma Pi, jota olet saanut työnnettynä kaapissa tai poimia edullinen käytetty 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:
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 tapauksessasi, jotta valo syttyy tai käytä GPIO-jatkojohtoa, jossa on katkoviiva, kuten Adafruit Industries -tuote, jonka avulla voit liittää LedBorgin vadelmasi Piin. 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.
Vaikka voit varmasti 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 edullinen LED-moduuli, LedBorg, että emme voisi " t vastusta sen käyttämistä Raspberry Pi LED -indikaattoriprojektin perustana.
Moduulin asentaminen on helppoa, koska se on suunniteltu sovittamaan suoraan Pi: n GPIO-tappien päälle. Ensinnäkin, katkaise Pi ja avaa asia.
Asennusprosessin tärkein osa on, että suunnataan moduuli siten, että LedBorg-kuvake on lähimpänä Raspberry Pi -laudan RCA-moduulia (ja siten LedBorgin reuna on tasossa Pi-levyn reunojen kanssa, osa LedBorgista, joka roikkuu Pi-levyn päälle 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-merkkivalot, koska virta- ja verkkolukivalot ovat niin kirkkaita.
Peitimme meidät valkoisella sähköteipillä. 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.
PiBorg tarjoaa loistavan ohjelmistopaketin LedBorgille, joka sisältää sekä GUI-ohjaimen että ohjaimet LedBorgin käsiksi komentoriviltä.
Ennen kuin aloitamme, sinun on varmistettava, että olet kaappaamassa oikeanlaisen paketin Rasbian versiosi ja Raspberry Pi -levyn versiota # varten.
Jos Raspberry Pi -laitteessa ei ole asennusreikiä, se on tarkistus 1. Jos Raspberry Pi: lla on asennusreikiä (sijaitsee USB-porttien ja virtalähteen ja HDMI-portin välissä), se on versio 2. Sinun on myös tiedettävä ytimen versio sinun Rasbian asennuksesta. Avaa päätelaite ja kirjoita seuraava komento tarkistaa:
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.
Jotta kaikkiin herkkuihin asennettaisiin, meidän on avauduttava Pi-terminaaliin. ja aseta sitten seuraavat komennot LedBorg-paketin asentamiseksi.
Huomautus: Sinun on korvattava 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
poista setup.zip
chmod + x install.sh
./install.sh
Tässä vaiheessa sinulla on nyt GUI-kääre LedBorg-ohjaimille ja itse ohjaimet. Raspbian-työpöydälläsi on GUI-kääreen kuvake:
Siirry eteenpäin ja napsauta LedBorg-kuvaketta käynnistääksesi GUI-kääreen. Sinua käsitellään värinvalitsimen käyttöliittymälle kuten:
Nyt on täydellinen aika varmistaa, että moduuli toimii. 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 korkea / matala ulostulo ja muuten asettaa LED-moduuli portaiden läpi.
Se on Demo Mode -osiossa, että 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-liitäntää värejä valitsemalla, voit valita värit päätteestä käyttäen RGB-arvoja. Avaa terminaali ja anna seuraava komento, jotta LED ei pala:
echo "000"> / dev / ledborg
LedBorgin käsitteleminen RGB-arvoilla on, 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.
Vaihda arvo 002 ja LED-ulostulo pysyy sinisenä mutta kirkastuu, koska sininen kanava on nyt 100%: n ulostulossa. Vaihda arvo 202: een ja Punainen ja Sininen täydellä teholla yhdistävät magenta-värin.
Nyt, kun tiedämme, kuinka LED-valoa käsitellään käsin, katsotaan, että käytämme komentosarjoja, jotta voimme kääntää LEDimme yksinkertaiselta valolta todelliselta indikaattorilta.
Tämän osion opetusohjelmassa yhdistämme 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 on saatava 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 olet ottanut API-avaimen, käy Weather Undergroundissa ja etsi kaupunkia, jota haluat seurata. Meidän tapauksessamme seuraamme San Fransisconia, CA. San Fransiscon ennustussivun URL-osoite on:
http://www.wunderground.com/US/CA/San_Francisco.html
Tärkeä osa meidän 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/YOUR API KEY / forecast / q / STATE / CITY.json
Voit luoda ennusteita mille tahansa Yhdysvaltain kaupunkille kirjoittamalla API-avaimen, kahden kirjaimen tilakoodin ja kaupungin nimen URL-osoitteeseesi, jonka vedät Weather Underground -haun tuloksista.
Kun sovellusliittymän URL-osoite on avautunut sovellusliittymän avaimella ja osavaltiossa / kaupungissa, voit muokata seuraavaa Python-komentosarjaa luomalla uusi tekstitiedosto Pi-tiedostossa Leafpadilla ja liittämällä siihen seuraavan koodin:
alkaen urllib2 tuonti urlopen
tuota json
req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / ennuste / q / STATE / CITY.json')
parsed_json = json.load (req)
pop = int (parsed_json ['ennuste'] ['txt_forecast'] ['ennipäivä'] [0] ['pop'])# Seuraavassa on virheenkorjausarvo.
# Muokkaa hash ja muutos
# kokonaisluku 0-100 testata
# LED-vastaus.# pop = 0
print 'Nykyinen mahdollisuus sademäärä on .'. muoto (pop)
# Oletusasetuksena on LEDin kytkeminen päälle
# Sade mahdollisuus yli 20%. Voit säätää
# arvo "jos pop> 20:" kuten haluat.
jos pop> 20:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write (002 ')
del LedBorg
tulosta ("Rain!")
else:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write (000 ')
del LedBorg
tulosta ('Ei sateita!')
Tallenna tiedosto wunderground.py-tiedostona / home / pi / -hakemistossa. Avaa päätelaite ja kirjoita seuraava komento:
python wunderground.py
Jos olet antanut API-avaimen ja valtion / kaupunkikoodisi oikein, sen pitäisi palauttaa vastaus, joka näyttää:
Jos sademäärä on ennustettu alueellesi, LedBorg-lähdön pitäisi näyttää sellaiselta:
Nyt odottaessaan sadepäivää, jotta käsikirjoitus testattiin oikein, olisi tylsiä. 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 60 että ennusteemme palautui. Muista vain muuttaa rivin takaisin "pop = pop", kun olet valmis.
Viimeinen vaihe on luoda cron-työ, joka automaattisesti käsittelee kirjoittamamme käsikirjoituksen 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ää.
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, Pythonin RSS / Atom-syötteenlukutyökalu. Avaa päätelaite ja anna seuraava komento:
sudo easy_install feedparser
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.
tuoda syötteenä
# Anna Gmail-käyttäjänimi
# ja salasana. Älä sisällytä
# @ gmail.com - osa
# sinun käyttäjä nimesi.
username = "käyttäjätunnus"
salasana = "salasana"
mail = int (feedparser.parse ("https: //" + käyttäjätunnus + ":" + salasana + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])
# Seuraavassa on virheenkorjausarvo.
# Muokkaa hash ja muutos
# kokonaisluku 0 tai 1 testata
# LED-vastaus.# mail = 0
jos posti> 0:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write (020 ')
del LedBorg
tulosta ('Mail!')
else:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write (000 ')
del LedBorg
tulosta ('Ei postia!')
Tallenna komentosarja gmailcheck.py. Avaa päätelaite ja kirjoita seuraava komento:
python gmailcheck.py
Jos Gmail-postilaatikkoosi on sähköpostiviesti, LED-valo muuttuu vihreäksi ja saat vastauksen sellaisenaan:
Jos sinulla on postia Gmail-postilaatikkoosi, LedBorg näyttää näin:
Aivan kuten sateen tarkistuksen käsikirjoitus, olemme sisällyttäneet virheenkorjausarvoa. 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.
Hyppää opetusohjelman seuraavaan osaan asettaaksesi Gmail-komentosarjan suoritettavaksi aikataulussa.
Nyt kun meillä on kaksi skriptaa, meidän on luotava cron-työ, jotta voimme käyttää niitä koko päivän ajan, jotta LED-merkkivalo säilyisi.
Ensimmäinen asia, jonka haluamme tehdä, on sammuttaa LED, jos se on tällä hetkellä aiemmista kokeiluistamme. Päätetyypissä:
echo "000"> / dev / ledborg
Kun olet vielä 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 määrittää rain-komentosarjan, kirjoita seuraava rivi cron-taulukkoon:
* / 5 * * * * python /home/pi/wunderground.py
Poistu painamalla CTRL + X; 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 viides minuutti on hieno määräaika skriptiä varten, joka tarkistaa ennustetun sateen - voisit jopa väittää, että se on hieman liian aggressiivinen - mutta jos yrität pitää sähköpostisi yläreunassa, se on liian pitkä mittausilmoituksen . Jos määrität Gmail-ilmoituksen komentosarjan aikataulun, syötä seuraava rivi cron-taulukossa:
* / 1 * * * * python /home/pi/wunderground.py
Tämä merkintä suorittaa gmailcheck.py-skriptin joka minuutti nopeammin päivitysilmoitukselle.
Siinä kaikki on! 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 suuria resursseja, joita käytin tälle hankkeelle. 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össä selvittämällä, kuinka Michael kertoi Mitch Techissa käsitteli Gmail Atom -resurssia, joka käsitteli sen LedBorgin helppoutta varten ja tutkinut Code Academyin Python-oppimismoduuleita hyvä tapa poimia perussyntaksia ja rakenteita sellaisen kielen, jota en ole koskaan aiemmin käyttänyt.