Crea un monitor della temperatura Raspberry Pi utilizzando un Sense HAT e mostra letture regolari sulla sua matrice LED.

Esistono diversi modi in cui è possibile monitorare la temperatura ambiente utilizzando un computer a scheda singola Raspberry Pi, magari come parte della configurazione di una stazione meteorologica. Sebbene sia possibile utilizzare un sensore esterno collegato ai pin GPIO del Raspberry Pi, qui spiegheremo come monitorare la temperatura con un Raspberry Pi dotato di Sense HAT.

Cos'è il Sense HAT?

Credito immagine: Lampone Pi

Un ufficiale CAPPELLO Raspberry Pi (Hardware attached on top) scheda aggiuntiva progettata e prodotta dall'azienda Raspberry Pi, la Sense HAT è stata originariamente creata per essere utilizzata dagli astronauti a bordo della Stazione Spaziale Internazionale. Dal 2015, due computer Raspberry Pi dotati di Sense HAT vengono utilizzati in esperimenti scientifici progettati da scolari entrati nel progetto in corso Astro Pi sfida Queste due unità sono state da allora sostituite da versioni aggiornate basate su Raspberry Pi 4 e dotate di una fotocamera di alta qualità.

instagram viewer

Credito immagine: Lampone Pi

Anche se manca la speciale custodia argentata progettata per l'uso nello spazio, la scheda Sense HAT standard ha esattamente la stessa funzionalità. Compatibile con qualsiasi Modello Raspberry Pi con un'intestazione GPIO a 40 pin, è dotato di una serie di sensori integrati che gli consentono di monitorare l'ambiente circostante e anche di rilevare il proprio orientamento e movimento. Inoltre, dispone di una matrice LED RGB 8x8 per visualizzare testo, dati e immagini. C'è anche un mini joystick a cinque direzioni.

La gamma completa delle funzioni sensoriali di Sense HAT è la seguente:

  • Umidità: Un sensore STMicro HTS221 con intervallo di umidità relativa da 0 a 100%, oltre al rilevamento della temperatura da 0°C a 65°C ± 2°C (da 32°F a 149°F).
  • Pressione barometrica: Un sensore STMicro LPS25HB con un intervallo da 260 a 1260 hPa, oltre al rilevamento della temperatura da 15°C a 40°C ±0,5°C (da 59°F a 104°F).
  • Temperatura: Questo può essere letto dal sensore di umidità o pressione o misurato facendo una media di entrambe le letture.
  • Giroscopio: L'IMU LSM9DS1 di STMicro può misurare la rotazione del Sense HAT rispetto alla superficie della Terra (e la velocità con cui ruota).
  • Accelerometro: Un'altra funzione dell'IMU, può misurare la forza di accelerazione in più direzioni.
  • Magnetometro: Rilevando il campo magnetico terrestre, l’IMU può determinare la direzione del nord magnetico e quindi fornire una lettura della bussola.

Ora che sai cosa può fare questo HAT Raspberry Pi multiuso, è ora di iniziare con il progetto.

Passaggio 1: montare il Sense HAT

Per collegare il Sense HAT, assicurati innanzitutto che il tuo Raspberry Pi sia spento e disconnesso dall'alimentazione. Quindi spingere con attenzione il Sense HAT (con l'estensione dell'intestazione nera in dotazione montata) sull'intestazione GPIO a 40 pin del Raspberry Pi in modo che la scheda Sense HAT sia posizionata sopra la scheda Raspberry Pi. Assicurati che tutti i pin siano allineati correttamente e che entrambe le file siano collegate. Puoi anche utilizzare dei distanziali avvitati per fissarlo.

Puoi utilizzare qualsiasi modello Raspberry Pi standard dotato di header GPIO a 40 pin. Uno di limitazioni principali di un Raspberry Pi 400, tuttavia, è che il connettore GPIO si trova sul retro della tastiera integrata. Ciò significa che Sense HAT sarà rivolto all'indietro, quindi potresti voler utilizzare un cavo di prolunga GPIO per collegarlo.

Passaggio 2: configura il Raspberry Pi

Come con qualsiasi altro progetto, dovresti collegare una tastiera e un mouse USB e poi collega il tuo Raspberry Pi a un monitor o TV. Dovresti anche avere una scheda microSD inserita con il sistema operativo Raspberry Pi standard: se non l'hai già fatto, dai un'occhiata come installare un sistema operativo su un Raspberry Pi. A questo punto sei pronto per accendere l'alimentazione.

In alternativa, puoi utilizzare il tuo Raspberry Pi con Sense HAT in modalità headless, senza monitor collegato e connettersi al Raspberry Pi in remoto utilizzando SSH da un altro computer o dispositivo. In questo caso, non sarai in grado di utilizzare l'IDE Thonny Python, ma potrai comunque modificare i programmi utilizzando l'editor di testo nano ed eseguirli dalla riga di comando.

Il firmware Sense HAT dovrebbe essere installato per impostazione predefinita. Per ricontrollare, apri una finestra Terminale e inserisci:

sudo apt install sense-hat

Quindi, se il pacchetto è appena stato installato, riavvia il Raspberry Pi:

sudo reboot

Passaggio 3: iniziare a programmare in Python

Sebbene sia possibile utilizzare Raspberry Pi Sense HAT con il linguaggio di programmazione basato su blocchi Scratch, utilizzeremo Python per leggere e visualizzare le letture dei sensori.

L'IDE Thonny (ambiente di sviluppo integrato) è un buon modo per programmare Python su un Raspberry Pi, poiché ha molte funzionalità tra cui utili funzionalità di debug. Nella GUI desktop del sistema operativo Raspberry Pi, vai a Menù (icona lampone in alto a sinistra) > Programmazione > Thonny IDE per lanciarlo.

Passaggio 4: eseguire una lettura della temperatura

Nella finestra principale dell'IDE Thonny, inserire le seguenti righe di codice:


from sense_hat import SenseHat

sense = SenseHat()
sense.clear()

temp = sense.get_temperature()
print(temp)

La prima riga importa il file SensoHat classe da senso_cappello Libreria Python (preinstallata nel sistema operativo Raspberry Pi). Questo viene quindi assegnato a senso variabile. La terza riga cancella la matrice LED del Sense HAT.

Successivamente prendiamo la lettura della temperatura e la stampiamo nell'area Shell dell'IDE Thonny. Questo è in gradi Celsius, quindi potresti volerlo prima convertire in Fahrenheit:

temp = (sense.get_temperature() * 1.8 + 32)

La lettura del sensore di temperatura avrà diverse cifre dopo il punto decimale. Quindi useremo il girare funzione per arrotondarlo a una singola cifra decimale:

temp = round(temp, 1)

IL senso.get_temperatura() la funzione legge il sensore di temperatura integrato nel sensore di umidità. In alternativa, è possibile acquisire una lettura della temperatura dal sensore di pressione con senso.get_temperatura_da_pressione() o anche prendere entrambe le letture e calcolare una media media (aggiungendole e dividendole per due).

Passaggio 5: mostra la temperatura sul Sense HAT

Stampare una singola lettura della temperatura sulla Python Shell è un po’ noiosa, quindi prendiamo invece regolarmente una nuova lettura e mostriamola sulla matrice LED RGB del Sense HAT. Per visualizzare un messaggio di testo scorrevole, utilizziamo il mostra_messaggio funzione. Useremo anche a mentre: Vero loop per continuare a eseguire una nuova lettura ogni 10 secondi, per cui utilizziamo il file sonno funzione da tempo biblioteca.

Ecco il programma completo:

from sense_hat import SenseHat
from time import sleep

sense = SenseHat()
sense.clear()

whileTrue:
 temp = (sense.get_temperature() * 1.8 + 32)
 temp = round(temp, 1)
 message = "Temp: " + str(temp)
 sense.show_message(message)
 sleep (10)

Esegui questo codice e vedrai ogni nuova lettura della temperatura scorrere sulla matrice LED. Prova a soffiare sul Sense HAT per vedere se la temperatura cambia.

Le letture della temperatura potrebbero essere influenzate dal calore trasferito dalla CPU del Raspberry Pi appena sotto, quindi potrebbe essere necessaria una regolazione per ottenere una cifra più accurata. Un'altra soluzione è utilizzare un'intestazione di stacking per sollevare il Sense HAT più in alto sopra il Raspberry Pi.

Usa un Raspberry Pi per monitorare la temperatura

Anche se per questo progetto potresti utilizzare un sensore di temperatura autonomo, Sense HAT semplifica il monitoraggio della temperatura con il tuo Lampone Pi. Puoi anche usarlo per acquisire una serie di altre letture dei sensori, come la pressione barometrica e l'umidità relativa, e mostrarle sul suo LED matrice.