Visualizzazione della temperatura da un HTU21D come un grafico a barre su un LCD

Visualizzazione della temperatura da un HTU21D come un grafico a barre su un LCD

In questo tutorial, impareremo come visualizzare le letture di temperatura da un sensore di temperatura e umidità HTU21D su un display LCD sotto forma di grafico a barre. Le letture includeranno valori in Celsius, Fahrenheit, Kelvin e umidità relativa, fornendo una panoramica completa delle condizioni ambientali. Questo progetto ti aiuterà a capire come collegare correttamente i componenti e implementare il codice necessario per far funzionare tutto in modo fluido.

HTU21D module

Per coloro che desiderano una guida visiva, assicurati di controllare il video associato a questo tutorial (nel video a :00).

Hardware Spiegato

I principali componenti di questo progetto includono il sensore HTU21D e il display LCD 1602. L'HTU21D è un sensore digitale di umidità e temperatura che comunica tramite I2C. Fornisce letture accurate di temperatura e umidità, che possono essere facilmente accessibili attraverso la sua libreria. Il display LCD 1602, d'altra parte, mostra le letture in un formato leggibile dall'uomo, consentendo valutazioni rapide delle condizioni ambientali.

L'HTU21D utilizza un semplice interfaccio I2C, rendendo facile la connessione e la comunicazione con microcontrollori come l'Arduino. Il display LCD 1602 utilizza anch'esso l'I2C, il che semplifica il cablaggio riducendo il numero di pin necessari per collegarsi all'Arduino. Questo consente una configurazione più pulita fornendo comunque un'uscita visiva chiara.

Dettagli della scheda tecnica

ProduttoreAdafruit
Numero di parteHTU21D
Tensione logica/IO3,3 V (tip.)
Tensione di alimentazione1,5 - 3,6 V
Intervallo di temperatura-40 a 125 °C
Intervallo di umidità0 a 100 %UR
Risoluzione0,01 °C / 0,04 %UR
ComunicazioneI2C
Pacchetto4-pin LGA

  • Usa 3,3 V per alimentare l'HTU21D; collegarlo a 5 V può danneggiarlo.
  • Assicurati che siano utilizzati corretti resistori di pull-up sulle linee I2C (SDA e SCL).
  • Tieni il sensore lontano dalle fonti di calore durante i test.
  • Controlla l'indirizzo I2C corretto utilizzando uno sketch di scanner I2C.
  • Assicurati che il LCD sia correttamente inizializzato con l'indirizzo giusto.

Istruzioni di cablaggio

Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD

Per collegare il sensore HTU21D e il display LCD 1602, segui attentamente questi passaggi:

Innanzitutto, collega il sensore HTU21D. Collega il primo pin (VCC) al pin da 3,3 V sull'Arduino. Il secondo pin (GND) dovrebbe essere collegato a terra (GND) dell'Arduino. Il terzo pin (SDA) è collegato al pin A4 sull'Arduino, e il quarto pin (SCL) si collega al pin A5. Assicurati di utilizzare i colori dei fili corretti per chiarezza, usando il rosso per VCC, il nero per GND, l'arancione per SDA e il giallo per SCL.

Successivamente, per il display LCD 1602, collegare il pin VCC al pin da 5 V sull'Arduino e il pin GND a terra. Il pin SDA dell'LCDC dovrebbe essere collegato allo stesso pin A4 utilizzato per l'HTU21D, e il pin SCL dovrebbe collegarsi al pin A5. Questa configurazione consente sia al sensore che al display di comunicare tramite il protocollo I2C.

Esempi di codice e guida passo passo

Nel codice, il primo passo è includere le librerie necessarie per il sensore e l'LCD. La riga#include è essenziale per la comunicazione I2C, mentre#include "Adafruit_HTU21DF.h"inizializza il sensore HTU21D. La riga successiva crea un'istanza della classe HTU21D:

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

Questa riga configura il sensore per l'uso nel programma, permettendoci di chiamare i suoi metodi in seguito per leggere i valori di temperatura e umidità.

Dentro ilsetup()Funzione, iniziamo il monitor seriale e il display LCD. Le seguenti righe controllano se il sensore funziona correttamente:

if (htu.begin()) {
    lcd.print("HTU21DF Bargraph");  
} else {
    lcd.print("missing HTU21DF"); 
    while(1); // Pause forever.
}

Se il sensore non riesce a inizializzarsi, il programma visualizzerà un messaggio di errore e interromperà l'esecuzione. Questo è fondamentale per il debug e garantisce che il sensore sia collegato correttamente.

Nellaloop()funzione, le letture della temperatura vengono rilevate e visualizzate. La lineafloat T = getHTU('H');recupera la temperatura o l'umidità in base al parametro passato. Il valore recuperato viene quindi visualizzato sul display LCD:

lcd.setCursor (0,1); 
lcd.print(T); // print  
lcd.print((char)223); // prints degree symbol
lcd.print("C"); //

Questo codice posiziona il cursore sulla seconda riga del LCD e stampa il valore della temperatura insieme al simbolo del grado. L'uso di(char)223è un trucco utile per visualizzare il simbolo del grado sul LCD.

Dimostrazione / Cosa Aspettarsi

Una volta che tutto è impostato e il codice è caricato, dovresti vedere le letture della temperatura visualizzate sul display LCD come un grafico a barre. Le letture si aggiorneranno continuamente, riflettendo la temperatura e l'umidità attuali. Se soffii aria calda sul sensore, vedrai la temperatura salire rapidamente, confermando che il sistema funziona come previsto. Fai attenzione alla polarità inversa o ai cablaggi errati, poiché possono portare a malfunzionamenti o danni (nel video al :30).

Timestamp video

  • 00:00- Introduzione
  • 01:30- Spiegazione del cablaggio
  • 02:30- Analisi del Codice
  • 04:00- Dimostrazione
  • 05:30- Conclusione

Immagini

Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
214-Arduino code using HTU21D-F Humidity & Temperature on LCD bargraph
Lingua: C++
Copia!

File📁

Scheda tecnica (pdf)