Kotisivu » miten » Rakenna LED-ilmaisin Raspberry Pi -laitteella (sähköposti, sää tai muu)

    Rakenna LED-ilmaisin Raspberry Pi -laitteella (sähköposti, sää tai muu)

    Raspberry Pi tekee mukavan pienikokoisen alustan liittämään merkkivalon kaikenlaisiin projekteihin, sääilmoituksiin, uusiin sähköposteihin jne. Lue, kun näytämme, miten kytkeä LED-moduuli Pi-laitteeseen ja määritä joitakin perusilmoituksia.

    Miksi haluan tehdä tämän?

    Koska se on hauskaa. Toisin kuin monissa opetusohjelmissamme, joissa ylhäällä on pieni lohko, jossa kuvataan tarkalleen, mitä hyötyä saat projektista, blurb on tässä tapauksessa melko lyhyt, koska hyöty on yksinkertaisesti hauskaa.

    Raspberry Pi on täydellinen laite, jossa voi leikkiä, kokeilla elektroniikkaa ja oppia ohjelmointia. ei kukaan tarpeisiin esimerkiksi keittiön ympäristösate-indikaattori, mutta sen rakentaminen on hauska harjoitus ja hyvä muistutus tuoda sateenvarjo mukaasi myrskypäiviin.

    Mitä minä tarvitsen?

    Jotta voit seurata opetusta, tarvitset muutamia asioita. Ensinnäkin oletamme, että olet jo seurannut edellistä opetusohjelmaa: Raspberry Pi: n käytön aloittamista koskeva HTG-opas (ja näin ollen perusasiat, jotka on sisällytetty Rasbyn asentamiseen Raspberry Pi -ohjelmaamme).

    Jos haluat tehdä tämän hankkeen budjetista, voimme luotettavasti kertoa teille, että uusin malli Raspberry Pi on merkittävä ylimääräinen työhön, ja rohkaisemme sinua puhaltamaan pöly pois vanhalta Raspberry Pi -yritykseltäsi kaapissa tai noutaa halpa käytetty eBay tai vastaava. Budjetti viisaasti pitkän hampaiden Raspberry Pi 1 -mallin A tai B-mallin kanssa takasi eBayn 10–15 dollaria, mikä sopii erinomaisesti tähän projektiin, kun ostat uuden 35 dollarin nykyisen sukupolven Pi.

    Sen lisäksi, että käytössä on toimiva Pi-yksikkö, johon on asennettu Raspbian, tarvitset seuraavat asiat:

    • 1 LedBorg-moduuli (~ 5,00 dollaria ja 4 dollaria toimitus Yhdistyneestä kuningaskunnasta Yhdysvaltoihin, toimii kaikkien Raspberry Pi -mallien kanssa).
    • 1 Tyhjennä Raspberry Pi -kuori, joka on yhteensopiva erityisesti Pi-mallin kanssa, kuten tämä Raspberry Pi 1 -mallin B tapaus.

    Huomautus: Kirkas / himmeä Pi-kotelo on täysin valinnainen, mutta jos käytät parhaillaan läpinäkymätöntä tapausta, LED-merkkivalo piilotetaan. Sinun täytyy joko leikata reikäsi, jotta valo syttyy tai käytät GPIO-jatkokaapelia, jossa on breakout-pakkaus, kuten Adafruit Industries -yhtiöltä, jotta LedBorg voidaan yhdistää Raspberry Pi -laitteeseesi. Kun käytät katkaisukaapelia, se lisää noin 8 dollaria hankkeen kustannuksella, sillä se tarjoaa enemmän mahdollisuuksia muokata lopputuotetta siten, että voit sijoittaa LEDin helpommin asioihin tai jotain, jota haluat valaista.

    LedBorgin asentaminen

    Vaikka voit varmasti rakentaa itsesi täysin tyhjästä LED-indikaattorista (ja hakukoneen kyselystä tulee paljon ihmisiä, jotka ovat tehneet niin), Piborg-organisaatio tuottaa niin pienikokoisen ja edullisen LED-moduulin, LedBorgin, jota emme pystyneet t vastustaa sitä Raspberry Pi LED -indikaattoriprojektin perustana.

    Moduulin asentaminen on snap, koska se on suunniteltu sovitettavaksi suoraan Pi: n GPIO-nastojen yli. Ensin kytke Pi ja avaa kotelo.

    Asennusprosessin tärkein osa on, että suuntaat moduulin siten, että LedBorg-kuvake on lähinnä Raspberry Pi-kortin RCA-moduulia (ja siten LedBorgin reunat ovat samassa linjassa Pi-levyn reunojen kanssa, kun se ulottuu osa LedBorgista, joka on ripustettu Pi-aluksella eikä reunasta). Katso yllä oleva valokuva.

    Vaikka sinulla on Pi-kortti auki, nyt olisi erinomainen aika kattaa sisäiset LED-merkkivalot (USB-porttien vieressä), varsinkin jos käytät selkeää tapausta. Et halua, että LedBorg-indikaattorin lukeminen on hämmentävää, koska virran ja verkon merkkivalot ovat niin kirkkaita.

    Me peitimme meidät valkoisella sähköteipillä. Tämä himmennettiin tarpeeksi, jotta voisimme silti viitata niihin, mutta ne olivat niin himmennettäviä kuin LedBorg, jota se ei enää häirinnyt.

    Kun olet asentanut LedBorgin ja olet valinnaisesti peittänyt Pi: n LED-merkkivalot sähköteipillä, on aika sulkea kotelo takaisin. Käynnistä Pi ylös ennen kuin siirryt opetusohjelman seuraavaan vaiheeseen.

    LedBorg-ohjelmiston asentaminen

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

    Ennen kuin aloitat, sinun on varmistettava, että tartutte oikean paketin Rasbian-versiosi ja Raspberry Pi -lautakunnan version # version..

    Jos Raspberry Pi -kortissa ei ole kiinnitysreikiä, se on tarkistus 1. Jos Raspberry Pi -laitteessa on asennusreiät (USB-porttien ja teho- ja HDMI-portin välissä), se on Revision 2. Sinun on tiedettävä myös ytimen versio teidän Rasbyn asennuksen. Avaa pääte ja kirjoita seuraava komento tarkistaaksesi:

    uname -r

    Kun olet saanut tarkistusnumeron ja ytimen numeron, voit siirtyä paketin linkkiin napsauttamalla tässä paketteja-osaa. Käytössämme käytämme Revision 1 -levyä 3.6.11-ytimellä, jotta saisimme raspbian 2013-02-09-rev1.zip-tiedoston.

    Jotta voisimme asentaa kaikki herkut, meidän on avattava pääte Pi. ja asenna sitten seuraavat komennot LedBorg-paketin asentamiseen.

    Huomautus: Kolmannen komennon URL-osoite on korvattava paketin URL-osoitteella kortti / ytimen yhdistelmää varten.

    mkdir ~ / ledborg-setup
    cd ~ / ledborg-setup
    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 GUI-kääre LedBorg-ohjaimille ja ajurit itse. Raspbian-työpöydälläsi näkyy GUI-kääreen kuvake:

    Käynnistä GUI-kääre napsauttamalla LedBorg-kuvaketta. Sinua käsitellään värivalitsimien käyttöliittymänä:

    Nyt on täydellinen aika varmistaa, että moduulisi toimii. Voit valita minkä tahansa värin, paitsi musta. Aiomme testata sen valitsemalla muutaman värin:

    Näyttää hyvältä! Se on kirkas ja projektin mukaan tilattavan kotelon himmeä muovi on kohtalainen. Jos haluat toistaa LED-moduulilla enemmän ennen siirtymistä, valitse Demo-tila:

    Demotilassa voit kiertää kaikkia värejä eri nopeuksilla, tarkistaa korkean / pienen tehon ja asettaa muuten LED-moduulin vauhtiin.

    Demon tilan osassa voit myös kääntää LedBorgin ensimmäiseksi monista indikaattoreista. Valitsemalla CPU Colors (Värit) -osassa LED alkaa vaihtaa vihreästä keltaiseksi punaiseksi Raspberry Pi: n ARM-prosessorin kuormituksen osoittamiseksi. Suosittelemme nopeuden muuttamista hitaaksi, kun olet siinä. - Fast päivittää LEDin liian nopeasti ja tekee CPU: n ilmaisimen häiritsevän hyödyllisen sijasta.

    GUI-käyttöliittymän lisäksi voit valita värejä väreistä RGB-arvojen avulla. Avaa terminaali ja anna seuraava komento, kun haluat sammuttaa LED: n:

    echo "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 puoliteho, ja 2 tarkoittaa, että kanava on täysi teho. Niinpä esimerkiksi 001 asettaisi punaisen kanavan 0%: iin, vihreän kanavan 0%: iin ja sinisen kanavan 50%: n tehoon.

    Vaihda arvo arvoon 002 ja LED-ulostulo säilyy sinisenä, mutta kirkastuu, koska sininen kanava on nyt 100%: n ulostulossa. Vaihda arvo arvoon 202 ja punainen ja sininen täydellä teholla yhdistävät magentan värin.

    Nyt kun tiedämme, miten käsitellä LEDiä manuaalisesti, tarkastellaan komentosarjojen käyttämistä kääntämällä LED-valo yksinkertaisesta valosta todelliseksi merkkivaloksi.

    LedBorgin määrittäminen sadetunnistimena

    Tässä osassa opetusta me yhdistämme useita asioita, jotta LedBorg-LED-moduulimme muuttuu sademittariksi sijaintimme sääennusteen perusteella. Käytämme Python-skriptiä soittamaan sääolosuhteiden API, joka puolestaan ​​lukee päivän sateen mahdollisuuden ja vaihtaa sitten LED-valon kirkkaaseen siniseen ilmaisemaan ennustetun sateen..

    Ensinnäkin meidän on saatava API-avain avain Weather Undergroundille. Henkilökohtaiseen käyttöön ja pieniin kehityshankkeisiin API on ilmainen. Vieraile Weather API -kirjautumissivulla täällä ja kirjaudu API-avaimeen.

    Kun sinulla on API-avain, käy sääalustalla ja etsi kaupunki, jota haluat seurata. Meidän tapauksessamme seuraamme San Fransiscoa, CA: ta. San Fransiscon ennustussivun URL-osoite on:

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

    Tärkeä osa tavoitteitamme on URL-osoitteen viimeinen osa: /CA/San_Francisco.html. Käytämme sitä muokkaamaan API-työkalun ennustettua URL-osoitetta. Perus-URL-osoite on:

    http://api.wunderground.com/api/YOUR API-KEY / ennuste / q / STATE / CITY.json

    Voit luoda ennusteen yhdelle Yhdysvaltain kaupungista syöttämällä API-avaimesi, kahden kirjaimen tilakoodin ja kaupungin nimen URL-osoitteesta, jonka olet vetänyt Weather Underground -haun tuloksista.

    Kun olet lisännyt API-URL-osoitteen API-avaimesi ja tilasi / kaupunkisi kanssa, voit muokata seuraavaa Python-komentosarjaa luomalla Pi-tekstiin uuden tekstiasiakirjan Leafpadin avulla ja liittämällä siihen seuraavan koodin:

    julkaisijalta urllib2 import urlopen
    tuoda 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 ['ecast '] [' txt_forecast '] [' ennuste '] [0] [' pop '])

    # Seuraavassa on virheenkorjausarvo.
    # Muokkaa hajautus ja muutos
    # kokonaisluku 0-100 testata
    # LED-vaste.

    # pop = 0

    tulosta 'Nykyinen sateen mahdollisuus on .'. muodossa (pop)

    # Oletusasetus on LEDin kytkeminen päälle
    # mahdollinen sade yli 20%. Voit säätää
    # arvo "jos pop> 20:" haluat.

    jos pop> 20:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write (002 ')
    del LedBorg
    tulosta ('Rain!')
    else:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write (000 ')
    del LedBorg
    tulosta ('Ei sadetta!')

    Tallenna tiedosto nimellä wunderground.py / home / pi / hakemistoon. Avaa pääte ja kirjoita seuraava komento:

    python wunderground.py

    Jos olet syöttänyt API-avaimesi ja tilasi / kaupunkikoodisi oikein, sen pitäisi palauttaa vastaus, joka näyttää:

    Jos alueelle ennustetaan sademäärää, LedBorg-tuotoksen pitäisi näyttää siltä:

    Nyt odottaa sateista päivää testata skripti olisi ikävä. Jos alueella ei ole sademäärää ja haluat nähdä LED-valon syttyvän, muokkaa wunderground.py-komentosarjaa ja korvaa "pop = pop" -sisältöarvo rivillä 13 arvolla, joka on suurempi kuin 20, kuten 60 että ennustamme takaisin. Muista vain vaihtaa rivi takaisin "pop = pop" kun olet valmis.

    Viimeinen vaihe on määrittää cron-työ, joka käynnistää automaattisesti juuri tallennetun komentosarjan säännöllisesti, jotta LED-merkkivalo säilyy. Koska tämä tehtävä on välttämätöntä sekä tämän komentosarjan että seuraavien sähköpostin ilmaisimien osalta, aiomme kattaa cron-työn asettamisen sen jälkeen, kun olemme osoittaneet, miten voit määrittää toisen komentosarjan.

    LedBorgin määrittäminen Gmail-indikaattoriksi

    Kuka ei pidä dopamiinikorjausta, joka tulee uuden sähköpostin näkymiseen postilaatikkoonsa? Tässä opetusohjelman osassa aiomme näyttää, miten LedBorgia käytetään uudena Gmail-indikaattorina. Aivan kuten viime kerralla, yhdistämme ulkoisen tulon (tässä tapauksessa Atom-syötteen API: n sijasta) ja yksinkertaisen komentosarjan LED-aseman ajamiseksi.

    Python-asennuksen toimivuutta on laajennettava hieman asentamalla FeedParser, Python RSS / Atom-syötteenlukutyökalu. Avaa pääte ja anna seuraava komento:

    sudo easy_install feedparser

    Kun asennus on valmis, voimme asettaa toimimaan luomalla Gmail-tarkistusskriptiämme. Kun käytät Leafpadia, liitä seuraava teksti editoriin. Muuta käyttäjätunnusta ja salasanaa, jotta se vastaa tarkistettavan Gmail-tilin käyttäjätunnusta ja salasanaa.

    tuoda feedparser

    # Anna Gmail-käyttäjätunnuksesi
    # ja salasana. Älä sisällytä
    # @ gmail.com-osa
    # sinun käyttäjä nimesi.

    username = "käyttäjätunnus"
    password = "password"

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

    # Seuraavassa on virheenkorjausarvo.
    # Muokkaa hajautus ja muutos
    # kokonaisluku 0 tai 1 testattavaksi
    # LED-vaste.

    # mail = 0

    jos posti> 0:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write (020 ')
    del LedBorg
    tulosta ('Mail!')
    else:
    LedBorg = open ('/ dev / ledborg', 'w')
    LedBorg.write (000 ')
    del LedBorg
    tulosta ('Ei sähköpostia!')

    Tallenna skripti nimellä gmailcheck.py. Avaa pääte ja kirjoita seuraava komento:

    python gmailcheck.py

    Jos sinulla on sähköpostiosoitteesi Gmail-postilaatikossa, LED muuttuu vihreäksi ja saat vastauksen kuten:

    Jos Gmail-postilaatikossa on sähköpostiviestejä, LedBorg näyttää näin:

    Aivan kuten sateen tarkistava komentosarja, olemme sisällyttäneet virheenkorjausarvon. Jos sinulla ei ole uusia sähköpostiviestejä, voit joko lähettää itsellesi sähköpostiviestin nostaaksesi postilaatikkosi 1: ksi tai voit muokata kommentin hajauttamista ja muuttaa virheenkorjausrivin “mail = 1” testataksesi komentosarjan. Muista palauttaa rivi, kun olet suorittanut testauksen.

    Jos haluat asettaa Gmail-komentosarjan ajamaan aikataulussa, siirry opetusohjelman seuraavaan osaan.

    Cron-työn määrittäminen komentosarjan suorittamiseksi

    Nyt kun meillä on kaksi komentosarjaa, meidän on määritettävä cron-työ, jotta niitä voidaan käyttää koko päivän ajan, jotta LED-merkkivalo pysyy ajan tasalla.

    Ensimmäinen asia, jonka haluamme tehdä, on sammuttaa LED, jos se on parhaillaan aiemmissa kokeissamme. Terminaalin tyypissä:

    echo “000”> / dev / ledborg

    Kun olet vielä komentorivillä, voit avata cron-editorin. Jos et ole koskaan asettanut cron-työtä aikaisemmin, suosittelemme voimakkaasti tutustumaan oppaamme täällä. Siitä huolimatta me käymme teitä perustamalla perusaikataulun täällä.

    Terminaalin tyypissä:

    sudo crontab -e

    Tämä avaa Raspbian cron -taulukon Nano-tekstieditorissa. Käytä nuolinäppäimiä alaspäin alaspäin. Täällä aiomme asettaa toistuvan cron-työn Python-skripteillemme.

    Jos haluat määrittää sateen 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 ”* / 5 * * * *” syötetty arvo asettaa skriptin suorittamaan 5 minuutin välein, ikuisesti.

    5 minuutin välein on hieno ajanjakso käsikirjoitukselle, joka tarkistaa ennustetun sateen, vaikka voisit jopa väittää, että se on hieman liian aggressiivinen, mutta jos yrität pitää sähköpostisi yläpuolella, se on hieman liian pitkä aika ilmoitusta varten . Jos määrität Gmail-ilmoitusskripin aikataulun, kirjoita seuraava rivi cron-taulukossa:

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

    Tämä merkintä suorittaa gmailcheck.py-komentosarjan joka minuutti, jotta päivitysilmoitus on paljon nopeampi.


    Se on kaikki siinä! Voit kokeilla omia Python-komentosarjojasi nostamalla if / else-lauseita ulos ja kokeilemalla niitä uusilla muuttujilla. Jos löydät tietolähteen tietoihin, voit muuttaa sen muuttujaksi Python-skripti-osakemarkkinoiden keskiarvoissa, siitepölyt, Twitter mainitsee, jos siihen on API, voit muuttaa sen ympäristön LED-merkkivaloksi.

    Lopuksi haluan kiittää kaikkia suuria resursseja, joita käytin tähän hankkeeseen. Se on ollut hieman yli vuosikymmenen jälkeen, kun olin aktiivisesti kirjoittanut ohjelmia, ja se vei muutaman iskun pölyn ja ruosteen saamiseksi. / R / LearnPythonin avustajat auttoivat minua myrskyttämään Weather Undergroundin API-lähdössä, tutkimalla, miten Michael on Mitch Techissä käsitellyt Gmail Atom-syötettä, joka on jäsennetty LedBorgille, ja Python-oppimismoduulien tutkiminen Code Academy -opistossa oli loistava tapa poimia kieltä, jota en koskaan käyttänyt aiemmin.