Utilizzare due ulteriori sensori di umidità e temperatura HTU21DF con Arduino

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.

HTU21D module

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

ProduttoreTE Connectivity
Numero di parteHTU21DF
Tensione logica/IO1,5 - 3,6 V
Tensione di alimentazione3,3 V
Corrente di uscita (per canale)0,4 mA (misurazione)
Corrente di picco (per canale)450 µA (max)
Indicazioni sulla frequenza PWMNon applicabile
Soglie logiche di ingresso0,3 x VDDa 0,7 x VDD
Caduta di tensione / RDS(on)/ saturazioneN/A
Limiti termici-40°C a +125°C
Pacchetto6-pin DFN
Note / variantiDisponibile 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

Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor

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

Immagini

thumb_robojax_HTU21DF_types-1756423961-8524
thumb_robojax_HTU21DF_types-1756423961-8524
Arduino wiring for HTU21DF light intesity sensor
Arduino wiring for HTU21DF light intesity sensor
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
212-Arduino code using HTU21D-F Humidity & Temperature Sensor (basic)
Lingua: C++
Copia!

Cose di cui potresti avere bisogno

Risorse e riferimenti

File📁

Scheda tecnica (pdf)