Construiți un indicator LED cu un Raspberry Pi (pentru e-mail, vreme sau orice altceva)

Oct 30, 2025
Hardware
CONȚINUTUL NECACHAT

Raspberry Pi face o platformă compactă drăguță pentru a atașa o lampă indicator pentru toate tipurile de proiecte - notificări meteorologice, e-mailuri noi, etc. .

De ce vreau să fac asta?

Pentru că este distractiv. Spre deosebire de multe dintre tutorialele noastre, în care includem un mic blurb în partea de sus, subliniind exact ce beneficii veți obține din proiect, blurbul este destul de scurt în acest caz, deoarece beneficiul este pur și simplu să vă distrați.

Raspberry Pi este un dispozitiv perfect cu care să te joci, să experimentezi electronice și să înveți câteva programe. Nimeni are nevoie un indicator de ploaie ambientală în bucătăria lor, de exemplu, dar construirea unuia este un exercițiu distractiv și un memento minunat pentru a vă aduce umbrela cu dvs. în zilele cu potențial de furtună.

De ce am nevoie?

Pentru a urma împreună cu tutorialul, veți avea nevoie de câteva lucruri. În primul rând, presupunem că ați urmat deja tutorialul nostru anterior: Ghidul HTG pentru Noțiuni introductive despre Raspberry Pi (și, așadar, acoperiți elementele de bază pentru instalarea Raspbian pe Raspberry Pi).

Dacă doriți să faceți acest proiect la un buget, vă putem spune cu încredere că cel mai nou model Raspberry Pi este o exagerare semnificativă pentru serviciu și vă încurajăm să aruncați praful de pe un Raspberry Pi vechi pe care l-ați împins. în dulap sau ridicați unul folosit ieftin de pe eBay sau altele asemenea. Din punct de vedere bugetar, lungul dinte pe care un Raspberry Pi 1 Model A sau Model B a luat-o de pe eBay pentru 10-15 USD este o potrivire perfectă pentru acest proiect decât achiziționarea unei noi generații Pi de 35 USD.

Pe lângă faptul că aveți instalată o unitate Pi funcțională cu Raspbian, veți avea nevoie de următoarele lucruri:

Notă: Carcasa Pi transparentă / mată este complet opțională, dar dacă utilizați în prezent o carcasă opacă, atunci indicatorul LED va fi ascuns în interior. Va trebui fie să tăiați o gaură în carcasa dvs. pentru a lăsa lumina să se stingă, fie să folosiți un cablu prelungitor GPIO cu un kit de rupere acesta de la Adafruit Industries —Pentru a lega LedBorg de Raspberry Pi. În timp ce utilizați cablul de rupere, adăugați aproximativ 8 USD la cheltuiala proiectului, acesta oferă un potențial mai mare de personalizare a produsului final prin faptul că puteți plasa mai ușor LED-ul în interiorul lucrurilor sau sub ceva ce doriți să luminați.

Instalarea LedBorg

În timp ce ați putea să vă construiți cu siguranță un indicator LED complet de la zero (și o anchetă a motorului de căutare va prezenta o mulțime de oameni care au făcut acest lucru), organizația Piborg produce un modul LED atât de compact și ieftin, LedBorg, încât nu am putut ' Nu rezistați să-l utilizați ca bază pentru proiectul nostru de indicatori LED Raspberry Pi.

Instalarea modulului este rapidă, deoarece este concepută pentru a se potrivi direct peste pinii GPIO de pe Pi. Mai întâi, opriți Pi-ul și deschideți carcasa.

Cea mai importantă parte a procesului de instalare este că orientați modulul astfel încât pictograma LedBorg să fie cea mai apropiată de modulul RCA de pe placa Raspberry Pi (și, astfel, marginea LedBorg să fie la același nivel cu marginile plăcii Pi, cu surplombarea porțiunea LedBorg atârnată peste placa Pi și nu de pe margine). Vedeți fotografia de mai sus.

În timp ce aveți placa Pi deschisă, acum ar fi un moment excelent pentru a acoperi indicatoarele LED de la bord (lângă porturile USB), mai ales dacă utilizați o carcasă clară. Nu doriți să fie confuz când citiți indicatorul LedBorg, deoarece luminile de alimentare și de rețea sunt atât de strălucitoare.

I-am acoperit pe ai noștri cu un strat de bandă electrică albă. Acest lucru le-a estompat suficient, încât să le putem face referiri, dar erau mult mai slabe decât LedBorg, încât nu mai distrăgeau atenția.

După ce ați instalat LedBorg și ați acoperit, opțional, indicatoarele LED ale lui Pi cu bandă electrică, este timpul să închideți carcasa. Porniți Pi-ul înainte de a trece la următoarea fază a tutorialului.

Instalarea software-ului LedBorg

PiBorg oferă un pachet software excelent pentru LedBorg, care include atât un controler GUI, cât și driverele pentru a accesa LedBorg din linia de comandă.

Înainte de a începe, trebuie să vă asigurați că luați pachetul potrivit pentru versiunea dvs. de Rasbian și numărul de revizuire al plăcii dvs. Raspberry Pi.

Dacă placa dvs. Raspberry Pi nu are găuri de montare, este Revizia 1. Dacă Raspberry Pi are găuri de montare (situate de porturile USB și între portul de alimentare și HDMI), atunci este Revizia 2. De asemenea, trebuie să cunoașteți versiunea kernel-ului a instalației dvs. Rasbian. Deschideți terminalul și introduceți următoarea comandă pentru a verifica:

uname -r

Odată ce aveți numărul revizuirii și numărul nucleului, puteți vizitați secțiunea Pachete aici pentru a apuca linkul pentru pachetul dvs. În cazul nostru, folosim o placă de revizuire 1 cu nucleul 3.6.11, așa că am lua fișierul raspbian-2013-02-09-rev1.zip.

Pentru a instala toate bunătățile, trebuie să deschidem terminalul pe Pi. și apoi introduceți următoarele comenzi pentru a instala pachetul LedBorg.

Notă: Trebuie să înlocuiți adresa URL din a treia comandă cu adresa URL a pachetului pentru combinația dvs. de bord / nucleu.

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

În acest moment aveți acum înfășurarea GUI pentru driverele LedBorg și driverele în sine instalate. Pe desktopul dvs. Raspbian veți vedea o pictogramă pentru înfășurarea GUI:

Continuați și faceți clic pe pictograma LedBorg pentru a lansa înfășurarea GUI. Veți fi tratați cu interfața de selectare a culorilor astfel:

Acum este momentul perfect pentru a vă asigura că modulul dvs. este funcțional. Alegeți orice culoare, salvați pentru negru, pentru a încerca. Vom testa acest lucru alegând câteva culori:

Arata bine! Este luminos, iar plasticul mat al carcasei pe care l-am comandat pentru proiect oferă o difuzie moderată. Dacă doriți să jucați mai mult cu modulul LED înainte de a trece mai departe, faceți clic pe Mod Demo:

În modul demo puteți parcurge toate culorile la diferite viteze, puteți verifica ieșirea ridicată / scăzută și, în caz contrar, introduceți modulul LED prin ritmuri.

Aici, în secțiunea Mod Demo, puteți transforma LedBorg în primul dintre mulți indicatori. Prin selectarea procesorului în secțiunea Culori, LED-ul va începe să se schimbe de la verde la galben la roșu pentru a indica încărcarea procesorului ARM al Raspberry Pi. Vă sugerăm să schimbați viteza la Slow în timp ce vă aflați - Actualizează rapid LED-ul prea repede și face ca indicatorul CPU să distragă atenția în loc să fie util.

Pe lângă utilizarea interfeței GUI pentru a selecta culorile, puteți alege culori de la terminal folosind valori RGB. Deschideți terminalul și introduceți următoarea comandă pentru a opri LED-ul:

echo "000"> / dev / ledborg

Modul în care LedBorg gestionează valorile RGB este acela că 0 înseamnă că canalul este oprit, 1 înseamnă că canalul este pe jumătate și 2 înseamnă că canalul este cu putere maximă. De exemplu, 001 ar seta canalul roșu la 0%, canalul verde la 0% și canalul albastru la puterea de 50%.

Schimbați valoarea în 002, iar ieșirea LED rămâne albastră, dar devine mai luminoasă, deoarece canalul albastru este acum la ieșire 100%. Schimbați valoarea la 202 și roșu și albastru la putere maximă se combină pentru a crea o culoare magenta.

Acum, că știm cum să manipulăm LED-ul manual, să ne uităm la utilizarea scripturilor pentru a transforma LED-ul nostru dintr-o lumină simplă într-un indicator real.

Configurarea LedBorg ca indicator de ploaie

Pentru această porțiune a tutorialului vom combina mai multe lucruri împreună pentru a transforma modulul nostru LedBorg LED într-un indicator de ploaie bazat pe prognoza meteo pentru locația noastră. Vom folosi un script Python pentru a apela un API meteo care, la rândul său, va citi șansa de ploaie pentru ziua respectivă, apoi vom comuta LED-ul de la stins la albastru strălucitor pentru a indica ploaia prognozată.

Mai întâi, trebuie să obținem o cheie de acces API pentru Weather Underground. Pentru utilizarea personală și proiectele de dezvoltare mică API-ul este gratuit. Accesați pagina de înscriere API Weather și înscrieți-vă pentru o cheie API.

După ce aveți cheia API, vizitați Weather Underground și căutați orașul pe care doriți să îl monitorizați. În cazul nostru, vom monitoriza San Fransisco, CA. Adresa URL a paginii de prognoză a San Fransisco este:

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

Partea importantă pentru scopurile noastre este ultima parte a adresei URL: /CA/San_Francisco.html. O vom folosi pentru a edita adresa URL de prognoză pentru instrumentul API. Adresa URL de bază este:

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

Puteți genera prognoza pentru orice oraș din SUA introducând cheia API, codul de stare din două litere și numele orașului din adresa URL pe care ați extras-o din rezultatele căutării Weather Underground.

După ce ați introdus URL-ul API cu cheia API și statul / orașul inserat, puteți edita următorul script Python creând un nou document text pe Pi utilizând Leafpad și lipiți următorul cod în acesta:

din urllib2 import urlopen
import json

req = urlopen ('http://api.wunderground.com/api/YOUR API KEY / forecast / q / STATE / CITY.json ')
parsed_json = json.load (cerere)
pop = int (parsed_json['forecast']['txt_forecast']['forecastday'][0]['pop'])

# Următoarea este o valoare de depanare.
# Editați hash-ul și schimbați-l
# numărul întreg la 0-100 pentru a testa
# răspunsul LED.

# pop = 0

print 'Șansa actuală de precipitații este {}.'. format (pop)

# Setarea implicită este să porniți LED-ul
# pentru orice șansă de ploaie peste 20%. Vă puteți ajusta
# valoarea în "dacă pop> 20:" după cum doriți.

dacă pop> 20:
LedBorg = deschis ('/ dev / ledborg', 'w')
LedBorg.write ('002')
de LedBorg
print („Ploaie!”)
altceva:
LedBorg = deschis ('/ dev / ledborg', 'w')
LedBorg.write ('000')
de LedBorg
print („Fără ploaie!”)

Salvați fișierul ca wunderground.py în directorul / home / pi /. Deschideți terminalul și tastați următoarea comandă:

python wunderground.py

Dacă ați introdus corect cheia API și codurile de stat / oraș, ar trebui să respingă un răspuns care să arate ca:

Dacă se estimează precipitații pentru zona dvs., ieșirea LedBorg ar trebui să arate astfel:

Așteptarea unei zile ploioase pentru a testa corect scenariul ar fi plictisitoare. Dacă nu există nicio șansă de ploaie în zona dvs. astăzi și doriți să vedeți LED-ul aprins, editați scriptul wunderground.py și înlocuiți valoarea passthrough „pop = pop” în linia 13 cu o valoare mai mare de 20, cum ar fi 60 că prognoza noastră a revenit. Nu uitați să schimbați linia înapoi la „pop = pop” când ați terminat.

Ultimul pas este de a configura un job cron pentru a rula automat scriptul pe care tocmai l-am salvat într-un interval regulat pentru a menține indicatorul LED curent. Deoarece această sarcină este necesară atât pentru acest script, cât și pentru indicatorul de e-mail care urmează, vom acoperi configurarea unui job cron după ce v-am arătat cum să configurați celălalt script.

Configurarea LedBorg ca indicator Gmail

Cui nu-i place remedierea dopaminei care vine odată cu vizionarea e-mailurilor noi în căsuța de e-mail? În această porțiune a tutorialului vă vom arăta cum să utilizați LedBorg ca un nou indicator Gmail. La fel ca data trecută, vom combina o intrare externă (în acest caz un flux Atom în loc de un API) și un script simplu pentru a ne conduce LED-ul.

Trebuie să extindem puțin funcționalitatea instalării noastre Python prin instalare FeedParser , un instrument de citire a fluxului Python RSS / Atom. Deschideți terminalul și introduceți următoarea comandă:

sudo easy_install feedparser

Odată ce instalarea este finalizată, putem seta să funcționeze la crearea scriptului nostru de verificare Gmail. Din nou, folosind Leafpad, lipiți următorul text în editor. Schimbați numele de utilizator și parola pentru a se potrivi cu numele de utilizator și parola contului Gmail pe care doriți să îl verificați.

import feedparser

# Introduceți numele de utilizator Gmail
# și parola. Nu include
# porțiunea @ gmail.com din
# nume de utilizator.

nume utilizator = "nume utilizator"
parola = "parola"

mail = int (feedparser.parse ("https: //" + nume de utilizator + ":" + parolă + "@ mail.google.com/gmail/feed/atom")["feed"]["fullcount"])

# Următoarea este o valoare de depanare.
# Editați hash-ul și schimbați-l
# numărul întreg la 0 sau 1 pentru a testa
# răspunsul LED.

# mail = 0

dacă e-mail> 0:
LedBorg = deschis ('/ dev / ledborg', 'w')
LedBorg.write ('020')
de LedBorg
print („Mail!”)
altceva:
LedBorg = deschis ('/ dev / ledborg', 'w')
LedBorg.write ('000')
de LedBorg
print („Fără e-mail!”)

Salvați scriptul ca gmailcheck.py. Deschideți terminalul și tastați următoarea comandă:

python gmailcheck.py

Dacă aveți un e-mail așezat în căsuța de e-mail Gmail, LED-ul va deveni verde și veți primi un răspuns ca acesta:

Dacă aveți e-mailuri în căsuța de e-mail Gmail, LedBorg va arăta astfel:

La fel ca scriptul de verificare a ploii, am inclus o valoare de depanare. Dacă nu aveți niciun e-mail nou, puteți să vă trimiteți un e-mail pentru a crește numărul de mesaje primite la 1 sau puteți modifica hashul pentru comentarii și puteți schimba linia de depanare la „mail = 1” pentru a testa scriptul. Nu uitați să reveniți la linie când ați terminat testarea.

Accesați următoarea secțiune a tutorialului pentru a seta scriptul Gmail să ruleze conform unui program.

Configurarea unui job Cron pentru a vă rula scriptul

Acum, că avem două scripturi cu care să ne jucăm, trebuie să configurăm un job cron pentru a le rula pe tot parcursul zilei pentru a menține indicatorul LED actual.

Primul lucru pe care vrem să-l facem este să oprim LED-ul dacă este pornit în prezent din experimentele noastre anterioare. La tipul terminalului:

ecou „000”> / dev / ledborg

În timp ce sunteți încă la linia de comandă, puteți deschide editorul cron. Dacă nu ați creat niciodată un job cron, vă recomandăm cu tărie consultați ghidul nostru de utilizare aici . Acestea fiind spuse, vă vom ajuta să configurați un program de bază chiar aici.

La tipul terminalului:

sudo crontab –e

Aceasta va deschide tabelul cron Raspbian în editorul de text Nano. Folosiți tastele săgeată pentru a derula până în jos. Aici vom configura jobul cron recurent pentru scripturile noastre Python.

Dacă doriți să configurați scriptul de ploaie, introduceți următoarea linie în tabelul cron:

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

Apăsați CTRL + X pentru a ieși; selectați da pentru a salva și a suprascrie tabela cron existentă. Valoarea pe care am introdus-o în tabelul cron „* / 5 * * * *” setează scriptul să ruleze la fiecare 5 minute, pentru totdeauna.

La fiecare 5 minute este un interval de timp minunat pentru un script care verifică ploaia prognozată - ați putea chiar susține că este un pic prea agresiv - dar dacă încercați să vă mențineți e-mailul, este un interval cam prea lung pentru notificare . Dacă configurați programul pentru scriptul de notificare Gmail, introduceți următoarea linie în tabelul cron:

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

Această intrare rulează scriptul gmailcheck.py în fiecare minut pentru o notificare de actualizare mult mai rapidă.


Cam despre asta e! Puteți experimenta cu propriile scripturi Python ridicând afirmațiile if / else din ale noastre și încercându-le cu variabile noi. Dacă puteți găsi o sursă de intrare pentru date, o puteți transforma într-o variabilă în scriptul Python - medii bursiere, număr de polen, menționează Twitter, dacă există un API pentru acesta, îl puteți transforma într-un indicator LED ambiental.

În cele din urmă, vreau să mulțumesc tuturor resurselor grozave pe care le-am folosit pentru a lucra la acest proiect. A trecut puțin peste un deceniu de când scriu activ programe și a fost nevoie de câteva lovituri pentru a scoate praful și rugina. Colaboratorii de la / r / LearnPython m-a ajutat să descurc în ieșirea API pentru Weather Underground, studiind cum Michael a trecut la Mitch Tech s-a ocupat de fluxul Gmail Atom a facilitat analiza pentru LedBorg și studierea modulelor de învățare Python la Code Academy a fost o modalitate excelentă de a prelua sintaxa și structura de bază a unui limbaj pe care nu l-am mai folosit până acum.

.intrare-conținut .pentru-intrare

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


Hardware - Cele mai populare articole

De cât spațiu aveți nevoie pentru un proiector de home theater?

Hardware Jan 13, 2025

Vizionarea de filme și jocurile pe un proiector sunt minunate. Odată ce te-ai obișnuit cu ecranul uriaș, este mult mai greu să te uiți chiar și pe cele mai mari televizo..


Cum se remediază problemele legate de mouse-ul și tastatura Corsair pe macOS și Linux

Hardware Nov 16, 2024

CONȚINUTUL NECACHAT Corsair creează șoareci și tastaturi excelente pentru jocuri, cu multe caracteristici extraordinare, cum ar fi iluminarea RGB personalizată, modurile de p..


Software-ul poate face diferența între un computer desktop și un laptop?

Hardware Feb 11, 2025

CONȚINUTUL NECACHAT Multe licențe software sunt destul de restrictive când vine vorba de cum și unde puteți instala un program, dar cât de bune sunt aceste programe pentru a..


Ar trebui să dezactivez fișierul de pagină dacă computerul meu are multă memorie RAM?

Hardware Nov 9, 2024

CONȚINUTUL NECACHAT Dacă aveți un computer cu o cantitate mare de memorie RAM, ați câștiga vreun avantaj din dezactivarea fișierului de pagină sau ar trebui să lăsați s..


Fiecare sistem de operare are nevoie de memorie RAM?

Hardware Sep 4, 2025

CONȚINUTUL NECACHAT Dacă aveți un computer pe care RAM s-a deteriorat, există sisteme de operare care să funcționeze pe computer, cel puțin pentru a vă ajuta să testați ..


HTG trece în revistă Sculpt: o tastatură ergonomică ciudată

Hardware Sep 30, 2025

Oricine înregistrează timp grav la biroul computerului știe că taxa pe care o pot lua tastatura și mouse-ul pe încheieturi, umeri și chiar înapoi. Astăzi aruncăm o privire..


Din caseta de sfaturi: Obiective turistice cu laser pentru telescop, desktopuri Dropbox și conversii de tăiere Kindle

Hardware Sep 13, 2025

CONȚINUTUL NECACHAT O dată pe săptămână găsim câteva sfaturi excelente pentru cititori și le împărtășim tuturor; săptămâna aceasta ne uităm la obiectivele laser a..


Întrebați How-To Geek: Salvarea unui computer infectat, instalarea iTunes fără umflături și îmblânzirea unui trackpad nebun

Hardware Dec 20, 2024

CONȚINUTUL NECACHAT Aveți întrebări și noi avem răspunsuri. Astăzi vă prezentăm cum să vă salvați computerul dacă este atât de depășit de viruși și programe malw..


Categorii