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.
Utilizzare due ulteriori sensori di umidità e temperatura HTU21DF con Arduino
In questo tutorial, impareremo come collegare e utilizzare due sensori di temperatura e umidità HTU21DF con un Arduino. Il sensore HTU21DF è conosciuto per la sua precisione e il basso consumo energetico, rendendolo ideale per varie applicazioni. Alla fine di questo tutorial, sarai in grado di leggere i valori di temperatura e umidità da entrambi i sensori e visualizzarli sul monitor seriale.

Per iniziare, esamineremo brevemente i componenti hardware coinvolti in questo progetto. I sensori HTU21DF comunicano tramite I2C, che richiede solo due linee di dati oltre alle connessioni di alimentazione e massa. L'Arduino leggerà i dati del sensore e stamperà i risultati nel monitor seriale, consentendoti di osservare in tempo reale le variazioni di temperatura e umidità.
Per una comprensione più chiara del processo di cablaggio e codifica, considera di guardare il video associato (nel video a 01:30). Approfondiamo i dettagli!
Hardware spiegato
Il componente principale di questo progetto è il sensore HTU21DF, che misura la temperatura e l'umidità relativa. Questo sensore funziona utilizzando la comunicazione I2C, che semplifica il cablaggio richiedendo solo due linee dati. È in grado di misurare temperature da -40°C a 125°C e livelli di umidità da 0% a 100% con una risoluzione dello 0,04%.
Quando il sensore non sta misurando attivamente, consuma solo 0,04 µA, rendendolo adatto ad applicazioni a batteria. Durante la misurazione, il consumo di corrente è di circa 400 µA, che è comunque relativamente basso per la maggior parte dei progetti.
Dettagli del datasheet
| Produttore | TE Connectivity |
|---|---|
| Numero di parte | HTU21DF |
| Tensione logica/IO | 1,5 - 3,6 V |
| Tensione di alimentazione | 3,3 V |
| Corrente di uscita (per canale) | 0,4 mA (misurazione) |
| Corrente di picco (per canale) | 450 µA (max) |
| Indicazioni sulla frequenza PWM | Non applicabile |
| Soglie logiche di ingresso | 0,3 x VDDa 0,7 x VDD |
| Caduta di tensione / RDS(on)/ saturazione | N/A |
| Limiti termici | -40°C a +125°C |
| Pacchetto | 6-pin DFN |
| Note / varianti | Disponibile in diverse dimensioni di confezione |
- Alimentazione: 3,3 V raccomandato per prestazioni ottimali.
- Collegare SCL al pin di clock I2C (A5 su Arduino UNO).
- Collega SDA al pin dati I2C (A4 su Arduino UNO).
- Assicurati di avere un cablaggio corretto per evitare ingressi flottanti.
- Monitora il consumo corrente durante la misurazione per gestire la durata della batteria.
- Considera di utilizzare resistori di pull-up se necessario per le linee I2C.
Istruzioni per il cablaggio

Per cablare i sensori HTU21DF, inizia collegando il VCCcollega il pin di ciascun sensore al pin di 3.3 V sull'Arduino. Successivamente, collega il pin GND di ciascun sensore a un comune massa. Per la comunicazione I2C, collega il pin SDA di entrambi i sensori al pin A4 sull'Arduino e il pin SCL al pin A5. Assicurati che i sensori siano alimentati correttamente e che le connessioni dei dati siano sicure per facilitare la comunicazione.
Se stai utilizzando sensori o componenti aggiuntivi, assicurati che il loro cablaggio non interferisca con il bus I2C. I sensori HTU21DF possono essere collegati in parallelo allo stesso bus I2C, consentendo all'Arduino di leggere i dati da entrambi i sensori senza confusione.
Esempi di codice e guida passo passo
Il seguente codice inizializza i sensori HTU21DF e legge i loro valori di temperatura e umidità. Per prima cosa, includiamo le librerie necessarie e creiamo le istanze per entrambi i sensori:
#include
#include "Adafruit_HTU21DF.h"
Adafruit_HTU21DF htu1 = Adafruit_HTU21DF(); // create object for first sensor
Adafruit_HTU21DF htu2 = Adafruit_HTU21DF(); // create object for second sensor
Il codice sopra imposta le librerie necessarie e crea due oggetti sensore,htu1ehtu2, che sarà utilizzato per leggere i dati da ciascun sensore in modo indipendente.
Successivo, nelsetup()funzione, inizializziamo il monitor seriale e verifichiamo se i sensori sono connessi:
void setup() {
Serial.begin(9600);
if (!htu1.begin() || !htu2.begin()) {
Serial.println("Couldn't find sensor!");
while (1);
}
}
Questa sezione del codice inizializza la comunicazione seriale a 9600 baud e verifica se entrambi i sensori funzionano. Se un sensore non viene rilevato, stamperà un messaggio di errore e fermerà il programma.
Nel ciclo principale, leggiamo i valori di temperatura e umidità da entrambi i sensori e li visualizziamo:
void loop() {
float temp1 = htu1.readTemperature();
float rel_hum1 = htu1.readHumidity();
float temp2 = htu2.readTemperature();
float rel_hum2 = htu2.readHumidity();
Serial.print("Sensor 1 Temp: "); Serial.print(temp1); Serial.print(" C");
Serial.print("\tSensor 1 Humidity: "); Serial.print(rel_hum1); Serial.println(" %");
Serial.print("Sensor 2 Temp: "); Serial.print(temp2); Serial.print(" C");
Serial.print("\tSensor 2 Humidity: "); Serial.print(rel_hum2); Serial.println(" %");
delay(500);
}
Questo ciclo legge continuamente e stampa la temperatura e l'umidità da entrambi i sensori ogni 500 millisecondi. Puoi osservare come i valori cambiano in risposta alle condizioni ambientali.
Dimostrazione / Cosa Aspettarsi
Quando esegui il codice, il monitor seriale mostrerà i valori di temperatura e umidità per entrambi i sensori. Puoi applicare calore, come quello di un pistola termica, per osservare come le letture di temperatura aumentano mentre i livelli di umidità possono diminuire (nel video alle 12:30). Se la temperatura supera il limite massimo misurabile di 125°C, il sensore potrebbe restituire zero o un errore, indicando che non può leggere il valore.
Fai attenzione agli errori di cablaggio, come le connessioni invertite o gli ingressi flottanti, che possono portare a letture errate. Seguendo i passaggi descritti in questo tutorial, dovresti essere in grado di implementare con successo i sensori HTU21DF e monitorare le loro letture in modo efficace.
Timestamp video
- 00:00- Introduzione
- 01:30- Spiegazione del cablaggio
- 02:45- Spiegazione del Codice
- 12:30- Dimostrazione con pistola termica
- 14:00- Conclusione
Questo tutorial è parte di: Sensore digitale di umidità relativa e temperatura HTU21D
- Lezione 35-1: Utilizzo del sensore di temperatura HTU21D
- Lezione 35-2: Utilizzo del sensore di temperatura HTU21D - Codice personalizzato
- 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
- 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
File📁
Scheda tecnica (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB