Comment utiliser capteur numérique de température et d’humidité AM2320 avec Arduino

Dans ce didacticiel, vous apprendrez à utiliser le  capteur numérique de température et d’humidité AM2320  avec Arduino. J’ai inclus un schéma de câblage et un exemple de code pour vous aider à démarrer!

Pour ce didacticiel, nous utiliserons la   bibliothèque de capteurs Adafruit Unified en combinaison avec la  bibliothèque de capteurs Adafruit AM2320 . Ces bibliothèques facilitent la communication avec le capteur via I2C. Dans la première partie de cet article, vous trouverez les spécifications et le brochage de l’AM2320. Ensuite, nous verrons comment connecter le capteur à l’Arduino.

L’exemple d’esquisse à la fin de ce didacticiel peut être utilisé pour prendre des mesures de température à partir du capteur et afficher les résultats dans le moniteur série.

Si vous souhaitez en savoir plus sur les autres capteurs de température, consultez les articles ci-dessous.


Composants matériels

  1. Capteur numérique de température et d’humidité AM2320
  2. Arduino uno
  3. Breadbord
  4. Fils
  5. Câble USB type A / B

À propos de l’AM2320

L’AM2320 est un capteur numérique de température et d’humidité à faible coût fabriqué par  ASAIR . Ce capteur est similaire aux capteurs DHT11 / DHT22 populaires mais dispose également d’une interface I2C au lieu du protocole de communication à bus unique que de nombreux autres capteurs DHTxx utilisent. Vous pouvez trouver un tutoriel dédié pour les DHT11 et DHT22 ici:

Comment utiliser les capteurs DHT11 et DHT22 avec Arduino

Le capteur se compose d’un élément de détection d’humidité capacitif et d’un élément de mesure de température intégré de haute précision connecté à un microprocesseur. La plage de mesure de température du capteur est de -40 à 80 degrés Celsius, avec une précision déclarée de ± 0,5 ° C. 

Humidité relative

Lorsque vous regardez la fiche technique du capteur, vous verrez qu’il mesure l’humidité relative (HR) de l’air et non l’humidité absolue. Mais quelle est la différence? L’humidité absolue est la quantité de vapeur d’eau dans l’air (exprimée en g / m³), ​​quelle que soit la température. L’humidité relative  tient  compte de la température.

L’humidité relative est le rapport entre la quantité réelle de vapeur d’eau présente dans l’air et la quantité maximale de vapeur d’eau que l’air peut contenir à une température donnée.

L’air chaud peut contenir plus d’eau que l’air froid. Cela signifie que pour la même quantité de vapeur d’eau dans l’air, l’humidité relative de l’air frais sera plus élevée que celle de l’air chaud. À 100% d’humidité relative, l’air est saturé et atteint son point de rosée.

Brochage AM2320

Le brochage du capteur est le suivant:

AM2320 pinout
ÉpinglerNomDescription
1VDDBroche d’alimentation positive (3,1 – 5,5 V)
2SDADonnées série, port bidirectionnel
3GNDSol
4SCLPort d’entrée d’horloge série (masse de bus unique)

L’adresse I2C par défaut du capteur est  0x5C  et ne peut pas être modifiée.

Vous pouvez trouver plus de spécifications du capteur dans le tableau ci-dessous.

Spécifications AM2320

Tension d’alimentation3,1 à 5,5 V
Consommation d’énergieVeille: 10 μA
Mesure: 950 μA
Plage d’humidité0 à 99,9% d’humidité relative ± 3% d’humidité relative
Écart de température-40 à 80 ° C ± 0,5 ° C
InterfaceI2C
1 fil
Période d’échantillonnage2,0 s
Dimensions du corps15 x 12,1 x 4,5 mm
CoûtVérifiez le prix

Pour plus d’informations, vous pouvez consulter la fiche technique ici:

AM2320 dimensions
AM2320 dimensions

Câblage – Connexion de l’AM2320 à Arduino

La connexion de l’AM2320 à l’Arduino est très simple comme vous pouvez le voir dans le schéma ci-dessous.

Capteur numérique de température et d'humidité AM2320 avec schéma de câblage Arduino
Capteur numérique de température et d’humidité AM2320 avec schéma de câblage Arduino

Les connexions sont également données dans le tableau ci-dessous

Connexions AM2320

AM2320Arduino
Broche 1 (VDD)5 V
Broche 2 (SDA)A4
Broche 3 (GND)GND
Broche 4 (SCL)A5

Si vous n’utilisez pas d’Arduino Uno, les broches SDA et SCL peuvent être à un emplacement différent. Un Arduino Uno avec la disposition R3 (brochage 1.0), a également les en-têtes de broches SDA (ligne de données) et SCL (ligne d’horloge) proches de la broche AREF. Consultez le tableau ci-dessous pour plus de détails.

TableauSDASCL
Arduino unoA4A5
Arduino NanoA4A5
Arduino Micro23
Arduino Mega 25602021
Arduino Leonardo23
Arduino Due2021
Emplacements des broches SDA et SCL sur différentes cartes Arduino.

Installation des bibliothèques Arduino requises

Pour ce didacticiel, nous utiliserons la   bibliothèque de capteurs unifiés Adafruit et la bibliothèque de  capteurs Adafruit AM2320 .

Pour installer ces bibliothèques, accédez à  Outils> Gérer les bibliothèques  (Ctrl + Maj + I sous Windows) dans l’  IDE Arduino . Le gestionnaire de bibliothèque ouvrira et mettra à jour la liste des bibliothèques installées.

Installing an Arduino library step 1

Recherchez maintenant ‘ adafruit unified sensor ‘ et recherchez la   bibliothèque Adafruit Unified Sensor . Sélectionnez la dernière version, puis cliquez sur Installer.

Installing an Arduino library step 2

Installez la  bibliothèque de capteurs Adafruit AM2320  de la même manière.

Adafruit AM2320 library

Exemple de code Arduino pour capteur de température et d’humidité AM2320

L’exemple de code suivant peut être utilisé pour prendre des lectures de température et d’humidité du capteur et afficher les résultats dans le moniteur série de l’IDE Arduino.

Vous pouvez télécharger l’exemple de code sur votre Arduino à l’aide de l’  IDE Arduino .

Pour copier le code, cliquez sur le bouton dans le coin supérieur droit du champ de code.

/ * Exemple de code pour capteur de température et d’humidité AM2320 I2C avec Arduino. Plus d’infos: www.makerguides.com * /
// Inclut les bibliothèques requises:
#include <Adafruit_Sensor.h>
#include <Adafruit_AM2320.h>
// Créer une nouvelle instance de la classe Adafruit_AM2320:
Adafruit_AM2320 AM2320 = Adafruit_AM2320 () ;
void setup () {
// Commencez la communication série à une vitesse de transmission de 9600:
En série. commencer ( 9600 ) ;
// Configurer le capteur;
AM2320. begin () ;
}
boucle void () {
// Lire la température et l’humidité:
float tempC = AM2320. readTemperature () ;
float tempF = tempC * 1,8 + 32; // convertit Celsius en Fahrenheit
humidité flottante = AM2320. readHumidity () ;
// Imprimez la température et l’humidité dans le moniteur série:
En série. print ( “Température:” ) ;
En série. impression ( tempC ) ;
En série. impression ( “\ xC2 \ xB0” ) ; // montre le symbole du degré
En série. imprimer ( “C |” ) ;
En série. impression ( tempF ) ;
En série. impression ( “\ xC2 \ xB0” ) ; // montre le symbole du degré
En série. println ( “F” ) ;
En série. print ( “Humidité:” ) ;
En série. impression ( humidité ) ;
En série. println ( “% RH” ) ;
// Attendez 2 secondes entre les lectures:
retard ( 2000 ) ;
}

Vous devriez voir la sortie suivante dans le moniteur série (Ctrl + Maj + M):

AM2320 Serial Monitor output

Assurez-vous que le débit en bauds du moniteur série est également réglé sur 9600.

Comment fonctionne le code

La première étape consiste à inclure la bibliothèque Adafruit AM2320 et Unified Sensor.

// Inclut les bibliothèques requises:
#include <Adafruit_Sensor.h>
#include <Adafruit_AM2320.h>

Ensuite, vous devez créer une nouvelle instance de la classe Adafruit_AM2320. Dans ce cas, j’ai appelé le capteur ‘AM2320’ mais vous pouvez également utiliser d’autres noms, comme ‘temperature_sensor’.

// Créer une nouvelle instance de la classe Adafruit_AM2320:
Adafruit_AM2320 AM2320 = Adafruit_AM2320 () ;

Dans le  setup(), nous commençons la communication série à une vitesse de transmission de 9600. Assurez-vous que Serial Monitor est également réglé sur 9600. Nous initialisons également le capteur avec  AM2320.begin().

void setup () {
// Commencez la communication série à une vitesse de transmission de 9600:
En série. commencer ( 9600 ) ;
// Configurer le capteur;
AM2320. begin () ;
}

Dans la section boucle du code, je commence par prendre des lectures de température et d’humidité du capteur avec les fonctions  readTemperature() et  readHumidity(). Notez que  readTemperature() renvoie la température en Celsius.

// Lire la température et l’humidité:
float tempC = AM2320. readTemperature () ;
float tempF = tempC * 1,8 + 32; // convertit Celsius en Fahrenheit
humidité flottante = AM2320. readHumidity () ;

Enfin, j’imprime les résultats dans le moniteur série et j’ajoute un délai entre les lectures. L’intervalle minimum entre les lectures est de 2 secondes (voir fiche technique), j’ai donc ajouté un délai de 2 secondes.

// Imprimez la température et l’humidité dans le moniteur série:
En série. print ( “Température:” ) ;
En série. impression ( tempC ) ;
En série. impression ( “\ xC2 \ xB0” ) ; // montre le symbole du degré
En série. imprimer ( “C |” ) ;
En série. impression ( tempF ) ;
En série. impression ( “\ xC2 \ xB0” ) ; // montre le symbole du degré
En série. println ( “F” ) ;
En série. print ( “Humidité:” ) ;
En série. impression ( humidité ) ;
En série. println ( “% RH” ) ;
// Attendez 2 secondes entre les lectures:
retard ( 2000 ) ;

Conclusion

Dans ce tutoriel, je vous ai montré comment utiliser le capteur de température et d’humidité AM2320 avec Arduino. J’espère que vous l’avez trouvé utile et instructif. Si c’est le cas,  partagez-le avec un ami  qui aime aussi l’électronique et la fabrication d’objets!

J’aimerais savoir quels projets vous prévoyez de construire (ou avez déjà construits) avec ce capteur. Si vous avez des questions, des suggestions ou si vous pensez que des éléments manquent dans ce tutoriel,  veuillez laisser un commentaire ci-dessous .

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Rejoindre la liste d'attente Nous vous informerons lorsque le produit arrivera en stock. Veuillez laisser votre adresse E-mail et la quantité voulue.

    Main Menu

    بحاجة الى مساعدة ؟