Sommario:

Orologio meteo barometro Raspberry Pi: 9 passaggi (con immagini)
Orologio meteo barometro Raspberry Pi: 9 passaggi (con immagini)

Video: Orologio meteo barometro Raspberry Pi: 9 passaggi (con immagini)

Video: Orologio meteo barometro Raspberry Pi: 9 passaggi (con immagini)
Video: Raspberry Pi HP206C Barometer & Altimeter Sensor Python Tutorial 2024, Novembre
Anonim
Orologio meteo barometro Raspberry Pi
Orologio meteo barometro Raspberry Pi

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

Preparare il Pi
Preparare il Pi

Configura il tuo Raspberry Pi - Dettagli su Raspberrypi.org

  1. Scarica e installa la distribuzione Linux selezionata su una scheda SD - ho usato Raspbian
  2. Collega il pi e avvialo
  3. Ho usato un adattatore micro WiFi per collegare il pi al mio router poiché l'alloggiamento dell'orologio oscura la porta Ethernet.
  4. Ho usato la modalità headless in cui ti connetti al pi usando SSH, quindi tutto ciò di cui hai bisogno è l'alimentazione.
  5. Configura I2C sul Pi: ho seguito queste istruzioni sul sito di Adafruit.

Passaggio 2: collega tutto

Collega tutto
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

Metti alla prova il tuo I2C
Metti alla 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

  1. 0x70 = Display a 7 segmenti
  2. 0x77 = Sensore termometro/barometro BMP180
  3. 0x68 = Modulo orologio in tempo reale DS3231
  4. 0x57 = DS3231 a bordo EEPROM per la memorizzazione dei dati di allarme.

Passaggio 4: installa MySQL e PhpMyAdmin

Installa MySQL e PhpMyAdmin
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.

  1. Modulo Adafruit_BMP085
  2. Modulo SDL_DS3231
  3. 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

Codice da visualizzare Temp
Codice da visualizzare Temp
Codice per visualizzare la temperatura
Codice per visualizzare la temperatura
Codice da visualizzare Temp
Codice da visualizzare Temp
Codice per visualizzare la temperatura
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

Custodia stampata in 3D
Custodia stampata in 3D
Custodia stampata in 3D
Custodia stampata in 3D
Custodia stampata in 3D
Custodia stampata in 3D
Custodia stampata in 3D
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

Cose da fare
Cose da fare
  1. 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.
  2. 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.
  3. Ci sono alcuni problemi di progettazione minori con il cracking della base che verranno anch'essi risolti.
  4. 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: