Utilisation de deux capteurs d'humidité et de température HTU21DF supplémentaires avec Arduino

Utilisation de deux capteurs d'humidité et de température HTU21DF supplémentaires avec Arduino

Dans ce tutoriel, nous allons apprendre à connecter et utiliser deux capteurs de température et d'humidité HTU21DF avec un Arduino. Le capteur HTU21DF est réputé pour sa précision et sa faible consommation d'énergie, ce qui le rend idéal pour diverses applications. À la fin de ce tutoriel, vous serez en mesure de lire les valeurs de température et d'humidité des deux capteurs et de les afficher sur le moniteur série.

HTU21D module

Pour commencer, nous allons passer brièvement en revue les composants matériels impliqués dans ce projet. Les capteurs HTU21DF communiquent via I2C, ce qui nécessite seulement deux lignes de données en plus des connexions d'alimentation et de masse. L'Arduino lira les données des capteurs et imprimera les résultats sur le moniteur série, vous permettant d'observer les variations de température et d'humidité en temps réel.

Pour une compréhension plus claire du processus de câblage et de codage, envisagez de regarder la vidéo associée (dans la vidéo à 01:30). Plongeons dans les détails !

Matériel expliqué

Le composant principal de ce projet est le capteur HTU21DF, qui mesure la température et l'humidité relative. Ce capteur fonctionne avec une communication I2C, ce qui simplifie le câblage en ne nécessitant que deux lignes de données. Il est capable de mesurer des températures allant de -40°C à 125°C et des niveaux d'humidité de 0% à 100% avec une résolution de 0,04%.

Lorsque le capteur ne mesure pas activement, il consomme seulement 0,04 µA, ce qui le rend adapté aux applications alimentées par batterie. Lors de la mesure, la consommation de courant est d'environ 400 µA, ce qui reste relativement faible pour la plupart des projets.

Détails de la fiche technique

FabricantTE Connectivity
Numéro de pièceHTU21DF
Tension logique/IO1,5 - 3,6 V
Tension d'alimentation3,3 V
Courant de sortie (par canal)0,4 mA (mesure)
Courant de crête (par canal)450 µA (max)
Directives sur la fréquence PWMNon applicable
Seuils de logique d'entrée0,3 x VDDà 0,7 x VDD
Chute de tension / RDS(on)/ saturationN/A
Limites thermiques-40°C à +125°C
PaquetDFN 6 broches
Notes / variantesDisponible en différentes tailles d'emballage

  • Alimentation : 3,3 V recommandé pour des performances optimales.
  • Connectez SCL au pin d'horloge I2C (A5 sur Arduino UNO).
  • Connectez SDA au pin de données I2C (A4 sur Arduino UNO).
  • Assurez-vous d'un câblage correct pour éviter les entrées flottantes.
  • Surveillez la consommation actuelle pendant la mesure pour gérer la durée de vie de la batterie.
  • Envisagez d'utiliser des résistances de tirage si nécessaire pour les lignes I2C.

Instructions de câblage

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

Pour câbler les capteurs HTU21DF, commencez par connecter le VCCbranche de chaque capteur au broche de 3,3 V sur l'Arduino. Ensuite, connectez la broche GND de chaque capteur à une masse commune. Pour la communication I2C, connectez la broche SDA des deux capteurs à la broche A4 de l'Arduino et la broche SCL à la broche A5. Assurez-vous que les capteurs sont correctement alimentés et que les connexions de données sont sécurisées pour faciliter la communication.

Si vous utilisez des capteurs ou des composants supplémentaires, assurez-vous que leur câblage n'interfère pas avec le bus I2C. Les capteurs HTU21DF peuvent être connectés en parallèle au même bus I2C, permettant à l'Arduino de lire les données des deux capteurs sans confusion.

Exemples de code et tutoriel

Le code suivant initialise les capteurs HTU21DF et lit leurs valeurs de température et d'humidité. Tout d'abord, nous incluons les bibliothèques nécessaires et créons des instances pour les deux capteurs :

#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

Le code ci-dessus configure les bibliothèques requises et crée deux objets capteurs,htu1ethtu2, qui sera utilisé pour lire les données de chaque capteur indépendamment.

Ensuite, dans lesetup()fonction, nous initialisons le moniteur série et vérifions si les capteurs sont connectés :

void setup() {
  Serial.begin(9600);
  if (!htu1.begin() || !htu2.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

Cette section du code initialise la communication série à 9600 bauds et vérifie si les deux capteurs fonctionnent. Si un capteur n'est pas détecté, un message d'erreur sera imprimé et le programme s'arrêtera.

Dans la boucle principale, nous lisons les valeurs de température et d'humidité des deux capteurs et les affichons :

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);
}

Cette boucle lit et imprime en continu la température et l'humidité des deux capteurs toutes les 500 millisecondes. Vous pouvez observer comment les valeurs changent en réponse aux conditions environnementales.

Démonstration / À quoi s'attendre

Lorsque vous exécutez le code, le moniteur série affichera les valeurs de température et d'humidité pour les deux capteurs. Vous pouvez appliquer de la chaleur, par exemple avec un pistolet à chaleur, pour observer comment les lectures de température augmentent tandis que les niveaux d'humidité peuvent diminuer (dans la vidéo à 12:30). Si la température dépasse la limite maximum mesurable de 125°C, le capteur peut renvoyer zéro ou une erreur, indiquant qu'il ne peut pas lire la valeur.

Soyez attentif aux erreurs de câblage, telles que des connexions inversées ou des entrées flottantes, qui peuvent conduire à des lectures incorrectes. En suivant les étapes décrites dans ce tutoriel, vous devriez être en mesure de mettre en œuvre avec succès les capteurs HTU21DF et de surveiller efficacement leurs lectures.

Horodatages de vidéo

  • 00:00- Introduction
  • 01:30- Explication du câblage
  • 02:45- Explication du code
  • 12:30- Démonstration avec pistolet à chaleur
  • 14:00- Conclusion

Images

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)
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fiche technique (pdf)