Costruisci un indicatore LED con un Raspberry Pi (per e-mail, meteo o qualsiasi cosa)

Sommario:

Costruisci un indicatore LED con un Raspberry Pi (per e-mail, meteo o qualsiasi cosa)
Costruisci un indicatore LED con un Raspberry Pi (per e-mail, meteo o qualsiasi cosa)

Video: Costruisci un indicatore LED con un Raspberry Pi (per e-mail, meteo o qualsiasi cosa)

Video: Costruisci un indicatore LED con un Raspberry Pi (per e-mail, meteo o qualsiasi cosa)
Video: Come vedere siti bloccati: utilizzando un proxy per chrome e firefox, funziona benissimo - YouTube 2024, Aprile
Anonim
Il Raspberry Pi è una bella piattaforma compatta per collegare una luce di segnalazione a tutti i tipi di progetti: notifiche meteo, nuove e-mail, ecc. Continua a leggere mentre ti mostriamo come collegare un modulo LED al tuo Pi e impostare alcune notifiche di base.
Il Raspberry Pi è una bella piattaforma compatta per collegare una luce di segnalazione a tutti i tipi di progetti: notifiche meteo, nuove e-mail, ecc. Continua a leggere mentre ti mostriamo come collegare un modulo LED al tuo Pi e impostare alcune notifiche di base.

Perché voglio farlo?

Perche è divertente. A differenza di molti dei nostri tutorial in cui includiamo un piccolo blurb in alto che delinea esattamente quali benefici deriveranno dal progetto, il blurb è piuttosto breve in questo caso perché il vantaggio è semplicemente divertirsi.

Il Raspberry Pi è un dispositivo perfetto per giocare, sperimentare con l'elettronica e imparare un po 'di programmazione. Nessuno esigenze un indicatore di pioggia ambientale nella loro cucina, ad esempio, ma costruirne uno è un esercizio divertente e un ottimo promemoria per portare il tuo ombrello con te nei giorni potenzialmente di tempesta.

Di cosa ho bisogno?

