Code Arduino et vidéo pour le capteur de température et d'humidité DHT22 avec affichage TM1637 et relais

Code Arduino et vidéo pour le capteur de température et d'humidité DHT22 avec affichage TM1637 et relais

Dans ce tutoriel, nous verrons comment utiliser un capteur de température et d'humidité DHT22 conjointement avec un afficheur TM1637 et un relais pour contrôler une charge en courant alternatif (AC), comme un chauffage ou un ventilateur. L'objectif est d'activer la charge lorsque la température atteint 50 degrés Celsius et de la désactiver lorsqu'elle redescend en dessous de ce seuil. Cette configuration est idéale pour maintenir les niveaux de température souhaités dans un environnement contrôlé.

DHT22 sensor with PCB-1

Pour cela, nous écrirons un programme Arduino qui lit les données de température et d'humidité du capteur DHT22, affiche la température sur l'afficheur TM1637 et commande le relais en fonction des lectures de température. Pour plus de clarté, vous pouvez consulter la vidéo (dans la vidéo à 10:00).

Matériel expliqué

Les principaux composants de ce projet comprennent le capteur DHT22, l'afficheur TM1637, le module relais et une carte Arduino. Le capteur DHT22 est chargé de mesurer la température et l'humidité, fournissant une sortie numérique que l'Arduino peut lire facilement. L'afficheur TM1637 sert à afficher les mesures de température dans un format convivial, tandis que le module relais permet de contrôler en toute sécurité des appareils à haute tension comme des chauffages et des ventilateurs.

Le capteur DHT22 possède trois broches : VCC (alimentation), GND (masse), et DATA (sortie). L'afficheur TM1637 utilise quatre broches pour l'alimentation, la masse, l'horloge et la communication de données. Le module relais se connecte à l'Arduino et agit comme un interrupteur pour la charge en courant alternatif (AC), assurant un fonctionnement sûr lors du contrôle d'appareils nécessitant une tension plus élevée.

Détails de la fiche technique

FabricantAdafruit
Numéro de pièceDHT22
Tension logique/E/S3,3 V - 5,5 V
Tension d'alimentation3,3 V - 6 V
Courant de sortie (par canal)0,5 mA
Courant de crête (par canal)2,5 mA
Consignes de fréquence PWMSans objet
Seuils logiques d'entrée0,3 V - 0,7 V
Chute de tension / RDS(on)/ saturationNon applicable
Limites thermiques-40 °C à 80 °C
Paquetboîtier à 3 broches
Notes / variantesÉgalement connu sous le nom d'AM2302

  • Assurez une alimentation adéquate (3,3 V - 6 V) pour le DHT22.
  • Utilisez des résistances pull-up sur la ligne de données si nécessaire.
  • Laissez les relevés du capteur se stabiliser pour obtenir des données précises.
  • Vérifiez à nouveau les connexions des broches pour éviter toute erreur de communication.
  • Soyez prudent avec les charges en courant alternatif ; assurez une isolation et une sécurité adéquates.
  • Prévoyez un dissipateur thermique pour le relais si celui-ci commande des charges élevées.
  • Utilisez des techniques d'anti-rebond si nécessaire lors de la lecture des données des capteurs.
  • Maintenez le capteur DHT22 à l'abri de la lumière directe du soleil pour des mesures précises.

Instructions de câblage

Wiring DHT11 DHT22 with TM1637 dispaly and relay
Wiring DHT11 DHT22 with TM1637 dispaly and relay

Pour câbler les composants, commencez par connecter le capteur DHT22. Connectez la broche VCC à la broche 5V de l'Arduino, la broche GND à la masse (GND) et la broche DATA à la broche numérique 9 de l'Arduino.

Ensuite, câblez l'afficheur TM1637. Connectez la broche VCC à la broche 5V de l'Arduino, la broche GND à la masse, la broche CLK (horloge) à la broche numérique 2 et la broche DIO (données) à la broche numérique 3. Pour le module relais, connectez la broche VCC à la broche 5V, la broche GND à la masse et la broche de commande (signal) à la broche numérique 7. Enfin, veillez à ce que la charge en courant alternatif (AC) soit raccordée en toute sécurité au module relais en suivant les consignes du fabricant.

Exemples de code et tutoriel pas à pas

Le code suivant initialise le capteur DHT22 et l'afficheur TM1637. Il configure les broches nécessaires et prépare la lecture des données de température.


#include 
#define CLK 2
#define DIO 3
#define DHTPIN 9
DHT dht(DHTPIN, DHTTYPE);
void setup() {
  Serial.begin(9600);
  pinMode(RELAY, OUTPUT);
  dht.begin();
}

Dans cet extrait, nous incluons les bibliothèques nécessaires et définissons les broches pour l'afficheur TM1637 et le capteur DHT22. La fonction setup initialise la communication série et configure la broche du relais comme sortie.

Wirig relay module to AC load

La fonction loop récupère la température et contrôle le relais en fonction de la valeur mesurée. Si la température dépasse 50 degrés, le relais est activé.


void loop() {
  delay(TEST_DELAY);
  int temp = round(getTemp("c"));
  display.showNumberDec(temp, false, 3, 1);
  if(temp > 50) {
    digitalWrite(RELAY, LOW);
  } else {
    digitalWrite(RELAY, HIGH);
  }
}

Ce fragment de code montre comment lire la température, l'afficher et contrôler le relais. La température est arrondie et affichée sur le TM1637, et le relais est activé ou désactivé en fonction du seuil de température.

Pour une compréhension plus approfondie, veuillez consulter le code complet affiché sous l'article.

Démonstration / À quoi s'attendre

Lorsque vous exécutez le programme, vous devriez voir la température affichée sur le TM1637. Lorsque la température dépasse 50 degrés Celsius, le relais s'activera, alimentant la charge AC connectée. Inversement, lorsque la température redescend en dessous de 50 degrés, le relais se désactivera, coupant l'alimentation de la charge. Faites attention à la polarité inversée et assurez-vous que les connexions sont correctes pour éviter d'endommager les composants (dans la vidéo à 12:30).

Horodatages vidéo

  • 00:00- Introduction
  • 02:15- Explication du câblage
  • 05:00- Parcours du code
  • 10:00- Démonstration
  • 12:30- Problèmes courants

Images

DHT11 Module
DHT11 Module
DHT22 sensor with PCB-1
DHT22 sensor with PCB-1
DHT22 sensor no PCB
DHT22 sensor no PCB
Wirig relay module to AC load
Wirig relay module to AC load
Wiring DHT11 DHT22 with TM1637 dispaly and relay
Wiring DHT11 DHT22 with TM1637 dispaly and relay
57-Arduino code for a DHT11 DHT22 temperature and humidity sensor with a TM1637 display.
Langue: C++
Copié !

Ce dont vous pourriez avoir besoin

Ressources et références

Fichiers📁

Bibliothèques Arduino (zip)

Fichier Fritzing

Manuel de l'Utilisateur