Bygg en LED-indikator med en Raspberry Pi (for e-post, vær eller annet)

Oct 30, 2025
Maskinvare
UCACHED INNHOLD

Raspberry Pi er en fin kompakt plattform for å feste en indikatorlampe til for alle slags prosjekter - værvarsling, nye e-poster osv. Les videre når vi viser deg hvordan du kobler en LED-modul til Pi-en din og setter opp noen grunnleggende varsler .

Hvorfor vil jeg gjøre dette?

Fordi det er morsomt. I motsetning til mange av våre opplæringsprogrammer der vi inkluderer en liten uskarphet øverst som viser nøyaktig hvilken fordel du vil få av prosjektet, er uskarpheten ganske kort i dette tilfellet fordi fordelen bare er å ha det gøy.

Raspberry Pi er en perfekt enhet å leke med, eksperimentere med elektronikk og lære litt programmering. Ingen behov en omgivende regnindikator på kjøkkenet deres, for eksempel, men å bygge en er en morsom øvelse og en flott påminnelse om å ta med paraplyen din på potensielt stormdager.

Hva trenger jeg?

For å følge opp veiledningen trenger du noen ting. Først antar vi at du allerede har fulgt vår forrige opplæring: HTG-guiden for å komme i gang med Raspberry Pi (og dermed ha det grunnleggende dekket for å installere Raspbian på vår Raspberry Pi).

Hvis du ønsker å gjøre dette prosjektet på et budsjett, kan vi trygt fortelle deg at den nyeste modellen Raspberry Pi er betydelig overkill for jobben, og vi vil oppfordre deg til å blåse støvet av en gammel Raspberry Pi du har skubbet i skapet eller hent en billig brukt på eBay eller lignende. Budsjettmessig er den lang-i-tannen en Raspberry Pi 1 Model A eller Model B hakket av eBay for $ 10-15 en perfekt passform for dette prosjektet over å kjøpe en helt ny $ 35 dagens generasjons Pi.

I tillegg til å ha en funksjonell Pi-enhet med Raspbian installert på, trenger du følgende ting:

Merk: Den klare / frostede Pi-saken er helt valgfri, men hvis du for øyeblikket bruker en ugjennomsiktig sak, vil LED-indikatoren din være skjult inne. Du må enten klippe et hull i saken for å slippe lyset ut, eller bruke en GPIO-skjøteledning med et breakout-sett - som denne fra Adafruit Industries — Å binde LedBorg til din Raspberry Pi. Mens du bruker breakout-kabelen, gir det rundt $ 8 til bekostning av prosjektet, men det gir mer potensial for å tilpasse sluttproduktet ved at du lettere kan plassere LED-en i ting eller under noe du vil belyse.

Installere LedBorg

Mens du absolutt kunne bygge deg en helt fra-bunnen av LED-indikator (og en søkemotorforespørsel vil vise mange mennesker som har gjort det), produserer Piborg-organisasjonen en så kompakt og billig LED-modul, LedBorg, at vi ikke kunne ' ikke motstå å bruke det som grunnlag for vårt Raspberry Pi LED-indikatorprosjekt.

Installasjonen av modulen er et øyeblikk da den er designet for å passe direkte over GPIO-pinnene på Pi. Slå først av Pi og åpne saken.

Den viktigste delen av installasjonsprosessen er at du orienterer modulen slik at LedBorg-ikonet er nærmest RCA-modulen på Raspberry Pi-kortet (og dermed kanten av LedBorg er i flukt med kantene på Pi-kortet med det overhengende del av LedBorg hengende over Pi-brettet og ikke utenfor kanten). Se fotografiet over.

Mens du har Pi-kortet åpent, vil det nå være en utmerket tid å dekke de innebygde LED-indikatorene (ved siden av USB-portene), spesielt hvis du bruker en klar sak. Du vil ikke at det skal være forvirrende å lese LedBorg-indikatoren fordi strøm- og nettverksindikatorlampene er så lyse.

Vi dekket vårt med et lag med hvitt elektrisk tape. Dette dempet dem nok til at vi fremdeles kunne referere til dem, men de var så mye svakere enn LedBorg at det ikke lenger var distraherende.

