Affichage de la température d'un HTU21D sur un écran LCD

Affichage de la température d'un HTU21D sur un écran LCD

Dans ce tutoriel, nous allons apprendre à afficher les relevés de température du capteur de température et d'humidité HTU21D sur un écran LCD. Le résultat sera une configuration fonctionnelle où la température peut être visualisée en degrés Celsius, Fahrenheit et Kelvin, avec l'humidité relative affichée sur le même écran. Ce projet vous donnera une expérience pratique avec la communication I2C et la gestion des données de capteurs de base. Pour un guide visuel détaillé, assurez-vous de regarder la vidéo (dans la vidéo à 00:00).

HTU21D module

Matériel expliqué

Les principaux composants de ce projet incluent le capteur HTU21D et l'afficheur LCD. Le HTU21D est un capteur numérique d'humidité et de température qui communique via le protocole I2C. Il fournit des mesures précises de la température en degrés Celsius ou Fahrenheit et de l'humidité relative en pourcentage. Le capteur fonctionne généralement à une tension de 3.3V mais peut également fonctionner avec des systèmes de 5V. L'afficheur LCD que nous allons utiliser est un LCD 16x2 avec une interface I2C. Ce type d'afficheur nécessite seulement deux fils pour la communication de données, ce qui facilite la connexion avec des microcontrôleurs comme Arduino. L'interface I2C permet de connecter plusieurs dispositifs sur le même bus, simplifiant le câblage et réduisant le nombre de broches utilisées.

Détails de la fiche technique

FabricantAdafruit
Numéro de pièceHTU21D-F
Tension logique/IO3,3 V (typ.)
Tension d'alimentation1,5 V à 3,6 V
Courant de sortie0,5 mA (typ.)
Courant de crête1,5 mA (max.)
Plage de température-40 à 125 °C
Plage d'humidité0 à 100 %HR
ColisDFN-6
Notes / variantesNone

  • Assurez-vous que les niveaux de tension sont corrects pour éviter d'endommager le capteur.
  • Utilisez des résistances de tirage sur les lignes SDA et SCL si nécessaire.
  • Vérifiez l'adresse I2C avec un scanner pour garantir une configuration correcte.
  • Manipulez la sortie du capteur avec soin pour éviter les erreurs de lecture.
  • Éloignez le capteur des sources de chaleur lors des mesures.

Instructions de câblage

Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD

Pour connecter le capteur HTU21D à l'Arduino, branchez la broche VCC du capteur à la sortie 3,3 V de l'Arduino. Ensuite, connectez la broche GND du capteur à la masse de l'Arduino. La broche SDA, qui est utilisée pour la transmission de données, doit être connectée à la broche A4 de l'Arduino. De même, connectez la broche SCL, qui est utilisée pour le signal d'horloge, à la broche A5 de l'Arduino. Assurez-vous que votre écran LCD est également correctement connecté ; l'adresse I2C pour l'écran LCD dans cette configuration est généralement 0x3F. Si vous utilisez un type d'écran LCD différent ou une adresse I2C différente, assurez-vous d'ajuster le code en conséquence. Après le câblage, vérifiez qu'il n'y a pas de connexions lâches avant d'allumer l'Arduino.

Exemples de code et guide étape par étape

Dans le code, nous commençons par inclure les bibliothèques nécessaires pour le capteur HTU21D et l'écran LCD :

#include 
#include "Adafruit_HTU21DF.h"
#include 

Cela prépare l'environnement pour utiliser à la fois le capteur et l'affichage. La bibliothèque `Adafruit_HTU21DF` gère la fonctionnalité du capteur, tandis que la bibliothèque `LiquidCrystal_I2C` gère l'écran LCD. Ensuite, nous créons une instance pour le capteur et l'écran LCD :

Adafruit_HTU21DF htu = Adafruit_HTU21DF();
LiquidCrystal_I2C lcd(0x3F, 16, 2);

Ici,htuest l'objet pour le capteur HTU21D, etlcdest l'objet pour l'afficheur LCD. L'adresse I2C pour le LCD est fixée à 0x3F, que vous devrez peut-être vérifier en fonction de votre configuration.setup()fonction, nous initialisons l'affichage à cristaux liquides et vérifions si le capteur est opérationnel :

void setup() {
  lcd.begin();  
  lcd.backlight();
  if (!htu.begin()) {
      lcd.print("Sensor missing"); 
      while (1);
  }
  lcd.print("HTU21D Ready");
}

Ce code initialise l'écran LCD et vérifie la présence du capteur. Si le capteur n'est pas détecté, il affichera "Capteur manquant" et arrêtera le programme.loop()fonction, nous lisons en continu les valeurs de température et d'humidité et les affichons :

void loop() {
   lcd.clear();
   lcdDisplay(0, 0, "Celsius: ", 10, 0, getHTU('C'), 'd');  
   lcdDisplay(0, 1, "Humidity: ", 10, 1, getHTU('H'), '%');  
   delay(5000);
}

Dans cet extrait, nous effaçons l'écran LCD, puis nous appelons lelcdDisplay()fonction pour afficher la température en Celsius et l'humidité. LegetHTU()la fonction récupère la température ou l'humidité en fonction du caractère passé.

Démonstration / À quoi s'attendre

Une fois la configuration terminée et le code téléchargé sur l'Arduino, l'écran LCD doit afficher la température actuelle en Celsius et l'humidité relative. Si tout est correctement connecté, vous verrez les valeurs se mettre à jour toutes les quelques secondes. Faites attention aux pièges courants, tels que des connexions inversées ou des adresses I2C incorrectes, qui peuvent entraîner des échecs de communication avec le capteur (dans la vidéo à 05:00).

Horodatages vidéo

  • 00:00- Introduction
  • 01:30- Instructions de câblage
  • 03:15- Explication du code
  • 04:50- Démonstration
  • 05:40- Conclusion

Images

LCD1602 ou LCD2004 avec capteur d'humidité et de température HTU21DF avec Arduino
LCD1602 ou LCD2004 avec capteur d'humidité et de température HTU21DF avec Arduino
Arduino wiring for HTU21DF light intesity sensor with LCD
Arduino wiring for HTU21DF light intesity sensor with LCD
HTU21D module
HTU21D module
HTU21D module-back
HTU21D module-back
213-Display Temperature from HTU21DF on LCD1602-I2C or LCD2004
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fiche technique (pdf)