Sommario:

1984 WeatherMan Pi: 7 passaggi (con immagini)
1984 WeatherMan Pi: 7 passaggi (con immagini)

Video: 1984 WeatherMan Pi: 7 passaggi (con immagini)

Video: 1984 WeatherMan Pi: 7 passaggi (con immagini)
Video: The Giant Wave - The Perfect Storm (3/5) Movie CLIP (2000) HD 2024, Dicembre
Anonim
Image
Image
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi
1984 WeatherMan Pi

Questo lettore di cassette portatile è ora un display meteo IoT ambientale con uno stile dei primi anni '80, che mostra un'animazione delle "condizioni attuali", lo scorrimento del grafico della temperatura e della probabilità di pioggia attraverso la finestra del nastro. Quando le condizioni meteorologiche cambiano, le cuffie servocomandate sulla parte superiore si muovono avanti e indietro come un sottile avviso.

Aprendo lo sportello del nastro funzionale possiamo vedere che i componenti originali polverosi sono stati sostituiti con un Raspberry Pi Zero W, un Pimoroni Unicorn Hat HD (LED Matrix) e un piccolo servo. I dati meteorologici provengono da uno script Python che interroga l'API Dark Sky Weather ultra accurata, su misura per la mia posizione specifica.

È una build IoT semplice ma dall'aspetto gradevole e funzionale che si trova sull'altoparlante della scrivania di fronte al mio bancone YouTube, tenendomi tranquillamente aggiornato con il tempo.

Forniture

Raspberry Pi Zero

Pimoroni Unicorn CAPPELLO HD

Servo piccolo

1984 Hitachi SP-1 stereo personale e cuffie

Adattatore Wi-Fi USB

Asta filettata da 2 mm

Sugru (nero e grigio)

Magnete GeoMag

Passaggio 1: smontaggio del nastro

Smontaggio del nastro
Smontaggio del nastro
Smontaggio del nastro
Smontaggio del nastro
Smontaggio del nastro
Smontaggio del nastro

Mi è stato regalato questo adorabile vecchio lettore di cassette da mia suocera a settembre e mi sono subito innamorato del suo aspetto iconico e dei bottoni grossi. La vera attrazione però è stata quella grande finestra a nastro: dopo averlo posseduto per circa 15 secondi ho tirato fuori un righello e sono rimasto sorpreso di scoprire che è, al mm, la stessa dimensione di un CAPPELLO Raspberry Pi standard (Hardware Attached on Top).

Quella scoperta da sola è stata sufficiente per spingere il mio progetto dell'orologio a cucù più in basso nella lista delle "cose da fare" e ho iniziato subito a lavorare, smontando il lettore.

Lo smontaggio è andato abbastanza bene e mi sono ritrovato con tre pezzi distinti con cui lavorare: sono riuscito a rompere un paio di parti in plastica, ma niente che non potesse essere incollato di nuovo insieme.

Passaggio 2: Dark Sky Pi

Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi
Dark Sky Pi

Uso Dark Sky sul mio telefono da un po' e sono rimasto davvero colpito dall'accuratezza delle previsioni, quindi sono stato felice di vedere che offrono un'API completa che potrei usare in questo progetto. È bello e semplice da impostare su anche tu!

Per prima cosa vai su https://darksky.net/dev e registrati per un account gratuito: un account "di prova" ti consente di effettuare 1000 richieste API al giorno, il che è sufficiente per un aggiornamento ogni 1,5 minuti - abbastanza frequentemente anche per il mio Livello britannico di ossessione meteorologica.

Una volta registrato, riceverai una "chiave segreta": questo è ciò di cui hai bisogno per accedere ai dati ed è utilizzato nello script Python, quindi tienilo a portata di mano (e, sai, segreto).

Ho iniziato adattando uno script che ho utilizzato nella build del contatore degli abbonati di YouTube, che utilizza il modulo Richieste in Python per recuperare i dati API. Lo script che ho usato è su GitHub, dovrai solo aggiungere la tua chiave API Dark Sky e, naturalmente, sostituire i tuoi valori di latitudine e longitudine.