Når du har installert LedBorg og eventuelt har dekket Pi's LED-indikatorer med elektrisk tape, er det på tide å lukke saken igjen. Start Pi opp før du går videre til neste fase av opplæringen.

Installere LedBorg-programvaren

PiBorg gir en flott programvarepakke for LedBorg som inkluderer både en GUI-kontroller og drivere for å få tilgang til LedBorg fra kommandolinjen.

Før vi begynner, må du sørge for at du tar tak i riktig pakke for din versjon av Rasbian og revisjonsnummeret til Raspberry Pi-kortet.

Hvis Raspberry Pi-kortet ditt ikke har monteringshull, er det Revision 1. Hvis Raspberry Pi-kortet ditt har monteringshull (plassert ved USB-portene og mellom strøm- og HDMI-porten), er det Revision 2. Du må også kjenne til kjerneversjonen av din Rasbian-installasjon. Åpne terminalen og skriv inn følgende kommando for å sjekke:

uname -r

Når du har revisjonsnummeret og kjernetallet, kan du besøk pakken-delen her for å hente lenken til pakken din. I vårt tilfelle bruker vi et revisjon 1-kort med 3.6.11-kjernen, slik at vi tar tak i raspbian-2013-02-09-rev1.zip-filen.

For å installere alle godbitene må vi åpne terminalen på Pi. og skriv deretter inn følgende kommandoer for å installere LedBorg-pakken.

Merk: Du må erstatte URL-en i den tredje kommandoen med URL-en til pakken for bord- / kjernekombinasjonen.

mkdir ~ / ledborg-setup
cd ~ / ledborg-oppsett
wget -O setup.zip http://www.piborg.org/downloads/ledborg/raspbian-2013-02-09-rev1.zip
pakke ut setup.zip
chmod + x install.sh
./install.sh

På dette punktet har du nå GUI-innpakningen for LedBorg-driverne og driverne selv installert. På ditt Raspbian-skrivebord ser du et ikon for GUI-innpakningen:

Gå videre og klikk på LedBorg-ikonet for å starte GUI-innpakningen. Du vil bli behandlet til grensesnittet for fargevelgeren slik:

Nå er det den perfekte tiden for å sørge for at modulen din er funksjonell. Velg hvilken som helst farge, lagre for svart for å prøve den. Vi skal teste det ved å velge noen få farger:

Ser bra ut! Det er lyst og den frostede plasten i saken som vi bestilte for prosjektet, gir moderat diffusjon. Hvis du vil spille med LED-modulen mer før du går videre, klikker du på Demomodus:

I demo-modus kan du bla gjennom alle fargene i forskjellige hastigheter, sjekke ut høy / lav utgang, og ellers sette LED-modulen gjennom trinnene.

Det er her i Demo Mode-delen at du også kan gjøre LedBorg til den første av mange indikatorer. Ved å velge CPU i delen Farger, vil LED-lampen skifte fra grønn til gul til rød for å indikere belastning på Raspberry Pi’s ARM-prosessor. Vi foreslår at du endrer hastigheten til sakte mens du er i gang - oppdaterer raskt LED-lampen for raskt og gjør CPU-indikatoren distraherende i stedet for nyttig.

I tillegg til å bruke GUI-grensesnittet for å velge farger, kan du velge farger fra terminalen ved hjelp av RGB-verdier. Åpne terminalen og skriv inn følgende kommando for å slå av LED-lampen:

ekko "000"> / dev / ledborg

Måten LedBorg håndterer RGB-verdier på er at 0 betyr at kanalen er av, 1 betyr at kanalen er halv effekt, og 2 betyr at kanalen er full effekt. For eksempel vil 001 sette den røde kanalen til 0%, den grønne kanalen til 0% og den blå kanalen til 50% effekt.

Endre verdien til 002, og LED-utgangen forblir blå, men blir lysere fordi den blå kanalen nå har 100% utgang. Endre verdien til 202, og rød og blå ved full effekt kombineres for å lage en magenta farge.

Nå som vi vet hvordan man manipulerer LED-en manuelt, la oss se på å bruke skript for å gjøre LED-lampen vår fra et enkelt lys til en faktisk indikator.

Konfigurere LedBorg som en regnindikator

