Loading icon

L’objectif d’aujourd’hui est d’allumer un appareil électrique en fonction du capteur de température et d’humidité. En fonction d’une certaine température, on activera le relais.

Prérequis

Le branchement va être assez simple :

Le module DHT22 sur mon schéma (VCC / DATA / GND):

  • VCC vers le 5v
  • DATA connecté au PIN 7 de l’arduino
  • GND au GND de la carte

Bien vérifier sur votre module les 3 branchements afin d’ajuster en fonction de votre module.

Pour le module relais (DATA / VCC / GND) :

  • DATA connecté au PIN 2 de l’arduino
  • VCC au 5V
  • et le GND au GND

Pour l’exercice, j’utilise une breadboard afin de faciliter le raccordement.

De l’autre côté du module, on va se brancher sur le mode NO (c’est-à-dire Normalement Ouvert) en connectant une prise mâle (à brancher sur le secteur) et une prise femelle afin de pouvoir ajouter tout et n’importe quoi 🙂

Avec ce système vous n’avez pas besoin de bidouiller un appareil électrique. Il faudra simplement le brancher sur votre prise 🙂 et op on sera bon.

Branchement réel :

Ici il faut bien faire attention aux fils électriques car une fois le tout en place, du 220v passera. Pour un vrai projet que l’on utilise au quotidien, il faut bien penser à protéger et isoler cette partie afin d’éviter tout risque inutile.

Place au code

Il va être simple et surtout on l’a déjà vu dans d’autres articles. La seule chose c’est qu’on va coupler 2 sketchs ensemble afin d’avoir notre programme opérationnel. Le sketch de base est celui du DHT22, auquel on va rajouter 2-3 élément pour contrôle le relais.

// ajout de la lib DHT
#include <DHT.h>
// création d'une constante qui aura pour nom DHTTYPE et pour valeur DHT22
#define DHTTYPE DHT22

// initialisation de la PIN qui reçoit les datas de notre module
// dans mon cas, la PIN digital 7
const int TEMP_PIN = 7;

/**
 * Initialisation du PIN Digital
 */
const int RELAY = 2;

// initialisation de la class DHT11 via le mot clé DHT
// dht minuscule est simplement le nom que je lui donne, on pourrait l'appeler captain sans souci :) mais plus le code est clair et plus la lecture sera simple
// en paramètre, la PIN et la lib
DHT dht(TEMP_PIN, DHTTYPE);

void setup() {
  Serial.begin(9600);

  // syntaxe trouvée sur le arduino.cc
  // elle permet d'attendre que le serial soit disponible
  while (!Serial) {
    ; // wait for serial port to connect. Needed for native USB
  }

  // permet de démarrer la lecture des données
  dht.begin();

/**
   * Initialisation des pinMode() en mode output car on va envoyer du courant ou non
   */
  pinMode(RELAY, OUTPUT);
}

void loop() {
  // on attend 2secondes avant notre première lecture
  // cela permet au module de charger correctement et cela évite des erreurs
  delay(2000);
  
  // lecture de l'humidité
  float h = dht.readHumidity(); 
  
  // lecture de la température en degré celsius (c'est l'option par défaut) 
  float t = dht.readTemperature(); 
  
  // petite vérification que l'on a bien une donnée.
  // isnan() permet de vérifier si la valeur n'est pas un nombre
  // dans notre cas si un des trois résultats n'est pas un nombre, on rentre dans la condition
  // une fois dans la condition, un petit message d'error et on arrête tout grâce au mot clé : return
  // on retourne sur le début de la boucle pour lire à nouveau les données
  // et si on n'a pas de données du capteur de température, on pense à enlever le courant du relais afin de couper le courant.
  if (isnan(h) || isnan(t)) {
    Serial.println("Erreur de lecture du capteur DHT !");
    digitalWrite(RELAY, LOW);
    return;
  }
  
  // si la température est inférieure à 20 (20°) on active le relais 
  if(t < 20){
    digitalWrite(RELAY, HIGH);
  } else {
    // sinon on l'éteint
    digitalWrite(RELAY, LOW);
  }

  // Pour le debug, on affiche les valeurs du capteur de températeur/humidité dans le moniteur de série
  // String() permet de convertir notre variable en string afin de pouvoir la concaténer sans souci 
  Serial.println("Humidité : " + String(h) + "%");
  Serial.println("Température : " + String(t) + "°C");
}

Avec ce Sketch, on a un système qui fonctionne. Dans notre cas, des que la température descend en dessous de 20°, on active le relais ce qui va permettre au courant de passer. Et sur la prise femelle on peut brancher tout ce qu’on souhaite comme par exemple un chauffage d’appoint qui s’allumerait uniquement si la température baisse.

Le relais est très pratique pour gérer du 220v ou autre source d’alimentation. Le plus de tout ceci c’est qu’on ne touche pas à l’appareil électrique, on lui donne simplement du courant ou non .

Téléchargement du Sketch relais & module DHT22

Si cet article vous a plu, n’hésitez pas à laisser un commentaire, noter et partager l’article.

Partage :
Share on Facebook
Facebook
Tweet about this on Twitter
Twitter
2
0
J'aimerais avoir votre avis, merci de commenter.x