È stato abbastanza semplice estrarre i dati sulle condizioni meteorologiche attuali e ho deciso di utilizzare gli elementi "Icona", "Probabilità di precipitazioni" e "Temperatura".

Passaggio 3: il codice

Il codice
Il codice

Se vuoi riutilizzare o fare un trampolino di lancio dal codice che ho usato, è nel repository WeatherMan su GitHub: clona o scarica la cartella "meteo" nella cartella "pi" sul tuo Raspberry Pi.

Le principali funzioni dello script sono le seguenti:

meteorologo.py

Questo è lo script principale che estrae i dati meteo da Dark Sky. Dovrai creare un account Dark Sky su https://darksky.net/dev e inserire la tua chiave segreta nello script dove indicato. Dovrai anche inserire la latitudine e la longitudine della località meteorologica che ti interessa: puoi trovarla su Google Maps, fai clic con il pulsante destro del mouse e seleziona "Cosa c'è qui?" e otterrai un pop-up che mostra il lat/long della posizione.

Dopo aver recuperato i dati API weatherman.py passa i parametri a diversi script più piccoli per dare il via alle animazioni e alle vibrazioni delle cuffie.

Lo script è impostato per essere eseguito all'avvio modificando il file di avvio…

sudo nano /home/pi/.config/lxsession/LXDE-pi/autostart

…e aggiungendo:

@python3 /home/pi/weather/weatherman.py &

alla fine del file.

icona.py

Questo script prende un parametro "condizioni correnti" dallo script weatherman.py e lo usa per visualizzare un'animazione meteo 16x16 - questi sono tutti memorizzati nella cartella "icons" e fanno parte della documentazione standard di Unicorn HAT HD. Puoi modificare facilmente i file di animazione-p.webp

telefoni.py

Se le condizioni meteorologiche sono cambiate dall'ultima richiesta API (o è un nuovo avvio e non sta nevicando), questo script viene chiamato da weatherman.py e indica al servo di "agitare" avanti e indietro per avvisarti che le condizioni hanno cambiato.

precip.py

Questo script accetta un parametro di "probabilità di precipitazione" da weatherman.py e visualizza le linee in blu sull'Unicorn HAT relative alla % di probabilità. Se 100% tutte le 16 righe si illumineranno di blu, se 50% solo 8 righe ecc.

temp.py

Un altro script Pimoroni standard, questo prende un parametro "temp" da weatherman.py e lo visualizza con testo scorrevole. È impostato per utilizzare il carattere truetype Herkules (nella cartella "fonts") ma potrebbe utilizzare un carattere standard se preferisci. Potresti anche migliorarlo in modo che il testo visualizzato cambi colore a seconda del valore della temperatura!

Fase 4: CAPPELLO & Servo Unicorno

CAPPELLO & Servo Unicorno
CAPPELLO & Servo Unicorno
CAPPELLO & Servo Unicorno
CAPPELLO & Servo Unicorno
CAPPELLO & Servo Unicorno
CAPPELLO & Servo Unicorno

Essere in grado di ottenere i dati meteorologici è stato fantastico, ma ora avevo bisogno di visualizzarli sull'Unicorn HAT. Ho guardato vari set di icone meteorologiche su Internet ed ero a metà dell'adattamento quando mi sono reso conto che c'era un esempio meteo incluso nella documentazione Pimoroni - e questo includeva le animazioni meteorologiche!

Ciò ha risparmiato un'enorme quantità di lavoro e sono stato operativo in pochissimo tempo, con un'icona animata per le condizioni attuali, un testo scorrevole per la temperatura e un grafico per la % di precipitazioni (che ha coinvolto alcuni calcoli matematici). Ho mantenuto gli script separati e ho usato il modulo Subprocess di Python per passare i parametri avanti e indietro.

L'aggiunta del servo era il veicolo ideale per questi avvisi, in quanto avrebbe fatto un po' di rumore e sarebbe stato accattivante senza essere troppo fastidioso. Con l'HAT che occupava già molti dei pin del Pi, ho saldato i cavi del servo sul lato inferiore della scheda, utilizzando il Pin 17 per controllare il movimento del servo utilizzando la modulazione di larghezza di impulso.

