Raspberry Pi on mukava kompakti alusta, johon kiinnitetään merkkivalo kaikenlaisiin projekteihin - sääilmoituksiin, uusiin sähköposteihin jne. .
Miksi haluan tehdä tämän?
Koska se on hauskaa. Toisin kuin monissa opetusohjelmissamme, joiden yläosassa on pieni piirros, joka kuvaa tarkalleen, mitä hyötyä projektista saa, piirros on tässä tapauksessa melko lyhyt, koska etuna on vain hauskaa.
Raspberry Pi on täydellinen laite leikkiä, kokeilla elektroniikkaa ja oppia jonkin verran ohjelmointia. Ei kukaan tarpeisiin esimerkiksi keittiön ympäristön sateenilmaisin, mutta sellaisen rakentaminen on hauska harjoitus ja hieno muistutus tuoda sateenvarjo mukanasi mahdollisesti myrskypäivinä.
Mitä minä tarvitsen?
Tarvitset muutamia asioita, jotta voit seurata ohjetta. Ensinnäkin oletamme, että olet jo noudattanut edellistä opetusohjelmaa: HTG-ohje Raspberry Pi: n käytön aloittamiseen (ja näin on peitetty perusasiat Raspbianin asentamiseen Raspberry Pi -malliin).
Jos aiot tehdä tämän projektin budjetilla, voimme varmuudella kertoa sinulle, että uusin Raspberry Pi -malli on merkittävä ylityö tähän työhön, ja kannustamme sinua puhaltamaan pölyn irti vanhalta vadelma Pi: ltä. kaapista tai noutaa halpa käytetty kertaluonteinen eBay tai vastaava. Budjetti on viisasta, kun vadelma Pi 1 -malli A tai malli B, joka on pudonnut eBaysta 10-15 dollaria, sopii täydellisesti tähän projektiin aivan uuden 35 dollarin nykyisen Pi-sukupolven ostamiseen.
Sen lisäksi, että sinulla on toiminnallinen Pi-yksikkö, johon on asennettu Raspbian, tarvitset seuraavat asiat:
- 1 LedBorg-moduuli (~ 5,00 dollaria ja 4 dollarin lähetys Iso-Britanniasta Yhdysvaltoihin, toimii kaikkien Raspberry Pi -mallien kanssa).
- 1 Selkeä Raspberry Pi -kotelo, joka on yhteensopiva juuri sinun 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 läpinäkymätöntä koteloa, LED-merkkivalo piilotetaan sisälle. Joko sinun on leikattava kotelosi reikä, jotta valo sammuu, tai käytä GPIO-jatkojohtoa, jossa on breakout-paketti - kuten tämä Adafruit Industriesilta - kytkeä LedBorg Raspberry Pi -laitteeseesi. Vaikka Breakout-kaapelin käyttö lisää projektin kustannuksia noin 8 dollaria, se tarjoaa enemmän mahdollisuuksia lopputuotteen räätälöintiin, koska voit sijoittaa LED-valon helpommin esineiden sisään tai alle jotain, jonka haluat valaista.
LedBorgin asentaminen
Vaikka voisit varmasti rakentaa itsellesi täysin tyhjästä LED-ilmaisimen (ja hakukyselystä löytyy paljon ihmisiä, jotka ovat tehneet niin), Piborg-organisaatio tuottaa niin pienikokoisen ja halvan LED-moduulin, LedBorg, että emme pystyneet ' Vastustamme sen käyttöä Raspberry Pi LED -indikaattoriprojektimme perustana.
Moduulin asentaminen on helppoa, koska se on suunniteltu sopimaan suoraan Pi: n GPIO-nastojen päälle. Sammuta ensin Pi ja avaa kotelo.
Tärkein osa asennusprosessia on, että moduuli suunnataan siten, että LedBorg-kuvake on lähinnä Raspberry Pi -taulun RCA-moduulia (ja siten LedBorgin reuna on tasainen Pi-levyn reunojen kanssa ulospäin osa LedBorgista, joka roikkuu Pi-levyn yli eikä reunasta). Katso yllä oleva valokuva.
Vaikka Pi-kortti on auki, nyt olisi hyvä aika peittää sisäiset LED-ilmaisimet (USB-porttien vieressä), varsinkin jos käytät selkeää koteloa. Et halua sen olevan hämmentävää lukea LedBorg-ilmaisinta, koska virran ja verkon merkkivalot ovat niin kirkkaita.
Peitimme omamme kerroksella valkoista sähköteippiä. Tämä himmensi heitä tarpeeksi, jotta voimme silti viitata niihin, mutta he olivat niin himmeitä kuin LedBorg, ettei se enää häirinnyt.
Kun LedBorg on asennettu ja olet valinnaisesti peittänyt Pi: n LED-merkkivalot sähköteipillä, on aika sulkea kotelo. Käynnistä Pi ylös ennen siirtymistä opetusohjelman seuraavaan vaiheeseen.
LedBorg-ohjelmiston asentaminen
PiBorg tarjoaa LedBorgille loistavan ohjelmistopaketin, joka sisältää sekä graafisen käyttöliittymän ohjaimen että ohjaimet pääsemään LedBorgiin komentoriviltä.
Ennen kuin aloitamme, sinun on varmistettava, että nappaat oikean paketin Rasbian-versiollesi ja Raspberry Pi -taulunne versionumerolle.
Jos Raspberry Pi -levylläsi ei ole asennusreikiä, se on versio 1. Jos Raspberry Pi -laitteessasi on kiinnitysreikiä (sijaitsevat USB-porttien vieressä ja virta- ja HDMI-porttien välissä), se on versio 2. Sinun on myös tiedettävä ytimen versio Rasbian-asennuksestasi. Avaa pääte ja kirjoita seuraava komento tarkistaaksesi:
uname -r
Kun sinulla on versionumero ja ytimen numero, voit käy Paketit-osiossa täällä napata pakettisi linkki. Meidän tapauksessamme käytämme Revision 1 -levyä 3.6.11-ytimen kanssa, joten tarttuisimme raspbian-2013-02-09-rev1.zip-tiedostoon.
Kaikkien herkkujen asentamiseksi meidän on avattava terminaali Pi: lle. ja syötä sitten seuraavat komennot LedBorg-paketin asentamiseksi.
Huomautus: Sinun on korvattava kolmannen komennon URL-osoite taulun / ytimen yhdistelmän paketin URL-osoitteella.
mkdir ~ / ledborg-setup
cd ~ / ledborg-asennus
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
pura setup.zip
chmod + x install.sh
./install.sh
Tässä vaiheessa sinulla on nyt LedBorg-ohjainten ja itse ohjainten GUI-kääre. Raspbian-työpöydällä näet GUI-kääreen kuvakkeen:
Käynnistä ja napsauta LedBorg-kuvaketta käynnistääksesi GUI-kääreen. Sinua kohdellaan värivalitsimen käyttöliittymällä seuraavasti:
Nyt on täydellinen aika varmistaa, että moduuli toimii. Kokeile valitsemalla mikä tahansa väri, paitsi musta. Aiomme testata sitä valitsemalla muutama väri:
Näyttää hyvältä! Se on kirkas ja projektille tilatun kotelon himmeä muovi tarjoaa kohtalaista diffuusiota. Jos haluat pelata enemmän LED-moduulilla ennen kuin jatkat, valitse Demotila:
Demotilassa voit selata kaikkia värejä eri nopeuksilla, tarkistaa korkean / matalan ulostulon ja muuten laittaa LED-moduulin läpi.
Tässä Demotila-osiossa voit myös muuttaa LedBorg-laitteesi ensimmäiseksi monista indikaattoreista. Valitsemalla CPU Värit-osiossa LED alkaa muuttua vihreästä keltaisesta punaiseksi osoittamaan Raspberry Pi: n ARM-prosessorin kuormitusta. Suosittelemme vaihtamaan nopeuden hitaaksi, kun olet siinä - Nopea päivittää LED-valon liian nopeasti ja tekee suorittimen merkkivalosta häiritsevän hyödyllisyyden sijaan.
Sen lisäksi, että käytät värejä graafisen käyttöliittymän avulla, voit valita värejä päätteestä RGB-arvojen avulla. Avaa pääte ja kirjoita seuraava komento sammuttaaksesi LED: n:
kaiku "000"> / dev / ledborg
Tapa, jolla LedBorg käsittelee RGB-arvoja, on, että 0 tarkoittaa, että kanava on pois päältä, 1 tarkoittaa, että kanava on puolitehoinen ja 2 tarkoittaa, että kanava on täysi teho. Joten esimerkiksi 001 asettaisi punaisen kanavan 0%: iin, vihreän kanavan 0%: iin ja sinisen kanavan 50%: n tehoon.
Vaihda arvoksi 002 ja LED-lähtö pysyy sinisenä, mutta kirkastuu, koska sinisen kanavan teho on nyt 100%. Muuta arvoksi 202 ja Punainen ja Sininen täydellä teholla yhdistyvät magentanväriseksi.
Nyt kun tiedämme kuinka LEDiä käsitellään manuaalisesti, katsotaanpa komentosarjojen avulla LEDin kääntäminen yksinkertaisesta valosta todelliseksi ilmaisimeksi.
LedBorgin määrittäminen sateenilmaisimeksi
Tässä ohjeen osassa me kammataan useita asioita yhdessä, jotta LedBorg LED -moduulistamme tulisi sadeindikaattori sijaintimme sääennusteen perusteella. Käytämme Python-komentosarjaa kutsumaksemme sää-API: n, joka puolestaan lukee päivän sateen mahdollisuuden ja vaihtaa sitten LED-valon kirkkaaksi siniseksi ilmaistakseen ennustetun sateen.
Ensinnäkin meidän on hankittava Weather Underground -sovelluksen API-avain. Henkilökohtaiseen käyttöön ja pieniin kehitysprojekteihin API on ilmainen. Käy Weather API -rekisteröintisivulla täällä ja rekisteröidy API-avaimeen.
Kun sinulla on API-avain, käy Weather Undergroundissa ja etsi kaupunki, jota haluat seurata. Meidän tapauksessamme aiomme seurata San Fransiscoa, Kalifornia. San Fransiscon ennustesivun URL-osoite on:
http://www.wunderground.com/US/CA/San_Francisco.html
Tärkeä osa tarkoituksiamme on URL-osoitteen viimeinen osa: /CA/San_Francisco.html. Aiomme käyttää sitä API-työkalun ennustetun URL-osoitteen muokkaamiseen. Perus-URL on:
http://api.wunderground.com/api/OMA API-AVAIN / ennuste / q / STATE / CITY.json
Voit luoda ennusteen mille tahansa Yhdysvaltain kaupungille kirjoittamalla API-avaimen, kaksikirjaimisen valtion koodin ja kaupungin nimen URL-osoitteesta, jonka valitsit Weather Underground -tuloksista.
Kun olet saanut API-URL-osoitteen, johon on lisätty API-avain ja tila / kaupunki, voit muokata seuraavaa Python-komentosarjaa luomalla uuden tekstidokumentin Pi: ssä Leafpadin avulla ja liittämällä siihen seuraavan koodin:
urllib2: sta tuoda urlopenia
tuo json
req = urlopen ('http://api.wunderground.com/api/YOUR API AVAIN / ennuste / q / STATE / CITY.json ')
parsed_json = json.load (kysy)
pop = int (parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])# Seuraava on virheenkorjausarvo.
# Muokkaa hash ja muuta
# testattavan kokonaisluvun arvoksi 0-100
# LED-vaste.# pop = 0
tulosta 'Sateen nykyinen mahdollisuus on {}.'. muoto (pop)
# Oletusasetus on kytkeä LED päälle
# mahdollisista sateista yli 20%. Voit säätää
# arvo kohdassa "jos pop> 20:" kuten haluat.
jos pop> 20:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write ('002')
kirjoittanut LedBorg
tulosta ('Sade!')
muu:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write ('000')
kirjoittanut LedBorg
tulosta ('Ei sadetta!')
Tallenna tiedosto nimellä wunderground.py hakemistoon / home / pi /. Avaa pääte ja kirjoita seuraava komento:
python wunderground.py
Jos olet syöttänyt API-avaimesi ja osavaltiokoodisi oikein, sen pitäisi palauttaa vastaus, joka näyttää tältä:
Jos alueellesi ennustetaan sademäärää, LedBorg-tuotoksen tulisi näyttää tältä:
Odottaa nyt sateista päivää testata käsikirjoitus oikein olisi työlästä. Jos alueellasi ei ole tänään sateen mahdollisuutta ja haluat, että LED-valo syttyy, muokkaa wunderground.py-komentosarjaa ja korvaa rivillä 13 oleva pop = pop-läpivirtausarvo arvolla, joka on suurempi kuin 20, kuten 60 että ennusteemme palasi. Muista vain vaihtaa rivi takaisin "pop = pop", kun olet valmis.
Viimeinen vaihe on asettaa cron-työ suorittamaan juuri tallentamasi komentosarja säännöllisin väliajoin, jotta LED-merkkivalo pysyy virtana. Koska tämä tehtävä on välttämätön sekä tämän komentosarjan että seuraavan sähköpostiosoitteen osalta, aiomme käsitellä cron-työn asettamista sen jälkeen, kun olemme osoittaneet, kuinka toinen komentosarja asennetaan.
LedBorgin määrittäminen Gmail-ilmaisimeksi
Kuka ei pidä dopamiinikorjauksesta, joka tulee uuden sähköpostin näkemisestä postilaatikossa? Tässä opetusohjelman osassa aiomme näyttää, kuinka LedBorgia käytetään uutena Gmail-indikaattorina. Aivan kuten viime kerralla, aiomme yhdistää ulkoisen tulon (tässä tapauksessa Atom-syötteen sovellusliittymän sijaan) ja yksinkertaisen komentosarjan LEDin käyttämiseen.
Meidän on laajennettava Python-asennuksemme toiminnallisuutta hieman asentamalla FeedParser , Python RSS / Atom -syötteenlukutyökalu. Avaa pääte ja kirjoita seuraava komento:
sudo easy_install feedparser
Kun asennus on valmis, voimme ryhtyä toimimaan Gmail-tarkistuskomentojemme luomisessa. Liitä seuraava teksti uudelleen editoriin Leafpadin avulla. Vaihda käyttäjänimi ja salasana vastaamaan tarkistettavan Gmail-tilin käyttäjänimeä ja salasanaa.
tuo feedparser
# Anna Gmail-käyttäjänimesi
# ja salasana. Älä sisällytä
# @ gmail.com-osa
# sinun käyttäjä nimesi.
käyttäjätunnus = "käyttäjänimi"
password = "salasana"
mail = int(feedparser.parse("https://" + username + ":" + password +"@mail.google.com/gmail/feed/atom")["feed"]["fullcount"])# Seuraava on virheenkorjausarvo.
# Muokkaa hash ja muuta
# testattavan kokonaisluvun arvoksi 0 tai 1
# LED-vaste.# mail = 0
jos posti> 0:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write ('020')
kirjoittanut LedBorg
tulosta ('Mail!')
muu:
LedBorg = avoin ('/ dev / ledborg', 'w')
LedBorg.write ('000')
kirjoittanut LedBorg
tulosta ('Ei postia!')
Tallenna komentosarja nimellä gmailcheck.py. Avaa pääte ja kirjoita seuraava komento:
python gmailcheck.py
Jos sinulla on sähköposti Gmail-postilaatikossa, LED muuttuu vihreäksi ja saat vastauksen:
Jos sinulla on postia Gmail-postilaatikossa, LedBorg näyttää tältä:
Aivan kuten sateen tarkistusohjelma, olemme sisällyttäneet virheenkorjausarvon. Jos sinulla ei ole uutta sähköpostia, voit joko lähettää itsellesi sähköpostin korottaaksesi postilaatikkomäärän 1 tai voit muokata kommentin tiivistettä ja vaihtaa virheenkorjausriviksi "mail = 1" testataksesi komentosarjan. Muista palauttaa viiva, kun olet valmis.
Hyppää opetusohjelman seuraavaan osioon ja aseta Gmail-komentosarjasi toimimaan aikataulun mukaan.
Cron-työn asettaminen komentosarjan suorittamista varten
Nyt kun meillä on kaksi skriptiä pelattavaksi, meidän on määritettävä cron-työ, jotta niitä voidaan käyttää koko päivän ajan LED-ilmaisimen virran pitämiseksi.
Ensimmäinen asia, jonka haluamme tehdä, on sammuttaa LED, jos se on tällä hetkellä edellisissä kokeissamme. Päätetyypissä:
kaiku “000”> / dev / ledborg
Kun olet vielä komentorivillä, voit avata cron-editorin. Jos et ole koskaan asettanut cron-työtä aiemmin, suosittelemme vahvasti tutustu oppaaseen sen käytöstä täällä . Siitä huolimatta opastamme sinut perustamaan perusaikataulun täällä.
Päätetyypissä:
sudo crontab –e
Tämä avaa Raspbian cron -taulukon Nano-tekstieditorissa. Käytä nuolinäppäimiä selataksesi alaosaan. Täällä aiomme määrittää toistuvan cron-työn Python-skripteihimme.
Jos haluat määrittää sade-komentosarjan, kirjoita seuraava rivi cron-taulukkoon:
* / 5 * * * * python /home/pi/wunderground.py
Poistu painamalla CTRL + X; valitse kyllä tallentaaksesi ja korvaaaksesi olemassa olevan cron-taulukon. Cron-taulukkoon syötetty arvo "* / 5 * * * *" asettaa komentosarjan toimimaan 5 minuutin välein ikuisesti.
Joka 5. minuutti on hieno aika käsikirjoitukselle, joka tarkistaa ennustetun sateen - voit jopa väittää, että se on hieman liian aggressiivinen - mutta jos yrität pitää sähköpostisi päällä, ilmoitus on hieman liian pitkä. . Jos määrität Gmail-ilmoituskoodin aikataulua, kirjoita seuraava rivi cron-taulukkoon:
* / 1 * * * * python /home/pi/wunderground.py
Tämä merkintä suorittaa gmailcheck.py-komentosarjan joka minuutti saadaksesi paljon nopeamman päivitysilmoituksen.
Siinä kaikki siinä! Voit kokeilla omia Python-skriptejäsi nostamalla if / else-käskyt pois omistamme ja kokeilemalla niitä upouusilla muuttujilla. Jos löydät tietolähteen tulolähteen, voit muuttaa sen muuttujaksi Python-komentosarjassa - osakemarkkinoiden keskiarvot, siitepölyn määrä, Twitter mainitsee, jos sille on olemassa sovellusliittymä, voit tehdä siitä ympäristön LED-ilmaisimen.
Lopuksi haluan kiittää kaikkia suuria resursseja, joita käytin työskennellessäni tämän projektin parissa. Kirjoitin aktiivisesti ohjelmia, on kulunut hieman yli vuosikymmenen, ja pölyn ja ruosteen poistaminen kesti muutaman koputuksen. Avustajat osoitteessa / r / LearnPython auttoi minua hillitsemään Weather Underground -sovelluksen API-lähtöä ja opiskelemaan, kuinka Michael siirtyi Mitch Techiin käsitelty Gmail Atom -syötettä teki sen jäsentämisen LedBorgille helppoa ja opiskelee Python-oppimismoduuleja Code Academy -opistossa oli loistava tapa poimia sellaisen kielen perussyntaksi ja rakenne, jota en ole koskaan ennen käyttänyt.