Sommario:
- Passaggio 1: preparare il Pi
- Passaggio 2: collega tutto
- Passaggio 3: prova il tuo I2C
- Passaggio 4: installa MySQL e PhpMyAdmin
- Passaggio 5: installa i moduli Python
- Passaggio 6: codice per accedere al database
- Passaggio 7: codice per visualizzare la temperatura
- Passaggio 8: custodia stampata in 3D
- Passaggio 9: cose da fare
Video: Orologio meteo barometro Raspberry Pi: 9 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:01
In questo tutorial ti mostrerò come costruire un termometro / orologio barometro di base utilizzando un Raspberry Pi 2 con un sensore BMP180 I2C visualizzato su un display I2C Adafruit a 4 cifre e 7 segmenti. Il Pi utilizza anche un modulo orologio I2C in tempo reale DS3231 per tenere il tempo quando il Pi viene riavviato.
L'orologio scorre 4 fasi per 5 secondi ciascuna. Prima mostra la temperatura in Celsius, poi in Fahrenheit poi la pressione atmosferica in kPa * (cammina questo numero a sinistra a causa del numero limitato di cifre) e infine mostra un andamento della variazione della pressione atmosferica tra ora e la media del ora precedente.
Ciò che rende questo orologio diverso dalla maggior parte è che utilizza un database MySQL sul Pi per registrare i dati dal BMP180 ogni minuto. Poiché l'attuale pressione barometrica non è preziosa quanto il suo movimento verso l'alto o verso il basso in un determinato periodo di tempo, utilizza questo database per calcolare una media per un intervallo di un'ora tra 2 ore e 1 ora fa e la confronta con la pressione attuale. Un aumento significativo della pressione barometrica di solito indicava un miglioramento delle condizioni meteorologiche rispetto a un forte calo che potrebbe avvertire di una tempesta imminente.
L'orologio è alloggiato in un alloggiamento in ABS stampato in 3D con il BMP180 in un cappuccio ventilato sul retro dell'orologio per evitare che il calore generato dal Pi influisca sulle letture della temperatura. Fornirò lo schema di Autodesk 123D Design se desideri stampare il tuo.
L'orologio è alimentato con una verruca da parete USB standard e assorbe circa 450 mA in totale.
Non entrerò in troppi dettagli sulla configurazione di base di Pi e I2C poiché questo è stato trattato in molte altre istruzioni a cui fornirò i collegamenti.
Passaggio 1: preparare il Pi
Configura il tuo Raspberry Pi - Dettagli su Raspberrypi.org
- Scarica e installa la distribuzione Linux selezionata su una scheda SD - ho usato Raspbian
- Collega il pi e avvialo
- Ho usato un adattatore micro WiFi per collegare il pi al mio router poiché l'alloggiamento dell'orologio oscura la porta Ethernet.
- Ho usato la modalità headless in cui ti connetti al pi usando SSH, quindi tutto ciò di cui hai bisogno è l'alimentazione.
- Configura I2C sul Pi: ho seguito queste istruzioni sul sito di Adafruit.
Passaggio 2: collega tutto
Tutti i moduli che utilizzo in questo progetto sono tolleranti a 5V e utilizzano I2C che è un protocollo a 2 fili utilizzato per comunicare tra loro da IC, quindi il cablaggio è piuttosto semplice. Collegare tutti i VCC a 5V, tutti i Grounds insieme e tutte le linee SCA e SCL insieme come da schema. Lavoro fatto.
Passaggio 3: prova il tuo I2C
Parte dell'installazione di I2C consiste nell'eseguire i2cdetect che dovrebbe assomigliare all'immagine allegata se tutto è cablato correttamente.
Di seguito sono riportati gli indirizzi corrispondenti
- 0x70 = Display a 7 segmenti
- 0x77 = Sensore termometro/barometro BMP180
- 0x68 = Modulo orologio in tempo reale DS3231
- 0x57 = DS3231 a bordo EEPROM per la memorizzazione dei dati di allarme.
Passaggio 4: installa MySQL e PhpMyAdmin
L'installazione di mySQL è abbastanza semplice se segui il tutorial qui
sudo apt-get install mysql-server
Ho anche installato phpMyAdmin che è un sito web che gira su Apache che puoi usare per creare e gestire database mySQL. Tutorial qui
sudo apt-get install phpmyadmin
Una volta installato ho impostato un database chiamato BP180 utilizzando phpMyAdmin con la struttura come da immagine.
Faccio anche uso di un modulo Python chiamato mysqlDB che puoi installare usando
sudo apt-get install python-mysqldb
Passaggio 5: installa i moduli Python
Scarica e installa i seguenti moduli Python che utilizzerai per connetterti ai sensori.
- Modulo Adafruit_BMP085
- Modulo SDL_DS3231
- Modulo Adafruit 7 Segmenti
Passaggio 6: codice per accedere al database
Il frammento di codice seguente viene utilizzato per registrare la temperatura e la pressione barometrica e viene chiamato da uno script cron (attività pianificate di Linux) che viene eseguito ogni 5 minuti. Per imparare a usare crond, dai un'occhiata a questo tutorial.
NB! Non preoccuparti di cestinare le mie capacità di programmazione, non sono uno sviluppatore quindi sì, probabilmente ci sono un milione di modi migliori, più veloci, più fluidi e più puliti per farlo
Noterai nel codice che la temperatura è diminuita di 7 gradi che equivale al calore generato dal Raspberry Pi anche con il BMP180 montato all'esterno dell'alloggiamento. Quando originariamente l'ho avuto all'interno dell'alloggiamento, era circa 15 gradi più caldo dell'ambiente. Sembra essere abbastanza lineare, ma non ho avuto l'opportunità di testare gli estremi. Il feedback delle vostre esperienze sarebbe apprezzato.
Passaggio 7: codice per visualizzare la temperatura
Questo codice viene chiamato per scorrere il display come da introduzione.
Ancora una volta, non sono uno sviluppatore, quindi il codice è davvero approssimativo, ma funziona
Passaggio 8: custodia stampata in 3D
Il prossimo è il design della custodia. Questo è stato piuttosto impegnativo in quanto la forma è soggetta a deformazioni perché parti del guscio esterno hanno uno spessore di soli 2 mm. Per prima cosa ho disegnato dei modelli del Pi e di tutte le parti e poi ho disegnato il recinto attorno ad esso. La stampa ha richiesto circa 7 ore sulla mia RapMan 3.2 (che è una stampante piuttosto lenta) a una profondità di 0,25 strati.
Lo schema allegato è realizzato in Autodesk 123D Design che penso sia un fantastico software gratuito.
Nota che alcuni dei fori come quelli necessari per montare il Pi non sono nel design in quanto è meglio forarli in seguito nel caso in cui la tua stampa si deformi un po'. Mano ferma, una punta da trapano da 3 mm è tutto ciò di cui hai bisogno. Segna la profondità sulla punta con del nastro adesivo in modo da non passare accidentalmente direttamente attraverso la tua stampa di 7 ore come ho fatto io.
Passaggio 9: cose da fare
- L'orologio in tempo reale è stato un'aggiunta dopo che l'involucro è stato stampato per la quinta volta, quindi è attualmente incollato a caldo sul lato dell'involucro che non ha un bell'aspetto, quindi vorrei rifare il design e aggiungere un posto per esso.
- La luminosità del display a 7 segmenti è attualmente impostata al minimo, il che non è ottimale per condizioni di luce intensa. Vorrei aggiungere una fotoresistenza nella parte superiore dell'involucro e regolare la luminosità a 7 segmenti in base alle condizioni di luce ambientale.
- Ci sono alcuni problemi di progettazione minori con il cracking della base che verranno anch'essi risolti.
- Tutte le idee sono benvenute.
Spero che questo tutorial ti sia piaciuto e che l'abbia trovato abbastanza stimolante da farti andare avanti. L'idea è quella di fornire una piattaforma che è possibile utilizzare per aggiungere le proprie idee. Divertiti!
Consigliato:
Barometro IoT: 5 passaggi (con immagini)
Barometro IoT: misura e registra la temperatura e la pressione atmosferica con questo barometro IoT. Voglio presentare un barometro IoT. Permette di misurare e memorizzare i dati di temperatura e pressione nella piattaforma IoT Adafruit. Ho pubblicato un progetto simile che m
Orologio per il pensionamento / Orologio con conteggio su/giù: 4 passaggi (con immagini)
Orologio per la pensione / Orologio per conteggio su/giro: avevo alcuni di questi display a matrice di punti a LED 8x8 nel cassetto e stavo pensando a cosa farne. Ispirato da altre istruzioni, ho avuto l'idea di costruire un display per il conto alla rovescia per il conto alla rovescia per una data/ora futura e se il tempo target p
Orologio Vortex: un orologio da polso Infinity Mirror: 10 passaggi (con immagini)
Vortex Watch: un orologio da polso Infinity Mirror: L'obiettivo di questo progetto era creare una versione indossabile di un orologio Infinity Mirror. Utilizza i suoi LED RGB per indicare il tempo assegnando ore, minuti e secondi rispettivamente alle luci rossa, verde e blu e sovrapponendo queste tonalità per
Barometro dell'umore Nixie Clock: 7 passaggi (con immagini)
Nixie Clock Mood Barometer: una vittima insignificante di Progress è il barometro domestico aneroide. In questi giorni, potresti ancora trovare esempi nelle case di persone con più di novant'anni, ma altri milioni sono nella discarica o su ebay. In verità, il barometro della vecchia scuola non mi ha aiutato
Microdot - Orologio da polso con motivo a LED Orologio: 7 passaggi (con immagini)
Microdot - Orologio da polso con motivo a LED: un'altra produzione RGB Sunset Productions! funzioni più applicabili a un dispositivo portatile. UN