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
| Fabricant | Aosong |
|---|---|
| Numéro de pièce | AM2320 |
| Tension logique/E/S | 3.3 V - 5.5 V |
| Tension d'alimentation | 3.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 |
| Paquet | DIP-4 |
| Notes / variantes | Des 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

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é
Ce dont vous pourriez avoir besoin
-
Amazon
-
AliExpressAchetez le capteur AM2302 ou DHT11 ou DHT22 sur AliExpresss.click.aliexpress.com
Ressources et références
-
ExterneBibliothèque AM2320 (de GitHub)github.com
-
ExternePage de documentation de l'Arduino Wirearduino.cc
Fichiers📁
Fiche technique (pdf)
-
Manuel de l'utilisateur du capteur de température et d'humidité I2C Adafruit AM2320
adafruit-am2320-temperature-humidity-i2c-sensor.pdf1.27 MB
Fichier Fritzing
-
Capteur d'humidité et de température AM2320
AM2320 Humidity and Temperature Sensor.fzpz0.01 MB