Questo tutorial è parte di: Sensore digitale di umidità relativa e temperatura HTU21D
Video relativi al sensore digitale di umidità relativa e temperatura HTU21D. I link ad altri video si trovano sotto questo articolo.
Lezione 35-2: Utilizzo del sensore di temperatura HTU21D - Codice personalizzato
In questo tutorial, esploreremo come utilizzare il sensore di temperatura HTU21D con Arduino per misurare temperatura e umidità. L'HTU21D è un sensore affidabile e a basso consumo energetico che comunica tramite I2C, rendendolo facile da integrare nei tuoi progetti. Alla fine di questa lezione, avrai un codice funzionante che legge la temperatura in gradi Celsius, Fahrenheit e Kelvin, oltre all'umidità relativa.

Prima di immergerci nel cablaggio e nel codice, è essenziale comprendere i componenti coinvolti. Il sensore HTU21D richiede connessioni minime: alimentazione, massa e due fili I2C per il trasferimento dei dati. Questa semplicità lo rende un'ottima scelta per varie applicazioni, dalle stazioni meteorologiche ai dispositivi per la casa intelligente. Per una guida visiva, fai riferimento al video al timestamp 03:45.
Spiegazione dell'hardware
Il componente principale di questo progetto è il sensore HTU21D, che misura temperatura e umidità. Questo sensore può operare con tensioni da 1.5V a 3.6V, rendendolo versatile per diverse applicazioni. Fornisce letture ad alta risoluzione, con misurazioni della temperatura che vanno da -40°C a +125°C e letture di umidità con una risoluzione dello 0,04%.
Inoltre, il sensore utilizza la comunicazione I2C, che richiede due pin: SDA (linea dei dati) e SCL (linea di clock). Questo consente un'integrazione semplice con Arduino e altri microcontrollori senza la necessità di cablaggi complessi. La libreria Adafruit semplifica l'interazione con il sensore, gestendo il recupero dei dati e i protocolli di comunicazione in modo fluido.
Dettagli del datasheet
| Produttore | TE Connectivity |
|---|---|
| Numero di parte | HTU21D-F |
| Tensione logica/IO | 1,5 - 3,6 V |
| Tensione di alimentazione | 3,3 V |
| Consumo attuale (inattivo) | 0,02 µA (tip.) |
| Consumo attuale (attivo) | 450 µA (tip.) |
| Intervallo di temperatura | -40 a +125 °C |
| Intervallo di umidità | 0 a 100 %UR |
| Risoluzione | 0,04 %UR; 0,01 °C |
| Pacchetto | 6-pin DFN |
- Assicurati di fornire una corretta alimentazione per evitare danni al sensore.
- Utilizzare resistori pull-up sulle linee SDA e SCL se non sono integrati.
- Mantieni le connessioni dei sensori brevi per ridurre al minimo il rumore.
- Monitora la tensione durante il funzionamento per mantenere la stabilità.
- Considera di utilizzare un condensatore per il disaccoppiamento vicino ai pin di alimentazione.
Istruzioni di cablaggio

Per cablare il sensore di temperatura HTU21D, inizia collegando l'alimentazione e la massa. Collega il pin sinistro del sensore a una fonte di 3,3 V, assicurandoti che possa gestire la tensione richiesta. Il secondo pin, tipicamente contrassegnato in rosso, dovrebbe andare a terra.
Successivamente, collega il pin SDA del sensore al pinA4sull'Arduino, che funge da linea dati per la comunicazione I2C. Quindi, collega il pin SCL al pinA5, che funge da linea della cronologia. Assicurati che queste connessioni siano sicure, poiché cavi allentati possono portare a letture intermittenti o a un'interruzione nella comunicazione con il sensore.
Esempi di codice e guida passo passo
Nel codice, iniziamo includendo le librerie necessarie e inizializzando il sensore. La rigaAdafruit_HTU21DF htu = Adafruit_HTU21DF();crea un'istanza della classe sensore. Nelsetup()funzione, iniziamo la comunicazione seriale e verifichiamo se il sensore è collegato correttamente.
void setup() {
Serial.begin(9600);
if (!htu.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}Questo frammento controlla se il sensore sta funzionando correttamente. In caso contrario, stampa un messaggio di errore e interrompe il programma. Nelloop()funzione, leggiamo continuamente i valori di temperatura e umidità.
void loop() {
Serial.print(getHTU('C'));
Serial.print("C");
Serial.print(getHTU('H'));
Serial.println("%");
delay(1000);
}Qui, la funzionegetHTU()viene chiamato con parametri diversi per recuperare la temperatura in gradi Celsius e l'umidità. Il ritardo garantisce che le letture vengano effettuate ogni secondo, fornendo un output fluido sul monitor seriale. Il codice completo è disponibile per riferimento sotto l'articolo.
Dimostrazione / Cosa Aspettarsi
Una volta che tutto è collegato correttamente e il codice è caricato, dovresti vedere le letture di temperatura e umidità stampate nel monitor seriale. La temperatura sarà visualizzata in Celsius, seguita dalla corrispondente percentuale di umidità. Se applichi calore al sensore, dovresti osservare l'aumento della temperatura di conseguenza (nel video alle 10:15).
Fai attenzione ai limiti del sensore; se la temperatura supera i 125 °C, potrebbe restituire una lettura errata o visualizzare zero. Assicurati sempre che le tue connessioni siano sicure e che il sensore sia alimentato correttamente per evitare problemi durante il funzionamento.
Timestamp video
- 00:00Introduzione
- 03:45Cablaggio del sensore
- 05:30Guida al codice
- 10:15Dimostrazione
- 12:00Conclusione
Questo tutorial è parte di: Sensore digitale di umidità relativa e temperatura HTU21D
- Lezione 35-1: Utilizzo del sensore di temperatura HTU21D
- Lezione 35: Utilizzo del sensore di temperatura HTU21D con Arduino
- Lezione 36: Utilizzare il sensore di temperatura HTU21D con un LCD Corso Arduino passo dopo passo
- Utilizzare due ulteriori sensori di umidità e temperatura HTU21DF con Arduino
- Visualizzazione della temperatura da un HTU21D su un LCD
- Visualizzazione della temperatura da un HTU21D come un grafico a barre su un LCD
- Come utilizzare il sensore di umidità e temperatura HTU21DF con Arduino (Codice di base)
- Come utilizzare il sensore di umidità e temperatura HTU21DF con Arduino (Codice personalizzato)
Cose di cui potresti avere bisogno
-
Amazon
-
eBayAcquista HTU21D da eBayebay.us
-
AliExpressAcquista HTU21D o SHT21 su AliExpresss.click.aliexpress.com
Risorse e riferimenti
-
EsternoAdafruit HTU21D Libreria (GitHub)github.com
-
EsternoDifferenza tra HTU21DF e HTU21D (immagine)robojax.com
-
EsternoScheda tecnica HTU21D (PDF)cdn-shop.adafruit.com
File📁
Scheda tecnica (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB