Code Arduino et vidéo pour un capteur numérique de température et d'humidité Aosong AM2320 avec écran LCD1602 et module I2C

Code Arduino et vidéo pour un capteur numérique de température et d'humidité Aosong AM2320 avec écran LCD1602 et module I2C

Dans ce tutoriel, nous allons explorer comment utiliser le capteur numérique de température et d'humidité Aosong AM2320 avec un écran LCD1602 doté d'un module I2C. L'objectif est d'afficher les mesures de température en Fahrenheit et en Celsius, ainsi que l'humidité relative. Cette configuration est idéale pour surveiller les conditions environnementales dans divers projets, ce qui en fait un ajout polyvalent à votre boîte à outils Arduino.

Nous utiliserons le capteur AM2320 pour recueillir les données de température et d'humidité, qui seront ensuite affichées sur l'écran LCD1602. Le module I2C simplifie le câblage, ne nécessitant que quatre connexions : VCC, GND, SDA et SCL. Pour bien comprendre le câblage et la programmation, je recommande de regarder la vidéo associée (dans la vidéo à 00:00).

Le matériel expliqué

Les composants clés de ce projet comprennent le capteur AM2320, l'afficheur LCD1602 et le module I2C. L'AM2320 est un capteur numérique qui fournit des mesures précises de la température et de l'humidité via une interface I2C. Il fonctionne sous une tension de 3,3 V à 5,5 V et a une plage de mesure de -40 °C à +80 °C pour la température et de 0 % à 100 % pour l'humidité.

L'afficheur LCD1602 permet de visualiser les mesures des capteurs. Il s'agit d'un écran 16x2 caractères qui communique via le protocole I2C, ce qui réduit le nombre de connexions nécessaires à seulement quatre. Le module I2C convertit les données parallèles de l'écran LCD en un format série, ce qui facilite la connexion à l'Arduino.

Détails de la fiche technique

FabricantAosong
Numéro de pièceAM2320
Tension logique/E/S3.3 V - 5.5 V
Tension d'alimentation3.3 V - 5.5 V
Courant de sortie≤ 1.5 mA
Plage de mesure (température)de -40 °C à +80 °C
Plage de mesure (humidité)0 % à 100 %
Temps de réponse≤ 2 s
PaquetDIP-4
Notes / variantesDes résistances pull-up sont recommandées pour les connexions I2C.

  • Assurez une alimentation électrique adéquate dans la plage de tension spécifiée.
  • Utilisez des résistances de pull-up (4,7 kΩ recommandées) pour les lignes SDA et SCL.
  • Vérifiez que l'adresse I2C est correcte (par défaut 0x27 pour la plupart des écrans LCD).
  • Gérez les erreurs potentielles en vérifiant le code d'erreur du capteur.
  • Effacez l'écran LCD avant d'afficher de nouvelles mesures pour éviter le chevauchement.

Instructions de câblage

Arduino wiring for AM2320 sensor with LCD
Arduino wiring for AM2320 sensor with LCD

Pour câbler le capteur AM2320, connectez la broche de gauche (VCC) au 5 V de l'Arduino. La deuxième broche (SDA) va à la broche A4 sur un Arduino Uno (ou à la broche 20 sur un Mega). La troisième broche (GND) doit être reliée à la masse, et la quatrième broche (SCL) se connecte à la broche A5 sur un Arduino Uno (ou à la broche 21 sur un Mega). De plus, connectez une résistance de 4,7 kΩ entre la broche SDA et le 5 V, et une autre résistance de 4,7 kΩ entre la broche SCL et le 5 V pour garantir des niveaux de signal appropriés.

Pour l'afficheur LCD1602 avec I2C, connectez la broche VCC au 5V et la broche GND à la masse. Connectez la broche SDA du LCD à la même broche SDA (A4) utilisée pour le capteur. De même, connectez la broche SCL du LCD à la même broche SCL (A5) utilisée pour le capteur. Ce câblage partagé permet aux deux appareils de communiquer sur le même bus I2C.

Exemples de code et tutoriel pas à pas

Le code suivant initialise le capteur AM2320 et l'afficheur LCD1602. Il commence par inclure les bibliothèques nécessaires et par créer une instance du capteur.

#include 
AM2320 sensor;
#include 
LiquidCrystal_I2C lcd(0x27, 16, 2);

Ici, lesensorun objet est créé à partir de la bibliothèque AM2320, et lelcdl'objet est initialisé avec l'adresse I2C de l'écran.

Dans lesetup()Dans la fonction, nous initialisons à la fois le capteur et l'écran LCD. Cela inclut l'activation du rétroéclairage et l'affichage d'un message initial.

void setup() {
  sensor.begin();
  lcd.begin();
  lcd.backlight();
  lcd.print("Robojax AM2320 ");
  lcd.setCursor (0,1);
  lcd.print("LCD1602 I2C Demo");
  delay(3000);
}

Ce code configure l'affichage pour afficher un message de bienvenue pendant 3 secondes, ce qui laisse le temps à l'utilisateur de voir que le système est en cours d'initialisation.

Leloop()La fonction vérifie en continu les mesures du capteur et met l'affichage à jour en conséquence. Si une mesure est disponible, elle efface l'écran et affiche la température en degrés Fahrenheit et Celsius, ainsi que l'humidité relative.

void loop() {
  if (sensor.measure()) {
    lcd.clear();
    lcd.print("T:");
    lcd.print(temp('F'));
    lcd.print("F/");
    lcd.print(temp('C'));
    lcd.print("C");  
    lcd.setCursor (0,1);
    lcd.print("R.H. :");
    lcd.print(sensor.getHumidity());
    lcd.print("%"); 
  }
  else {
    int errorCode = sensor.getErrorCode();
    switch (errorCode) {
      case 1: lcd.print("ERR: Sensor offline"); break;
      case 2: lcd.print("ERR: CRC failed."); break;
    }    
  }
  delay(500);
}

Cet extrait montre comment le programme récupère et affiche les données du capteur tout en gérant d'éventuelles erreurs en vérifiant leerrorCode.

Démonstration / À quoi s'attendre

Une fois la configuration terminée, l'écran LCD devrait afficher la température à la fois en Fahrenheit et en Celsius, ainsi que le pourcentage d'humidité relative. Si le capteur est hors ligne ou s'il y a une erreur CRC, l'affichage indiquera les messages d'erreur correspondants. Il est important de s'assurer que toutes les connexions sont bien sécurisées pour éviter tout problème (dans la vidéo à 02:45).

Horodatages vidéo

  • 00:00- Introduction au projet
  • 01:30- Instructions de câblage
  • 03:15- Explication du code
  • 04:45- Démonstration de la fonctionnalité

Images

AM2320-sensor-1
AM2320-sensor-1
AM2320-sensor-2
AM2320-sensor-2
AM2320-sensor-3
AM2320-sensor-3
AM2320-sensor-4
AM2320-sensor-4
Arduino wiring for AM2320 sensor with LCD
Arduino wiring for AM2320 sensor with LCD
85-This is the Arduino code for an Aosong AM2320 temperature and humidity sensor with an LCD1602 and I2C module.
Langue: C++
86-This is the Arduino code for the Aosong AM2320 temperature and humidity sensor with an LCD1602 and I2C module.
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Fiche technique (pdf)

Fichier Fritzing