For denne delen av opplæringen vil vi kamme flere ting sammen for å gjøre LedBorg LED-modulen om til en regnindikator basert på værmeldingen for vårt sted. Vi bruker et Python-skript for å kalle et vær-API som igjen vil lese sjansen for regn for dagen, og deretter slå lysdioden fra av til lyseblå for å indikere det forventede regnværet.

Først må vi få en API-tilgangsnøkkel for Weather Underground. For personlig bruk og små utviklingsprosjekter er API gratis. Gå til Weather API-registreringssiden her og registrer deg for en API-nøkkel.

Når du har API-nøkkelen, kan du gå til Weather Underground og søke etter byen du vil overvåke. I vårt tilfelle skal vi overvåke San Fransisco, CA. URL-en for San Fransiscos prognoseside er:

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

Den viktige delen for våre formål er den siste delen av URL: /CA/San_Francisco.html. Vi kommer til å bruke det til å redigere URL-en for prognosen for API-verktøyet. Basis URL er:

http://api.wunderground.com/api/ DIN API-NØKKEL / prognose / q / STATE / CITY.json

Du kan generere prognosen for hvilken som helst by i USA ved å skrive inn API-nøkkelen, statskoden med to bokstaver og bynavnet fra URL-en du hentet fra Weather Underground-søkeresultatene.

Når du har API-URL-en med API-nøkkelen og staten / byen satt inn, kan du redigere følgende Python-skript ved å opprette et nytt tekstdokument på din Pi ved hjelp av Leafpad og lime inn følgende kode i den:

fra urllib2 import urlopen
importere json

req = urlopen ('http://api.wunderground.com/api/ DIN API-NØKKEL / prognose / q / STATE / CITY.json ')
parsed_json = json.load (req)
pop = int (parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])

# Følgende er en feilsøkingsverdi.
# Rediger hash og endre
# heltallet til en 0-100 for å teste
# LED-responsen.

# pop = 0

skriv ut 'Nåværende sjanse for nedbør er {}.'. format (pop)

# Standardinnstillingen er å slå på LED-lampen
# for enhver sjanse for regn over 20%. Du kan justere
# verdien i "hvis pop> 20:" som du ønsker.

hvis pop> 20:
LedBorg = åpen ('/ dev / ledborg', 'w')
LedBorg.write ('002')
av LedBorg
trykk ('Regn!')
ellers:
LedBorg = åpen ('/ dev / ledborg', 'w')
LedBorg.write ('000')
av LedBorg
utskrift ('Ingen regn!')

Lagre filen som wunderground.py i / home / pi / katalogen. Åpne terminalen og skriv inn følgende kommando:

python wunderground.py

Hvis du har angitt API-nøkkelen og stat / bykoder på riktig måte, bør den slå tilbake et svar som ser ut som:

Hvis det er spådd nedbør for ditt område, bør LedBorg-produksjonen se slik ut:

Å vente på en regnfull dag for å teste skriptet riktig, ville være kjedelig. Hvis det ikke er noen sjanse for regn i ditt område i dag, og du vil se LED-lampen lyser, kan du redigere wunderground.py-skriptet og erstatte "pop = pop" -gjennomstrømningsverdien i linje 13 med en verdi større enn 20, for eksempel 60 at prognosen vår kom tilbake. Bare husk å endre linjen tilbake til "pop = pop" når du er ferdig.

Det siste trinnet er å sette opp en cron-jobb for automatisk å kjøre skriptet vi nettopp lagret med jevne mellomrom for å holde LED-indikatoren oppdatert. Siden denne oppgaven er nødvendig for både dette skriptet og e-postindikatoren som følger, skal vi dekke oppsett av en cron-jobb etter at vi har vist deg hvordan du konfigurerer det andre skriptet.

Konfigurere LedBorg som en Gmail-indikator

Hvem liker ikke dopaminfiksingen som følger med å se ny e-post i innboksen? I denne delen av opplæringen skal vi vise deg hvordan du bruker LedBorg som en ny Gmail-indikator. Akkurat som forrige gang, skal vi kombinere en ekstern inngang (i dette tilfellet en Atom-feed i stedet for en API) og et enkelt skript for å drive LED-en.

Vi må utvide funksjonaliteten til Python-installasjonen vår litt ved å installere FeedParser , et leseverktøy for Python RSS / Atom-feed. Åpne terminalen og skriv inn følgende kommando:

sudo easy_install feedparser

Når installasjonen er fullført, kan vi begynne å lage Gmail-kontrollskriptet vårt. Igjen, ved hjelp av Leafpad, lim inn følgende tekst i redigereren. Endre brukernavn og passord for å matche brukernavnet og passordet til Gmail-kontoen du vil sjekke.

importer feedparser

# Skriv inn Gmail-brukernavnet ditt
# og passord. Ikke inkluder
# delen @ gmail.com av
# ditt brukernavn.

brukernavn = "brukernavn"
passord = "passord"

mail = int (feedparser.parse ("https: //" + brukernavn + ":" + passord + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

# Følgende er en feilsøkingsverdi.
# Rediger hash og endre
# heltallet til 0 eller 1 for å teste
# LED-responsen.

# mail = 0

hvis e-post> 0:
LedBorg = åpen ('/ dev / ledborg', 'w')
LedBorg.write ('020')
av LedBorg
skriv ut ('Mail!')
ellers:
LedBorg = åpen ('/ dev / ledborg', 'w')
LedBorg.write ('000')
av LedBorg
skriv ut ('Ingen post!')

Lagre skriptet som gmailcheck.py. Åpne terminalen og skriv inn følgende kommando:

python gmailcheck.py

Hvis du har e-post i Gmail-innboksen, blir LED-lampen grønn, og du vil få et svar som sådan:

Hvis du har e-post i Gmail-innboksen, vil LedBorg se slik ut:

Akkurat som regnsjekkingsskriptet, har vi tatt med en feilsøkingsverdi. Hvis du ikke har noen ny e-post, kan du enten sende deg en e-post for å øke innboksen til 1, eller du kan redigere kommentarhashen og endre feilsøkingslinjen til "mail = 1" for å teste skriptet. Husk å tilbakestille linjen når du er ferdig med å teste.

Gå inn i neste del av opplæringen for å angi at Gmail-skriptet skal kjøre etter en tidsplan.

Sette opp en Cron-jobb for å kjøre skriptet ditt

Nå som vi har to skript å leke med, må vi sette opp en cron-jobb for å kjøre dem hele dagen for å holde LED-indikatoren oppdatert.

Det første vi vil gjøre er å slå av LED-lampen hvis den for øyeblikket er på fra våre tidligere eksperimenter. Ved terminalen:

ekko “000”> / dev / ledborg

Mens du fremdeles er på kommandolinjen, kan du åpne cron-editoren. Hvis du aldri har satt opp en cron-jobb før, vil vi på det sterkeste foreslå sjekk ut guiden vår for å bruke den her . Når det er sagt, vil vi lede deg gjennom å sette opp en grunnleggende tidsplan her.

Ved terminalen:

sudo crontab –e

Dette åpner Raspbian cron-tabellen i Nano-teksteditoren. Bruk piltastene til å bla ned til bunnen. Det er her vi skal sette opp den gjentatte cron-jobben for våre Python-skript.

Hvis du vil sette opp regnskriptet, skriver du inn følgende linje i crontabellen:

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

Trykk CTRL + X for å avslutte; velg ja for å lagre og overskrive den eksisterende cron-tabellen. Verdien vi skrev inn i crontabellen “* / 5 * * * *” setter skriptet til å kjøre hvert 5. minutt, for alltid.

Hvert 5. minutt er et fint tidsrom for et skript som kontrollerer om det er forventet regn - du kan til og med hevde at det er litt for aggressivt - men hvis du prøver å holde deg oppdatert på e-posten din, er det litt for langt for varsling . Hvis du setter opp tidsplanen for Gmail-varslingsskriptet, skriver du inn følgende linje i crontabellen:

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

Denne oppføringen kjører skriptet gmailcheck.py hvert minutt for et mye raskere varsel om oppdatering.


Det er alt det er! Du kan eksperimentere med dine egne Python-skript ved å løfte if / else-utsagnene ut av våre og prøve dem ut med helt nye variabler. Hvis du finner en inngangskilde for dataene, kan du gjøre den om til en variabel i Python-skriptet - aksjemarkedsgjennomsnitt, antall pollen, nevner Twitter. Hvis det finnes en API for det, kan du gjøre det om til en LED-indikator.

Til slutt vil jeg takke alle de store ressursene jeg brukte til å jobbe med dette prosjektet. Det har gått litt over et tiår siden jeg aktivt skrev programmer, og det tok noen slag for å få støvet og rusten ut. Bidragsyterne kl / r / LearnPython hjalp meg med å skimte rundt i API-utgangen for Weather Underground, og studerte hvordan Michael var på Mitch Tech behandlet Gmail Atom-feeden gjorde det enkelt å analysere det for LedBorg, og studerer Python-læringsmodulene ved Code Academy var en fin måte å plukke opp den grunnleggende syntaksen og strukturen til et språk jeg aldri hadde brukt før.

.post-innhold .inngangs-bunntekst

Raspberry Pi Email Tutorial (Sending & Receiving With SendGrid)

Raspberry Pi Tutorial - Gmail LED Email Notifier

#255 Node-Red, InfluxDB, And Grafana Tutorial On A Raspberry Pi

Raspberry Pi Project: Online Weather Data Log With MySQL And PHP With Sense Hat.

Raspberry Pi: How To Turn On A Light With Your Phone

Raspberry Pi IoT Tutorial Series Part-3

Make A Raspberry Pi Gmail Notification Light

Top 5 Raspberry Pi DIY Projects Of All Time

Raspberry Pi DHT11 DHT22 Temperature And Humidity Sensor

5 Arduino Project Ideas That Could Be Used As Raspberry Pi Project Ideas


Maskinvare - Mest populære artikler

Hva du skal gjøre når harddisken din mislykkes

Maskinvare Feb 6, 2025

Som hver maskinvare kan harddisker mislykkes. Spesielt mekaniske harddisker har bevegelige deler som kan (og til slutt vil) slutte å virke. Til og med solid state-stasjoner..


Hvordan organisere alle kablene under skrivebordet

Maskinvare May 17, 2025

Hvis du så under skrivebordet ditt og til slutt ble lei av rotet av kabler under, kan du organisere det rotet og få kontroll over kablene. I SLEKT: ..


Hvor kan du finne 4K-video for 4K-TV-en din?

Maskinvare Mar 29, 2025

UCACHED INNHOLD Hvis du har brukt de ekstra pengene på en 4K TV, skjerm eller bærbar PC, vil du sannsynligvis ha noe å se på. Dessverre mangler vi fortsatt mange år etter at ..


Hvordan få Google Home til å uttale navnet ditt riktig

Maskinvare Jun 20, 2025

UCACHED INNHOLD Stemmen på Google Assistant har blitt bedre med årene, men den snubler fortsatt noen ganger når det gjelder navn. Hvis Google ofte uttaler navnet ditt feil, kan..


Hvordan skjule NVIDIAs GeForce Experience-overleggsikoner og Alt + Z-varsel

Maskinvare Jul 5, 2025

UCACHED INNHOLD Den siste versjonen av NVIDIAs GeForce Experience programvare bringer et nytt "Share" -overlegg i spillet som erstatter det gamle " Skyggesk..


Trenger jeg et Amazon Echo for å bruke Alexa?

Maskinvare Jun 20, 2025

Amazon har gått inn i overdrive for å markedsføre sin kraftige og populære stemmeassistent Alexa, men folk flest skjønner ikke: Alexa er mer enn bare Amazon Echo. ..


Hvordan skrive ut en tekstmeldingssamtale

Maskinvare Jul 11, 2025

Mens du enkelt kan sikkerhetskopiere tekstmeldingene dine til datamaskinen din, slik at du ikke mister dem, er det noen ganger en tekstmeldingssamtale så viktig at du kanskje også..


Spør How-To Geek: Redde en infisert PC, installere iTunes uten oppblåsthet og tømme en gal styreflate

Maskinvare Dec 20, 2024

UCACHED INNHOLD Du har spørsmål, og vi har svar. I dag fremhever vi hvordan du lagrer datamaskinen din hvis den er så overkjørt av virus og skadelig programvare at du ikke kan..


Kategorier