Alimentare il servo dal Pi non era l'ideale, ma sarebbe stato usato solo per un movimento momentaneo, quindi la precisione non era un grosso problema qui. Si è collegato come mostrato nello schema, con cavo marrone a GND, rosso a 5v e arancione (il cavo di controllo) a GPIO17.

Infine ho modificato alcuni file di animazione del tempo in GIMP per aggiungere i miei tocchi personali, come i pipistrelli sulla luna e una faccina sorridente sul sole. Ho anche aggiunto un'animazione personalizzata della ruota della cassetta "Old Tech New Spec" da riprodurre all'avvio, solo per divertimento.

Passaggio 5: vibrazione delle cuffie

Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia
Vibrazione in cuffia

L'idea del WeatherMan era che si sarebbe seduto passivamente sull'altoparlante della mia scrivania, mostrando occasionalmente il tempo, ma volevo che facesse solo un po' di più! Gli auricolari in dotazione erano toast ma classici anni '80, quindi ho deciso di fare qualcosa con loro. Dopo aver tolto tutto il cavo e incollato a caldo quello rotto, mi sono rimaste tre parti, la spina da 3,5 mm, il pulsante a forma di diamante e i telefoni stessi sulla loro fascia metallica flessibile.

Mi ha colpito l'idea che se riuscissi a trovare un modo per montare i telefoni sulla parte superiore dell'unità, potrei farli ruotare avanti e indietro con un servo e utilizzarlo come notifica aggiuntiva.

Per prima cosa ho perforato la spina da 3,5 mm e smontato l'interruttore diamantato, quindi li ho fatti scivolare su un pezzo di barra filettata. Successivamente ho incollato un dado a un connettore di plastica, in modo che l'asta potesse stare saldamente (e diritta) sopra il servo. All'altra estremità dell'asta ho aggiunto un altro dado. Infine ho usato il Sugru grigio per legare la parte superiore dell'asta alla fascia degli auricolari e anche per coprire il dado nella parte inferiore dell'assieme. Se non hai sentito parlare di Sugru, è una colla modellabile che viene fornita in piccole bustine colorate: si modella come Play-Doh ma si attacca come la supercolla e si indurisce come la plastica!

Con il recente freddo, le Sugru hanno impiegato alcuni giorni per indurirsi completamente, ma le cuffie e il loro supporto erano presto pronti per l'assemblaggio finale.

Passaggio 6: assemblaggio

Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea
Assemblea

Il Pi, HAT e Servo stavano tutti funzionando bene sul banco, quindi il lavoro successivo era inserirli nel case. Prima di iniziare con i componenti grandi ho usato del Sugru grigio avanzato per fissare il quadrante del volume, la presa per le cuffie e l'interruttore "nastro metallico", sistemando i cosmetici. Ho anche incollato i pulsanti originali Play, Stop, FF e Rew a un pezzo di tubo di plastica in modo che rimangano nel posto giusto. È stato un peccato non riutilizzare nessuno dei pulsanti questa volta, ma non c'era davvero nulla da controllare!

Ho usato l'ultimo dei Sugru grigi per tenere il servo in posizione, con il suo albero che spuntava dalla presa delle cuffie allargata. Passando all'altra metà del case, ho quindi usato del Sugru nero per fissare l'HAT e il Pi allo sportello del nastro, in modo che si aprissero con esso. Mi è piaciuto molto il tocco finale: fissare un magnete GeoMag in modo che la porta fosse tenuta saldamente chiusa.

Mettere insieme le due metà è stata una faccenda nervosa perché temevo che Pi e Servo si sarebbero scontrati l'uno con l'altro, ma alla fine c'era circa un millimetro di riserva, molto nel mio libro. Dato che la bizzarra porta apribile darebbe pieno accesso all'interno per future manutenzioni, ho semplicemente incollato a caldo le due metà insieme e, dopo aver asciugato le mie impronte unte, ho montato il gruppo delle cuffie in cima - fatto!

Passaggio 7: Ossessione tranquilla

Ossessione tranquilla
Ossessione tranquilla
Ossessione tranquilla
Ossessione tranquilla

Secondo Premio al Concorso Riuso

Consigliato: