Ce tutoriel fait partie de: Capteur numérique d'humidité relative et de température HTU21D
Vidéos relatives au capteur numérique d'humidité relative et de température HTU21D. Des liens vers d'autres vidéos se trouvent ci-dessous.
Leçon 36 : Utilisation du capteur de température HTU21D avec un écran LCD Arduino Cours étape par étape
Le capteur de température et d'humidité HTU21D est un choix populaire pour de nombreux projets Arduino en raison de sa facilité d'utilisation et de sa précision. Dans cette leçon, nous allons créer un projet simple qui lit les données de température et d'humidité du capteur et les affiche sur un écran LCD. À la fin de ce tutoriel, vous aurez une configuration fonctionnelle qui affiche en continu la température en Celsius, Fahrenheit et Kelvin, ainsi que le pourcentage d'humidité relative. Pour plus de précisions, vous pouvez consulter la vidéo (dans la vidéo à mm:ss).
Matériel expliqué
Le composant principal de ce projet est le capteur de température et d'humidité HTU21D, qui communique via I2C. Ce capteur fonctionne dans une plage de tension de 1,5 à 3,6 volts, ce qui le rend adapté à la fois aux systèmes 3,3V et 5V. Il consomme très peu d'énergie, typiquement seulement 0,02 microampères au repos et 450 microampères pendant la mesure. En plus du HTU21D, nous utiliserons également un affichage LCD, en particulier le LCD1602 avec I2C. Cet affichage permet une sortie facile des données textuelles et nécessite seulement deux broches pour la communication : SDA (ligne de données) et SCL (ligne d'horloge). La combinaison de ces composants nous permettra de créer un affichage informatif pour surveiller les niveaux de température et d'humidité.
Détails de la fiche technique
| Fabricant | TE Connectivity |
|---|---|
| Numéro de pièce | HTU21D-F |
| Tension logique/IO | 1,5 - 3,6 V |
| Tension d'alimentation | 3,3 V (typ.) |
| Intensité du courant de sortie (typ.) | 0,02 µA (au repos), 450 µA (mesure) |
| Plage de température | -40 à +125 °C |
| Plage d'humidité | 0 à 100 %HR |
| Résolution (Température) | 0,01 °C |
| Résolution (Humidité) | 0,04 %HR |
| Colis | DFN-6 |
- Utilisez une résistance de tirage pour les lignes SDA et SCL si elles ne sont pas intégrées.
- Assurez-vous de la bonne tension d'alimentation pour éviter d'endommager le capteur.
- Maintenez un câblage approprié pour éviter les erreurs de communication.
- Vérifiez l'adresse I2C si le capteur ne répond pas.
- Utilisez un délai entre les lectures pour éviter la surcharge du capteur.
- Assurez-vous que l'affichage LCD est compatible avec la communication I2C.
Instructions de câblage
Pour câbler le capteur HTU21D et l'écran LCD, commencez par les connexions d'alimentation. Connectez la broche de gauche du HTU21D à la source d'alimentation de 3,3V et la seconde broche (souvent rouge) à la terre. Ensuite, connectez la broche SDA du HTU21D à la broche analogique A4 de l'Arduino, et la broche SCL à la broche analogique A5. Pour l'écran LCD1602, connectez la broche VCC à la même source d'alimentation de 3,3V et connectez la broche GND à la terre. La broche SDA sur l'écran LCD doit également être connectée à A4, et la broche SCL doit être connectée à A5, permettant aux deux composants de partager le bus I2C. Assurez-vous que toutes les connexions sont sécurisées pour faciliter une communication adéquate entre l'Arduino, le capteur et l'écran.
Exemples de code et guide étape par étape
Le code suivant initialise le capteur HTU21D et l'affichage LCD. Dans la fonction de configuration, l'écran LCD est préparé à être utilisé et le capteur est vérifié pour sa connectivité :
void setup() {
lcd.begin();
lcd.backlight();
if (!htu.begin()) {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("sensor missing");
while (1);
} else {
lcd.print("Robojax HTUD1DF");
lcd.setCursor(0,1);
lcd.print("Demo");
}
delay(2000);
}Cet extrait vérifie si le capteur est correctement connecté. Sinon, il affiche un message d'erreur sur l'écran LCD et interrompt le programme. Si le capteur fonctionne, il affiche un message de démonstration pendant deux secondes. La fonction de boucle est l'endroit où se font les principales lectures et affichages. Ici, nous appelons la fonction `lcdDisplay` pour montrer la température dans différentes unités :
void loop() {
lcd.clear(); // clear previous values from screen
lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');
lcdDisplay(0, 1, "Fahrenheit: ", 10, 1, getHTU('F'), 'd');
delay(5000);
}Dans cette boucle, l'écran LCD est effacé et les lectures de température en Celsius et en Fahrenheit sont affichées. La fonction `getHTU` est appelée avec le caractère 'C' pour Celsius et 'F' pour Fahrenheit, respectivement. Enfin, la fonction `getHTU` est définie pour lire la température ou l'humidité en fonction du caractère d'entrée :
float getHTU(char type) {
float temp = htu.readTemperature();
float rel_hum = htu.readHumidity();
if(type =='F') {
return temp * 9/5 + 32; // convert to Fahrenheit
} else if(type =='K') {
return temp + 273.15; // convert to Kelvin
} else if(type =='H') {
return rel_hum; // return relative humidity
} else {
return temp; // return Celsius
}
}Cette fonction lit la température et l'humidité du capteur et convertit la température dans l'unité demandée. Assurez-vous de consulter le code complet chargé sous l'article pour plus de détails.
Démonstration / À quoi s'attendre
Une fois le câblage terminé et le code téléchargé, vous devriez voir les valeurs de température et d'humidité affichées sur l'écran LCD. Les relevés se mettront à jour toutes les quelques secondes, reflétant les conditions actuelles. Si vous appliquez de la chaleur au capteur, vous devriez remarquer que la température augmente en conséquence, tandis que l'humidité devrait diminuer légèrement. Soyez conscient de la limite de température maximale du capteur; dépasser cela peut entraîner des relevés inexactes ou une défaillance du capteur (dans la vidéo à mm:ss).
Horodatages vidéo
- 00:00- Introduction au projet
- 01:15- Instructions de câblage
- 03:30- Revue de code
- 10:00- Démonstration de la configuration
Ce tutoriel fait partie de: Capteur numérique d'humidité relative et de température HTU21D
- Leçon 35-1 : Utilisation du capteur de température HTU21D
- Leçon 35-2 : Utilisation du capteur de température HTU21D - Code personnalisé
- Leçon 35 : Utilisation du capteur de température HTU21D avec Arduino
- Utilisation de deux capteurs d'humidité et de température HTU21DF supplémentaires avec Arduino
- Affichage de la température d'un HTU21D sur un écran LCD
- Affichage de la température d'un HTU21D sous forme de graphique à barres sur un LCD
- Comment utiliser le capteur d'humidité et de température HTU21DF avec Arduino (code de base)
- Comment utiliser le capteur d'humidité et de température HTU21DF avec Arduino (code personnalisé)
Ce dont vous pourriez avoir besoin
-
Amazon
-
eBayAchetez le HTU21D sur eBayebay.us
-
AliExpressAchetez HTU21D ou SHT21 sur AliExpresss.click.aliexpress.com
Ressources et références
-
ExterneBibliothèque Adafruit HTU21D (GitHub)github.com
-
ExterneDifférence entre HTU21DF et HTU21D (image)robojax.com
Fichiers📁
Fiche technique (pdf)
-
HTU21D_temerature_humidity_datasheet
HTU21D_temerature_humidity_datasheet.pdf0.96 MB