Per seguire il tutorial, avrai bisogno di alcune cose. Innanzitutto, supponiamo di aver già seguito il nostro tutorial precedente: la Guida HTG per iniziare con Raspberry Pi (e quindi avere le nozioni di base sull'installazione di Rasbian sul nostro Raspberry Pi).

Se stai cercando di fare questo progetto con un budget, possiamo tranquillamente dirti che il nuovissimo modello Raspberry Pi è un overkill significativo per il lavoro e ti invitiamo a spazzare via la polvere da un vecchio Raspberry Pi che hai spinto nell'armadio o prendere uno usato a basso costo da eBay o simili. Per quanto riguarda il budget, il modello Raspberry Pi 1 Model A o Model B impiccato a eBay per $ 10-15 è perfetto per questo progetto rispetto all'acquisto di un nuovissimo Pi $ 35 di nuova generazione.

Oltre ad avere una unità Pi funzionale con Raspbian installata su di essa avrai bisogno delle seguenti cose:

  • 1 modulo LedBorg (~ $ 5,00 con spedizione $ 4 dal Regno Unito agli Stati Uniti, funziona con tutti i modelli Raspberry Pi).
  • 1 Chiaro case Raspberry Pi compatibile con il tuo modello Pi particolare come questa custodia modello B Raspberry Pi 1.

Nota: La custodia Pi trasparente / satinata è completamente opzionale ma se al momento utilizzi una custodia opaca, il tuo indicatore LED sarà nascosto all'interno. Avrai bisogno di tagliare un buco nel tuo caso per far uscire la luce o utilizzare un cavo di estensione GPIO con un kit di sblocco, come quello di Adafruit Industries, per legare il LedBorg al tuo Raspberry Pi. Mentre utilizza il cavo breakout aggiunge circa $ 8 a spese del progetto, offre più potenziale per la personalizzazione del prodotto finale in quanto è possibile posizionare più facilmente il LED all'interno delle cose o sotto qualcosa che si desidera illuminare.

Installazione di LedBorg

Sebbene tu possa certamente costruirti un indicatore LED completamente nuovo (e un'inchiesta del motore di ricerca mostrerà molte persone che lo hanno fatto) l'organizzazione Piborg produce un modulo LED così compatto e poco costoso, il LedBorg, che non potremmo t resistere all'uso come base per il nostro progetto di indicatori LED Raspberry Pi.
Sebbene tu possa certamente costruirti un indicatore LED completamente nuovo (e un'inchiesta del motore di ricerca mostrerà molte persone che lo hanno fatto) l'organizzazione Piborg produce un modulo LED così compatto e poco costoso, il LedBorg, che non potremmo t resistere all'uso come base per il nostro progetto di indicatori LED Raspberry Pi.

L'installazione del modulo è semplicissima poiché è progettata per adattarsi direttamente ai pin GPIO sul Pi. Per prima cosa, spegni il tuo Pi e apri il caso.

La parte più importante del processo di installazione è che orienta il modulo in modo che l'icona di LedBorg sia più vicina al modulo RCA sulla scheda Raspberry Pi (e quindi il bordo di LedBorg è a filo con i bordi della scheda Pi con la sporgenza porzione del LedBorg che pende dal bordo del Pi e non dal bordo). Vedi la foto qui sopra.

Mentre hai la scheda Pi aperta, ora sarebbe un momento eccellente per coprire gli indicatori LED integrati (accanto alle porte USB), soprattutto se stai usando una custodia trasparente. Non vuoi che sia fonte di confusione leggere il tuo indicatore LedBorg perché le spie di alimentazione e di rete sono così luminose.

Abbiamo coperto il nostro con uno strato di nastro isolante bianco. Ciò li offuscava abbastanza da poterli fare ancora riferimento, ma erano molto più fiochi di LedBorg e non li distraeva più.

Una volta installato LedBorg e, facoltativamente, coperto gli indicatori LED di Pi con del nastro isolante, è il momento di richiudere il case. Avvia il tuo Pi prima di passare alla fase successiva del tutorial.

Installazione del software LedBorg

PiBorg offre un ottimo pacchetto software per LedBorg che include sia un controller GUI che driver per accedere a LedBorg dalla riga di comando.
PiBorg offre un ottimo pacchetto software per LedBorg che include sia un controller GUI che driver per accedere a LedBorg dalla riga di comando.

Prima di iniziare devi assicurarti di aver preso il pacchetto giusto per la tua versione di Rasbian e il numero di revisione della tua scheda Raspberry Pi.

Se la tua scheda Raspberry Pi non ha fori di montaggio, è Revisione 1. Se il tuo Raspberry Pi ha fori di montaggio (situati dalle porte USB e tra la porta di alimentazione e HDMI), allora è Revision 2. Devi anche conoscere la versione del kernel della tua installazione Rasbian. Apri il terminale e inserisci il seguente comando per verificare:

uname -r

Una volta ottenuto il numero di revisione e il numero del kernel, puoi visitare la sezione Pacchetti qui per prendere il link per il tuo pacchetto. Nel nostro caso stiamo usando una scheda Revision 1 con il kernel 3.6.11 in modo da prendere il file raspbian-2013-02-09-rev1.zip.

Per installare tutti i gadget abbiamo bisogno di aprire il terminale sul Pi. e quindi inserire i seguenti comandi per installare il pacchetto LedBorg.

Nota: È necessario sostituire l'URL nel terzo comando con l'URL del pacchetto per la combinazione scheda / kernel.

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

A questo punto hai ora il wrapper GUI per i driver LedBorg e i driver stessi installati. Sul desktop Raspbian vedrai un'icona per il wrapper della GUI:

Vai avanti e fai clic sull'icona di LedBorg per avviare il wrapper della GUI. Sarai trattato nell'interfaccia del selettore di colori in questo modo:
Vai avanti e fai clic sull'icona di LedBorg per avviare il wrapper della GUI. Sarai trattato nell'interfaccia del selettore di colori in questo modo:
Ora è il momento perfetto per assicurarti che il tuo modulo sia funzionante. Scegli qualsiasi colore, tranne il nero, per provarlo. Lo testeremo selezionando alcuni colori:
Ora è il momento perfetto per assicurarti che il tuo modulo sia funzionante. Scegli qualsiasi colore, tranne il nero, per provarlo. Lo testeremo selezionando alcuni colori:
Sembra buono! È luminoso e la plastica smerigliata del case che abbiamo ordinato per il progetto offre una diffusione moderata. Se vuoi giocare con il modulo LED ancora prima di andare avanti, fai clic su Modalità demo:
Sembra buono! È luminoso e la plastica smerigliata del case che abbiamo ordinato per il progetto offre una diffusione moderata. Se vuoi giocare con il modulo LED ancora prima di andare avanti, fai clic su Modalità demo:
In modalità demo è possibile scorrere tutti i colori a varie velocità, controllare l'uscita alta / bassa e, in caso contrario, inserire il modulo LED a passi.
In modalità demo è possibile scorrere tutti i colori a varie velocità, controllare l'uscita alta / bassa e, in caso contrario, inserire il modulo LED a passi.

È qui nella sezione Modalità demo che puoi anche trasformare il tuo LedBorg nel primo di molti indicatori. Selezionando la CPU nella sezione Colori, il LED inizierà a cambiare da verde a giallo a rosso per indicare il carico sul processore ARM di Raspberry Pi. Ti suggeriamo di cambiare la velocità al rallentatore mentre ci sei. Fast aggiorna il LED troppo velocemente e rende l'indicatore della CPU distratto invece che utile.

Oltre a utilizzare l'interfaccia della GUI per selezionare i colori, è possibile selezionare i colori dal terminale utilizzando i valori RGB. Apri il terminale e inserisci il seguente comando per spegnere il LED:

echo '000' > /dev/ledborg

Il modo in cui LedBorg gestisce i valori RGB è che 0 significa che il canale è spento, 1 significa che il canale è a metà potenza e 2 indica che il canale è pieno. Ad esempio, 001 imposterà il canale rosso allo 0%, il canale verde allo 0% e il canale blu al 50% della potenza.

Modificare il valore su 002 e l'uscita LED rimane blu ma diventa più luminosa perché il canale blu è ora al 100% dell'output. Cambia il valore in 202 e il Rosso e il Blu a piena potenza si combinano per creare un colore magenta.

Ora che sappiamo come manipolare il LED manualmente, diamo un'occhiata agli script per trasformare il nostro LED da una luce semplice a un indicatore reale.

Configurazione di LedBorg come indicatore pioggia

Per questa parte del tutorial, combineremo diverse cose per trasformare il nostro modulo LED LedBorg in un indicatore di pioggia basato sulle previsioni del tempo per la nostra posizione. Useremo uno script Python per chiamare un'API meteo che a sua volta leggerà la possibilità di pioggia per il giorno, e quindi passare il LED da spento a blu brillante per indicare la pioggia prevista.
Per questa parte del tutorial, combineremo diverse cose per trasformare il nostro modulo LED LedBorg in un indicatore di pioggia basato sulle previsioni del tempo per la nostra posizione. Useremo uno script Python per chiamare un'API meteo che a sua volta leggerà la possibilità di pioggia per il giorno, e quindi passare il LED da spento a blu brillante per indicare la pioggia prevista.

Per prima cosa, abbiamo bisogno di ottenere una chiave di accesso API per Weather Underground. Per uso personale e piccoli progetti di sviluppo l'API è gratuita. Visita la pagina di registrazione API meteo qui e registrati per una chiave API.

Una volta che hai la chiave API, visita la Weather Underground e cerca la città che vuoi monitorare. Nel nostro caso controlleremo San Francisco, in California. L'URL della pagina di previsione di San Francisco è:

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

La parte importante per i nostri scopi è l'ultima parte dell'URL: /CA/San_Francisco.html. Lo useremo per modificare l'URL di previsione per lo strumento API. L'URL di base è:

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

Puoi generare la previsione per qualsiasi città degli Stati Uniti inserendo la chiave API, il codice a due lettere e il nome della città dall'URL che hai estratto dai risultati di ricerca Weather Weather.

Una volta ottenuto l'URL dell'API con la chiave API e lo stato / città inseriti, è possibile modificare il seguente script Python creando un nuovo documento di testo sul Pi usando Leafpad e incollandovi il seguente codice:

from urllib2 import urlopen import json

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

# Quanto segue è un valore di debug. # Modifica l'hash e cambia # il numero intero a 0-100 da testare # la risposta del LED.

# pop = 0

print 'Current chance of precipitation is {}.'.format(pop)

# The default setting is to turn on the LED # for any chance of rain above 20%. You can adjust # the value in 'if pop > 20:' as you wish.

if pop > 20: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('002') del LedBorg print ('Rain!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No rain!')

Salva il file come wunderground.py nella directory / home / pi /. Apri il terminale e digita il seguente comando:

python wunderground.py

Se hai inserito correttamente la tua chiave API e i tuoi codici stato / città, dovresti dare una risposta che assomiglia a:

Se la precipitazione è prevista per la tua area, l'output di LedBorg dovrebbe essere simile a questo:
Se la precipitazione è prevista per la tua area, l'output di LedBorg dovrebbe essere simile a questo:
Ora in attesa di una giornata di pioggia per testare correttamente la sceneggiatura sarebbe noioso. Se non ci sono possibilità di pioggia nella tua zona oggi e vuoi vedere il LED acceso, modifica lo script wunderground.py e sostituisci il valore passthrough "pop = pop" nella riga 13 con un valore maggiore di 20 come il 60 che la nostra previsione è tornata. Ricordati di cambiare la linea in "pop = pop" quando hai finito.
Ora in attesa di una giornata di pioggia per testare correttamente la sceneggiatura sarebbe noioso. Se non ci sono possibilità di pioggia nella tua zona oggi e vuoi vedere il LED acceso, modifica lo script wunderground.py e sostituisci il valore passthrough "pop = pop" nella riga 13 con un valore maggiore di 20 come il 60 che la nostra previsione è tornata. Ricordati di cambiare la linea in "pop = pop" quando hai finito.

Il passo finale è quello di impostare un cron job per eseguire automaticamente lo script che abbiamo appena salvato su un intervallo regolare al fine di mantenere l'indicatore LED corrente. Poiché questa operazione è necessaria sia per questo script che per l'indicatore di posta elettronica che segue, verrà descritta la configurazione di un processo cron dopo che ti abbiamo mostrato come impostare l'altro script.

Configurazione di LedBorg come indicatore Gmail

A chi non piace la correzione della dopamina che viene fornita con la visualizzazione di nuove e-mail nella posta in arrivo? In questa parte del tutorial mostreremo come utilizzare LedBorg come un nuovo indicatore Gmail. Proprio come l'ultima volta, combineremo un input esterno (in questo caso un feed Atom anziché un'API) e un semplice script per pilotare il nostro LED.
A chi non piace la correzione della dopamina che viene fornita con la visualizzazione di nuove e-mail nella posta in arrivo? In questa parte del tutorial mostreremo come utilizzare LedBorg come un nuovo indicatore Gmail. Proprio come l'ultima volta, combineremo un input esterno (in questo caso un feed Atom anziché un'API) e un semplice script per pilotare il nostro LED.

Abbiamo bisogno di espandere un po 'la funzionalità della nostra installazione Python installando FeedParser, uno strumento di lettura dei feed RSS / Atom Python. Apri il terminale e inserisci il seguente comando:

sudo easy_install feedparser

Una volta completata l'installazione, possiamo iniziare a creare il nostro script di controllo di Gmail. Di nuovo, usando Leafpad, incolla il seguente testo nell'editor. Cambia nome utente e password per abbinare nome utente e password dell'account Gmail che desideri controllare.

import feedparser

# Enter your Gmail username # and password. Don't include # the @gmail.com portion of # your username.

username = 'username' password = 'password'

mail = int(feedparser.parse('https://' + username + ':' + password +'@mail.google.com/gmail/feed/atom')['feed']['fullcount'])

# Quanto segue è un valore di debug. # Modifica l'hash e cambia # il numero intero a 0 o 1 per testare # la risposta del LED.

# mail = 0

if mail > 0: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('020') del LedBorg print ('Mail!') else: LedBorg = open('/dev/ledborg', 'w') LedBorg.write('000') del LedBorg print ('No mail!')

Salva lo script come gmailcheck.py. Apri il terminale e digita il seguente comando:

python gmailcheck.py

Se nella posta in arrivo di Gmail è presente un'e-mail, il LED diventerà verde e otterrai una risposta del tipo:

Se hai posta nella tua casella di posta Gmail, il tuo LedBorg sarà così:
Se hai posta nella tua casella di posta Gmail, il tuo LedBorg sarà così:
Proprio come lo script di controllo pioggia, abbiamo incluso un valore di debug. Se non si dispone di una nuova e-mail, è possibile inviare una e-mail per aumentare il conteggio della posta in arrivo a 1 oppure modificare l'hash del commento e modificare la riga di debug su "mail = 1" per testare lo script. Ricordati di annullare la linea quando hai finito i test.
Proprio come lo script di controllo pioggia, abbiamo incluso un valore di debug. Se non si dispone di una nuova e-mail, è possibile inviare una e-mail per aumentare il conteggio della posta in arrivo a 1 oppure modificare l'hash del commento e modificare la riga di debug su "mail = 1" per testare lo script. Ricordati di annullare la linea quando hai finito i test.

Accedi alla prossima sezione del tutorial per impostare lo script di Gmail in modo che venga eseguito su una pianificazione.

Impostazione di un processo cron per eseguire lo script

Ora che abbiamo due script con cui giocare, abbiamo bisogno di impostare un cron job per eseguirli durante il giorno per mantenere l'indicatore LED corrente.
Ora che abbiamo due script con cui giocare, abbiamo bisogno di impostare un cron job per eseguirli durante il giorno per mantenere l'indicatore LED corrente.

La prima cosa che vogliamo fare è spegnere il LED se è attivo dai nostri precedenti esperimenti. Al tipo di terminale:

echo “000” > /dev/ledborg

Mentre sei ancora alla riga di comando, puoi aprire l'editor cron. Se non hai mai impostato prima un cron job, ti consigliamo vivamente di consultare la nostra guida per utilizzarlo qui. Detto questo, ti guideremo attraverso l'impostazione di un programma di base qui.

Al tipo di terminale:

sudo crontab –e

Questo aprirà la tabella cron di Raspbian nell'editor di testo Nano. Usa i tasti freccia per scorrere fino in fondo. Qui è dove installeremo il cron job ricorrente per i nostri script Python.

Se si desidera impostare lo script di pioggia, immettere la seguente riga nella tabella cron:

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

Premi CTRL + X per uscire; seleziona Sì per salvare e sovrascrivere la tabella cron esistente. Il valore inserito nella tabella cron "* / 5 * * * *" imposta lo script per l'esecuzione ogni 5 minuti, per sempre.

Ogni 5 minuti è un bel lasso di tempo per una sceneggiatura che controlla la pioggia prevista - potresti anche obiettare che è un po 'troppo aggressivo - ma se stai cercando di mantenere la tua email è un po' troppo lungo per la notifica. Se stai impostando la pianificazione per lo script di notifica di Gmail, inserisci la seguente riga nella tabella cron:

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

Questa voce esegue lo script gmailcheck.py ogni minuto per una notifica di aggiornamento molto più veloce.

Questo è tutto ciò che c'è da fare! Puoi sperimentare con i tuoi script Python sollevando le dichiarazioni if / else dai nostri e provandole con nuove variabili. Se riesci a trovare una fonte di input per i dati, puoi trasformarla in una variabile nel tuo script di Python - medie del mercato azionario, conteggi di pollini, menzioni di Twitter, se c'è un'API per esso puoi trasformarlo in un indicatore LED ambientale.

Infine, voglio ringraziare tutte le grandi risorse con cui ho lavorato a questo progetto. È passato poco più di un decennio da quando stavo attivamente scrivendo programmi e ci sono voluti alcuni colpi per togliere polvere e ruggine. I contributori di / r / LearnPython mi hanno aiutato a canticchiare nell'output dell'API di Weather Underground, studiando come Michael a Mitch Tech si è occupato del feed Atom di Gmail, analizzandolo per LedBorg, e studiando i moduli di apprendimento Python presso la Code Academy era un ottimo modo per raccogliere la sintassi e la struttura di base di un linguaggio che non avevo mai usato prima.

Consigliato: