Come costruire un monitor di temperatura Raspberry Pi

Temperatura e umidità sono punti di dati vitali nel mondo industriale di oggi. Il monitoraggio dei dati ambientali per sale server, congelatori commerciali e linee di produzione è necessario per mantenere le cose senza intoppi. Ci sono un sacco di soluzioni là fuori che vanno dalla base al complesso e può sembrare schiacciante su ciò che il vostro business ha bisogno e da dove cominciare.

Cammineremo attraverso come costruire e utilizzare un sensore di temperatura Raspberry Pi con diversi sensori di temperatura. Questo è un buon punto di partenza dal momento che queste soluzioni sono poco costose, facili da fare e ti danno una base da costruire per altri monitoraggi ambientali.

Un Raspberry Pi è un computer a scheda singola economico che consente di connettersi a un sensore di temperatura e trasmettere i dati a un software di visualizzazione dei dati. Raspberry Pi è iniziato come uno strumento di apprendimento e si sono evoluti in uno strumento di lavoro industriale. La facilità d’uso e la capacità di codificare con Python, il linguaggio di programmazione in più rapida crescita, li ha resi una soluzione.

Si vorrà un Raspberry Pi che ha WiFi integrato, che sono qualsiasi modello 3, 4, e zero W/WH. Tra quelli che puoi scegliere in base a prezzi e funzionalità. Lo Zero W / WH è il più economico ma se hai bisogno di più funzionalità puoi scegliere tra il 3 e il 4. È possibile acquistare solo uno Zero W / WH alla volta a causa di limitazioni da parte della Fondazione Raspberry Pi. Qualunque sia il Pi che scegli, assicurati di acquistare un caricabatterie poiché è così che alimenterai il Pi e una scheda SD con Raspbian per rendere l’installazione del sistema operativo il più semplice possibile.

Ci sono altri computer single board che possono funzionare, ma questo è per un’altra volta e un altro articolo.

Sensori

Ci sono quattro sensori si consiglia di utilizzare perché sono poco costosi, facile da collegare, e dare letture accurate; DSB18B20, DHT22, BME280, e Raspberry Pi senso CAPPELLO.

DHT22-Questo sensore di temperatura e umidità ha una precisione di temperatura di + / – 0,5 C e un intervallo di umidità da 0 a 100 percento. È semplice da collegare al Raspberry Pi e non richiede alcun pull up resistenze.

DSB18B20-Questo sensore di temperatura ha un’uscita digitale, che funziona bene con il Raspberry Pi. Ha tre fili e richiede una breadboard e resistenza per la connessione.

BME280-Questo sensore misura la temperatura, l’umidità e la pressione barometrica. Può essere utilizzato sia in SPI e I2C.

Senso CAPPELLO-Questo è un add on board per Raspberry Pi che ha LED, sensori, e un piccolo joystick. Si collega direttamente al GPIO sul Raspberry Pi, ma utilizzando un cavo a nastro ti dà letture di temperatura più accurate.

Raspberry Pi Setup

Se questa è la prima volta che si imposta il Raspberry Pi è necessario installare il sistema operativo Raspbian e collegare il Pi al WiFi. Ciò richiederà un monitor e una tastiera per connettersi al Pi. Una volta che lo avete installato e funzionante e collegato al WiFi, il vostro Pi è pronto ad andare.

Account di stato iniziale

Avrai bisogno di un posto dove inviare i tuoi dati per mantenere un registro storico e visualizzare il flusso di dati in tempo reale, quindi useremo lo stato iniziale. Vai a https://iot.app.initialstate.com e crea un nuovo account o accedi al tuo account esistente.

Successivamente, dobbiamo installare il modulo Python di stato iniziale sul tuo Pi. Al prompt dei comandi (non dimenticate di SSH in Pi di prima), eseguire il comando riportato di seguito:

$ cd /home/pi/
$ \curl -sSL https://get.initialstate.com/python -o - | sudo bash

Dopo aver immesso il comando curl nel prompt dei comandi verrà visualizzato qualcosa di simile al seguente output su schermo:

Quando viene richiesto automaticamente di ottenere uno script di esempio, digitare y. Questo crea uno script di test che si possono eseguire per garantire che siamo in grado di trasmettere i dati allo Stato Iniziale. Il prossimo prompt chiederà dove si desidera salvare il file di esempio. È possibile digitare un percorso locale personalizzato o premere invio per accettare la posizione predefinita. Infine, ti verrà chiesto quale app di stato iniziale stai utilizzando. Se hai creato di recente un account, seleziona l’opzione 2, inserisci il tuo nome utente e la tua password. Dopo di che l’installazione sarà completa.

Diamo un’occhiata allo script di esempio che è stato creato.

$ nano is_example.py

Sulla riga 15, vedrai una riga che inizia con streamer = Streamer(bucket_ .... Questa riga crea un nuovo bucket di dati denominato “Esempio di flusso Python” ed è associato al tuo account. Questa associazione si verifica a causa del parametro access_key="..." su quella stessa riga. Quella lunga serie di lettere e numeri è la chiave di accesso dell’account di stato iniziale. Se vai al tuo account di stato iniziale nel tuo browser Web, fai clic sul tuo nome utente in alto a destra, quindi vai su “le mie impostazioni”, troverai la stessa chiave di accesso qui sotto “Chiavi di accesso in streaming”.

Chiavi di accesso del flusso di stato iniziale

Ogni volta che crei un flusso di dati, quella chiave di accesso indirizzerà quel flusso di dati al tuo account (quindi non condividere la tua chiave con nessuno).

Esegui lo script di test per assicurarti di poter creare un flusso di dati sul tuo account di stato iniziale. Eseguire quanto segue:

$ python is_example.py

Torna al tuo account di stato iniziale nel tuo browser web. Un nuovo bucket di dati chiamato “Esempio di flusso Python” dovrebbe essere visualizzato a sinistra nel tuo scaffale di log (potrebbe essere necessario aggiornare la pagina). Fare clic su questo bucket e quindi fare clic sull’icona Waves per visualizzare i dati di test.

Stato Iniziale Python Flusso Esempio di dashboard

Se si utilizza Python 3, è possibile installare lo Stato Iniziale Streamer Modulo può essere installato utilizzando il comando riportato di seguito:

pip3 install ISStreamer

Ora siamo pronti per configurare il sensore di temperatura con Pi di temperatura del flusso in un dashboard.

Soluzione DHT22

Per creare questa soluzione sono necessari i seguenti elementi:
– Sensore di temperatura e umidità DHT22

Il DHT22 avrà tre perni-5V, Gnd e dati. Ci dovrebbe essere un’etichetta del perno per potere sul DHT22 (per esempio ‘+’ o ‘5V’). Collegare questo al pin 2 (il pin in alto a destra, 5 V) del Pi. Il pin Gnd sarà etichettato ‘ – ‘o’ Gnd ‘ o qualcosa di equivalente. Collegare questo al pin 6 Gnd (due pin sotto il pin 5V) sul Pi. Il perno restante sul DHT22 è il perno di dati e sarà etichettato ‘fuori’ o ‘ s ‘o ‘ dati’. Collegare questo a uno dei pin GPIO sul Pi come GPIO4 (pin 7). Una volta che questo è cablato, accendere il Pi.

Per questa soluzione dovremo usare Python 3 e la libreria CircuitPython poiché Adafruit ha deprecato la libreria DHT Python.

Installare il modulo CircuitPython-DHT Python ad un prompt dei comandi per rendere la lettura dei dati del sensore DHT22 super facile:

$ pip3 install adafruit-circuitpython-dht
$ sudo apt-get install libgpiod2

Con il nostro sistema operativo installato insieme ai nostri due moduli Python per la lettura dei dati del sensore e l’invio dei dati allo stato iniziale, siamo pronti a scrivere il nostro script Python. Il seguente script creerà / aggiungerà a un bucket di dati di stato iniziale, leggerà i dati del sensore DHT22 e invierà tali dati a un dashboard in tempo reale. Tutto quello che devi fare è modificare le righe 6-11.

  • Linea 7-Questo valore deve essere univoco per ogni nodo / sensore di temperatura. Questo potrebbe essere il nome della stanza del nodo sensore, la posizione fisica, l’identificatore univoco o qualsiasi altra cosa. Assicurati che sia univoco per ogni nodo per assicurarti che i dati da questo nodo vadano al proprio flusso di dati nella tua dashboard.
  • Riga 8-Questo è il nome del bucket di dati. Questo può essere modificato in qualsiasi momento nell’interfaccia utente dello stato iniziale.
  • Linea 9-Questa è la chiave bucket. Deve essere la stessa chiave bucket per ogni nodo che si desidera visualizzare nella stessa dashboard.
  • Riga 10-Questa è la chiave di accesso all’account di stato iniziale. Copia e incolla questa chiave dal tuo account di stato iniziale.
  • Linea 11-Questo è il tempo tra le letture del sensore. Cambia di conseguenza.
  • Riga 12-È possibile specificare unità metriche o imperiali sulla riga 11.

Dopo aver impostato le righe 7-12 nel tuo script Python sul tuo Pi, salva e esci dall’editor di testo. Eseguire lo script con il seguente comando:

$ python3 tempsensor.py
Ecco un esempio di utilizzo del sensore DHT22 con Raspberry Pi

Ora avrai l’invio dei dati a un dashboard di stato iniziale. Vai alla sezione finale di questo articolo per i dettagli su come personalizzare la dashboard.

DSB18B20 Soluzione

avrete bisogno dei seguenti elementi per costruire questa soluzione:
-DSB18B20 Sensore di Temperatura
-Resistenza da 10K
-Breadboard
-40-Pin Breakout Board + Cavo a Nastro
-Fili

Il cavo a nastro che collega il pin GPIO Pi. Il DS18B20 ha tre fili. Il filo rosso si collega a 3.3 V. Il filo blu/nero si collega a terra. Il filo giallo si collega a un resistore di pull-up / pin 4. Una volta che questo è cablato, accendere il Pi.

L’ultima versione di Raspbian (kernel 3.18) richiede un’aggiunta al tuo /boot/config.file txt per il Pi per comunicare con il DS18B20. Eseguire quanto segue per modificare questo file:

$ sudo nano /boot/config.txt

Se la riga seguente non è già in questo file (se lo è, è probabile che sia nella parte inferiore del file), aggiungila e salva il file.

dtoverlay=w1-gpio,gpiopin=4

Riavvia il Pi affinché le modifiche abbiano effetto.

$ sudo reboot

Per avviare l’interfaccia di lettura del sensore di temperatura è necessario eseguire due comandi. Vai a un prompt dei comandi sul tuo Pi o SSH nel tuo Pi. Digitare i seguenti comandi:

$ sudo modprobe w1-gpio$ sudo modprobe w1-therm

L’output del sensore di temperatura viene ora scritto in un file sul tuo Pi. Per trovare quel file:

$ cd /sys/bus/w1/devices

In questa directory, ci sarà una sottodirectory che inizia con”28 -“. Ciò che viene dopo il “28 -” è il numero di serie del sensore. cd in quella directory. All’interno di questa directory, un file denominato w1_slave contiene l’output del sensore. Utilizzare nano per visualizzare il contenuto del file. Una volta che hai inserito nel file, sarà simile a questo:

a2 01 4b 46 7f ff 0e 10 d8 : crc=d8 YESa2 01 4b 46 7f ff 0e 10 d8 t=26125

Il numero dopo “t=” è il numero che vogliamo. Questa è la temperatura in 1/1000 gradi Celsius (nell’esempio sopra, la temperatura è 26.125 C). Abbiamo solo bisogno di un semplice programma che legge questo file e analizza quel numero. Ci arriveremo in un secondo.

Tutto è ora pronto per iniziare lo streaming dei dati. Per aprire l’editor di testo digitare quanto segue nel prompt dei comandi:

$ nano temperature.py

Copia e incolla il codice qui sotto nell’editor di testo.

Devi mettere la tua chiave di accesso allo stato iniziale sulla riga 6 al posto di PUT_YOUR_ACCESS_KEY_HERE (copia la chiave di streaming negli appunti da “Il mio account” e incollala nel codice in nano nel tuo terminale).

La riga 6 creerà un bucket denominato “Flusso di temperatura” nel tuo account di stato iniziale (supponendo che tu abbia specificato correttamente la tua access_key su questa stessa riga). Le righe da 8 a 30 di questo script si interfacciano semplicemente con il sensore DS18B20 per leggere la sua temperatura dal file w1_slave di cui abbiamo discusso in precedenza. La funzione read_temp_raw () sulla riga 15 legge il file w1_slave non elaborato. La funzione read_temp () sulla riga 21 analizza la temperatura da quel file. La linea 34 chiama queste funzioni per ottenere la temperatura corrente. Linea 35 converte la temperatura da Celsius a Fahrenheit. Linee 35 e 36 flussi la temperatura al tuo account Stato iniziale. La riga 37 mette in pausa lo script per 0,5 secondi, impostando la frequenza con cui il sensore di temperatura verrà letto e trasmesso in streaming.

Siamo pronti per iniziare lo streaming. Eseguire il seguente comando:

$ sudo python temperature.py

Torna al tuo account di stato iniziale nel tuo browser Web e cerca un nuovo bucket di dati chiamato Flusso di temperatura. Si dovrebbe vedere i dati di temperatura in streaming in diretta. Variare la temperatura del sensore tenendolo in mano o mettendolo in un bicchiere di ghiaccio.

Ora avrai l’invio dei dati a un dashboard di stato iniziale. Vai alla sezione finale di questo articolo per i dettagli su come personalizzare la dashboard.

Soluzione BME280

Avrai bisogno di quanto segue per costruire questa soluzione:
– BME280 Pressione, temperatura, & Sensore di umidità

Se si utilizza un BME280 che non proviene da Adafruit, la configurazione e il codice saranno diversi. È possibile trovare un esempio di come utilizzare il sensore BME280 in questo articolo sul monitoraggio dell’umidità dello spazio di scansione.

Questo sensore viene fornito con perni che è necessario saldare sul sensore. Vi consiglio di utilizzare una breadboard con i perni lungo lato verso il basso nella breadboard per rendere più facile la saldatura. Una volta che hai completato questo abbiamo bisogno di collegare il sensore al Pi.

Collegare il pin VIN sul sensore al pin 1 3.3 V sul Pi. Collegare il pin GND sul sensore il pin di terra 6 sul Pi. Collegare il pin SCK sul sensore al pin SCL 5 sul Pi. Collegare il pin SDI sul sensore al pin SDA 3 sul Pi.

È necessario utilizzare Python 3 per questa soluzione e installare il modulo Streamer di stato iniziale utilizzando il metodo di installazione pip3. Avrai anche bisogno di installare alcune librerie Python Adafruit.

pip3 install adafruit-blinka
pip3 install pureio
pip3 install spidev
pip3 install adafruit-GPIO
pip3 install adafruit-circuitpython-bme280

Per utilizzare il sensore è necessario abilitare I2C sul Pi.

sudo raspi-config

Questo si aprirà il Raspberry Pi Software Strumento di configurazione. Vai all’opzione 5 Opzioni di interfacciamento. Da qui vai a I2C. Ti verrà chiesto se vuoi abilitare I2C, selezionare Sì e Fine. Ora hai I2C abilitato per comunicare con il sensore.

Possiamo testarlo eseguendo quanto segue:

sudo i2cdetect -y 1

Questo verificherà che il tuo Pi veda il sensore. Nel modo in cui è collegato, dovrebbe mostrare il sensore all’indirizzo 77. Se non si rileva il sensore, riavviare il Pi, riattivare l’opzione di interfaccia I2C sul Pi, e riprovare.

Una volta rilevato il sensore, è il momento di eseguire il nostro codice principale che invierà i dati allo stato iniziale. Creato un file chiamato bme280sensor.py con il comando nano. Copia e incolla il codice dal gist nell’editor di testo. È necessario apportare modifiche alle righe 12-19.

  • Linea 12-Questo valore deve essere univoco per ogni nodo / sensore di temperatura. Questo potrebbe essere il nome della stanza del nodo sensore, la posizione fisica, l’identificatore univoco o qualsiasi altra cosa. Assicurati che sia univoco per ogni nodo per assicurarti che i dati da questo nodo vadano al proprio flusso di dati nella tua dashboard.
  • Riga 13-Questo è il nome del bucket di dati. Questo può essere modificato in qualsiasi momento nell’interfaccia utente dello stato iniziale.
  • Linea 14-Questa è la chiave bucket. Deve essere la stessa chiave bucket per ogni nodo che si desidera visualizzare nella stessa dashboard.
  • Riga 15-Questa è la chiave di accesso all’account di stato iniziale. Copia e incolla questa chiave dal tuo account di stato iniziale.
  • Linea 17 – Questa è la pressione della tua posizione (hPa) al livello del mare. Potete trovare queste informazioni sulla maggior parte dei siti web meteo.
  • Linea 18-Questo è il tempo tra le letture del sensore. Cambia di conseguenza.
  • Linea 19 – Qui è possibile specificare unità metriche o imperiali.

Dopo aver impostato le righe 12-19 nel tuo script Python sul tuo Pi, salva e esci dall’editor di testo. Eseguire lo script con il seguente comando:

$ python3 bme280sensor.py

Ora avrai l’invio dei dati a un dashboard di stato iniziale. Vai alla sezione finale di questo articolo per i dettagli su come personalizzare la dashboard.

Sense HAT Solution

Avrete bisogno dei seguenti elementi per costruire questa soluzione:
-Raspberry Pi Sense HAT
-6″ 40-Pin IDE maschio a femmina cavo di estensione (opzionale per la precisione della temperatura)

Il primo passo per utilizzare il senso cappello è quello di installare fisicamente sul vostro Pi. Con il Pi spento, attaccato il CAPPELLO come mostrato di seguito.

Sense HAT connection to Raspberry Pi

Se decidi di utilizzare la soluzione come mostrato sopra, potresti notare che le letture della temperatura del tuo Sense HAT saranno un po ‘ alte, perché lo sono. Il colpevole è il calore generato dalla CPU del Pi che riscalda l’aria attorno al cappello Sense quando è seduto sopra il Pi. Per rendere utile il sensore di temperatura, dobbiamo allontanare il CAPPELLO dal Pi o provare a calibrare la lettura del sensore di temperatura. Una buona soluzione per allontanare il sensore dal Pi è un cavo che consente al cappello Sense di allontanarsi dal Pi. Un 6″, 40-pin IDE maschio a femmina cavo di prolunga cavo farà il trucco.

Raspberry Pi in un caso con cavo di prolunga di collegamento al senso CAPPELLO

Una volta che si decide sulle due opzioni, accendere il Pi. Dobbiamo installare la libreria Python per semplificare la lettura dei valori del sensore dal cappello Sense. Innanzitutto, dovrai assicurarti che tutto sia aggiornato sulla tua versione di Raspbian:

$ sudo apt-get update

Quindi, installare la libreria Sense HAT Python:

$ sudo apt-get install sense-hat

Riavvia il tuo Pi. Siamo pronti a testare il cappello Sense leggendo i dati del sensore da esso e inviando tali dati allo stato iniziale.

Creare un file chiamato sensehat e aprirlo nell’editor di testo inserendo il follwoing nel prompt dei comandi:

$ nano sensehat.py

Copia e incolla il codice qui sotto nell’editor di testo.

Si noti sulla prima riga che stiamo importando la libreria SenseHat nello script. Prima di eseguire questo script, abbiamo bisogno di impostare i nostri parametri utente.

In particolare, è necessario impostare ACCESS_KEY sulla chiave di accesso dell’account di stato iniziale. È possibile modificare BUCKET_NAME e SENSOR_LOCATION_NAME nella posizione effettiva del sensore. Salvare e uscire dall’editor di testo.

Al prompt dei comandi sul tuo Pi, esegui lo script:

$ sudo python sensehat.py

Ora avrai l’invio dei dati a un dashboard di stato iniziale. Vai alla sezione finale di questo articolo per i dettagli su come personalizzare la dashboard.

Personalizza il tuo Dashboard di stato iniziale

Con il tuo sensore di temperatura Raspberry Pi integrato ora puoi andare al tuo account di stato iniziale e guardare i tuoi dati. È possibile fare clic destro su una tessera per cambiare il tipo di grafico e fare clic su Modifica piastrelle per ridimensionare e spostare le piastrelle in giro. Consiglierei di utilizzare il termostato calibro per la temperatura e il livello del liquido calibro per l’umidità. È possibile creare grafici a linee sia per la temperatura e l’umidità per vedere i cambiamenti nel tempo. È inoltre possibile aggiungere un’immagine di sfondo alla dashboard.

È possibile impostare avvisi di trigger in modo da poter ottenere un SMS o e-mail se la temperatura scende al di sotto o supera una certa soglia. Vai al tuo bucket di dati e fai clic su Impostazioni. Da lì vai alla scheda Trigger. Immettere la chiave di flusso che si desidera monitorare, l’operatore che si desidera utilizzare e il valore di soglia. Fare clic sul segno più per aggiungere il Trigger. Quindi inserisci la tua email o il tuo numero di telefono per ricevere l’avviso e fai clic sul segno più. Una volta impostati tutti i trigger fare clic sul pulsante Fine in basso.

Stato Iniziale temperatura di dashboard

Ora che hai creato un Raspberry Pi sensore di temperatura con un sensore e un Raspberry Pi, si può iniziare a pensare che altri dati ambientali è possibile monitorare avanti.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Previous post Master Gardener: gli alberi di Cassia sono facili da coltivare
Next post Apprendimento adattivo