La météo imprévisible peut parfois causer des désagréments, notamment lorsque les fenêtres, volets, auvents ou puits de lumière restent ouverts et qu’une averse soudaine les inonde. Heureusement, les capteurs de pluie offrent une solution intelligente pour prévenir ce genre de situation. Dans ce tutoriel, nous allons plonger dans le monde de l’électronique en utilisant Arduino pour interfacer des capteurs de pluie et créer un système de fermeture automatique en cas de précipitations. Vous découvrirez le fonctionnement des capteurs de pluie, comment les interfacer avec un Arduino, et comment les calibrer pour une utilisation précise et efficace.
Table des matières
I. Comment fonctionnent les capteurs de pluie ?
Les capteurs de pluie fonctionnent grâce à une ingénieuse plaque de détection équipée de pistes de cuivre exposées. En agissant comme une résistance variable, cette plaque modifie sa résistance en fonction de la quantité d’eau présente à sa surface.
- Lorsque la surface est couverte d’eau, la conductivité augmente et la résistance diminue.
- En revanche, lorsque la surface est moins humide, la conductivité diminue et la résistance augmente.
Le capteur produit ainsi une tension de sortie qui varie en fonction de la résistance de la plaque de détection. En mesurant cette tension, nous pouvons déterminer s’il pleut ou non.
II. Vue d’ensemble du matériel requis
Un capteur de pluie standard se compose de deux composants essentiels :
- La plaque de détection : Cette plaque est généralement exposée à l’extérieur, installée sur le toit ou dans un emplacement propice aux précipitations. Elle détecte la pluie ou la neige fondante et agit comme un indicateur crucial pour automatiser les actions en cas de mauvais temps.
- Le module électronique : Ce module assure la liaison entre la plaque de détection et l’Arduino. Il convertit la résistance de la plaque en une tension de sortie disponible sur une broche de sortie analogique (AO). En outre, le module utilise un comparateur haute précision LM393 pour numériser cette tension et la rendre accessible sur une broche de sortie numérique (DO).
Le module est également équipé d’un potentiomètre intégré pour ajuster la sensibilité de la sortie numérique (DO). En réglant un seuil avec ce potentiomètre, le module peut produire une sortie LOW lorsque la quantité d’eau dépasse la valeur seuil, et une sortie HIGH dans le cas contraire.
III. Schéma de branchement du capteur de pluie avec Arduino :
Pour interfacer le capteur de pluie avec votre Arduino, suivez les étapes suivantes :
- Connectez la broche VCC du module du capteur à une broche numérique de l’Arduino (par exemple, broche 7). Cela permettra de fournir de l’alimentation au capteur uniquement lors de la prise de mesures, prolongeant ainsi sa durée de vie.
- Reliez la broche GND du module du capteur à la broche de masse (GND) de l’Arduino.
- Connectez la broche AO (Analog Output) du module du capteur à une broche d’entrée analogique de l’Arduino (par exemple, broche A0). Cette broche permettra de lire la tension de sortie analogique du capteur.
- Branchez la broche DO (Digital Output) du module du capteur à une broche d’entrée numérique de l’Arduino (par exemple, broche 8). Cette broche recevra la sortie numérique du capteur.
IV. Calibration du capteur de pluie :
Pour obtenir des lectures précises de votre capteur de pluie, il est recommandé de le calibrer au préalable. Le module du capteur comporte un potentiomètre intégré permettant de régler la sortie numérique (DO).
- Simulez la pluie en versant de l’eau sur la plaque de détection.
- Tournez le bouton du potentiomètre dans le sens des aiguilles d’une montre jusqu’à ce que la LED d’état sur le module s’allume.
- Ensuite, tournez légèrement le bouton du potentiomètre dans le sens inverse des aiguilles d’une montre jusqu’à ce que la LED s’éteigne.
Cela calibre le capteur en fixant un seuil de détection de pluie, de sorte que lorsque la quantité d’eau dépasse ce seuil, la sortie numérique (DO) sera LOW.
V. Code Arduino pour détecter la pluie :
Utilisez le code Arduino ci-dessous pour lire la sortie numérique du capteur de pluie et afficher l’état (s’il pleut ou non) sur le Moniteur Série.
// Broches du capteur
#define brocheAlim 7
#define brocheCapteur A0
void setup() {
pinMode(brocheAlim, OUTPUT);
// Le capteur est initialement éteint
digitalWrite(brocheAlim, LOW);
Serial.begin(9600);
}
void loop() {
// Obtenir la lecture du capteur
int val = lireCapteur();
Serial.print("Sortie Numérique : ");
Serial.println(val);
// Déterminer l'état de la pluie
if (val) {
Serial.println("État : Clair");
} else {
Serial.println("État : Il pleut");
}
delay(1000); // Prendre une lecture toutes les secondes
Serial.println();
}
// Cette fonction renvoie la sortie du capteur
int lireCapteur() {
digitalWrite(brocheAlim, HIGH); // Allumer le capteur
delay(10); // Attendre que l'alimentation se stabilise
int val = digitalRead(brocheCapteur); // Lire la sortie du capteur
digitalWrite(brocheAlim, LOW); // Éteindre le capteur
return val; // Renvoyer la valeur
}
VI. Code Explanation:
Le sketch commence par la déclaration des broches de l’Arduino auxquelles les broches VCC et DO du capteur sont connectées.
#define brocheAlim 7
#define brocheCapteur 8
Dans la section Setup, nous déclarons d’abord que la broche d’alimentation du capteur est une sortie, puis nous la réglons sur LOW pour qu’aucune alimentation ne traverse le capteur au départ. Nous configurons également le moniteur série.
void setup() {
pinMode(brocheAlim, OUTPUT);
digitalWrite(brocheAlim, LOW);
Serial.begin(9600);
}
Dans la section Loop, nous appelons la fonction lireCapteur() de manière répétée à intervalle d’une seconde et affichons la valeur renvoyée ainsi que l’état.
void loop() {
// Obtenir la lecture du capteur
int val = lireCapteur();
Serial.print("Sortie Numérique : ");
Serial.println(val);
// Déterminer l'état de la pluie
if (val) {
Serial.println("État : Clair");
} else {
Serial.println("État : Il pleut");
}
delay(1000); // Prendre une lecture toutes les secondes
Serial.println();
}
La fonction lireCapteur() est utilisée pour obtenir la sortie numérique actuelle du capteur. Elle allume le capteur, attend 10 millisecondes, lit la valeur numérique du capteur, éteint ensuite le capteur et renvoie le résultat.
int lireCapteur() {
digitalWrite(brocheAlim, HIGH); // Allumer le capteur
delay(10); // Attendre que l'alimentation se stabilise
int val = digitalRead(brocheCapteur); // Lire la sortie du capteur
digitalWrite(brocheAlim, LOW); // Éteindre le capteur
return val; // Renvoyer la valeur
}
Cette configuration permet au capteur de rester éteint lorsque les lectures ne sont pas nécessaires, économisant ainsi de l’énergie et prolongeant la durée de vie du capteur dans des conditions d’humidité. Lorsque la fonction lireCapteur() est appelée, elle active le capteur pour obtenir une lecture, puis l’éteint rapidement après l’avoir lue. Cette approche astucieuse assure un fonctionnement efficace du système tout en fournissant des informations précises sur l’état de la pluie.
En comprenant le fonctionnement du code et du matériel, vous pouvez désormais personnaliser votre système de fermeture automatique en utilisant les informations du capteur de pluie pour prendre des décisions intelligentes et protéger votre maison des conditions météorologiques défavorables. Expérimentez et amusez-vous à développer des projets de domotique avancés avec Arduino !
VII. Test de capteurs de Pluie:
Après avoir téléchargé le code sur votre Arduino, placez le capteur de pluie dans un endroit exposé aux précipitations. Ouvrez le Moniteur Série dans l’IDE Arduino pour voir la sortie.
Le Moniteur Série affichera la sortie numérique (0 ou 1) ainsi que l’état (clair ou pluvieux) en fonction du seuil défini lors de la calibration. Pour tester le capteur, simulez de la pluie en versant de l’eau sur la plaque de détection et observez les changements dans la sortie.
VIII. Créer un Système de Fermeture Automatique en cas de Précipitations :
Maintenant que nous comprenons comment fonctionne le capteur de pluie et comment l’interfacer avec Arduino, passons à l’étape suivante : créer un système de fermeture automatique pour vos fenêtres, volets, auvents ou puits de lumière en cas de pluie. Pour cela, nous aurons besoin des éléments suivants :
Matériel requis :
- Capteur de pluie : Assurez-vous d’utiliser un capteur de pluie équipé d’une plaque de détection sensible aux précipitations et doté d’un module électronique avec des broches d’entrée/sortie pour le connecter à Arduino.
- Arduino : Tout modèle d’Arduino compatible suffit pour ce projet.
- Actionneurs : Utilisez des servomoteurs pour les volets ou des moteurs pour les fenêtres, les auvents, ou les puits de lumière. Assurez-vous que ces actionneurs sont adaptés à votre système.
- Alimentation : Un adaptateur d’alimentation approprié pour l’Arduino et les actionneurs.
- Connecteurs et câbles : Des câbles de raccordement, des résistances de pull-up, et éventuellement des connecteurs pour faciliter les connexions.
Étape 1: Configuration Matérielle
- Branchez le capteur de pluie selon le schéma de branchement décrit précédemment. Assurez-vous que les connexions sont sécurisées et que le capteur est correctement exposé aux précipitations.
- Connectez les actionneurs aux broches de sortie appropriées de l’Arduino. Par exemple, pour les servomoteurs, vous pouvez utiliser les broches PWM (pulse-width modulation) pour un contrôle précis de la position. Assurez-vous de respecter les spécifications des actionneurs pour l’alimentation et les connexions.
Étape 2: Définition du Seuil de Pluie
- Pour décider quand fermer les fenêtres ou les volets en cas de pluie, vous devez définir un seuil de pluie approprié. Pour ce faire, commencez par calibrer le capteur de pluie comme expliqué précédemment.
- Une fois le capteur calibré, notez la valeur de sortie numérique (0 ou 1) lorsque la pluie commence à être détectée. Cette valeur sera utilisée comme seuil pour déclencher la fermeture automatique.
Étape 3: Programmation de l’Action Automatique
- Pour commencer, incluez la bibliothèque Servo si vous utilisez des servomoteurs.
#include <Servo.h>
- Initialisez les servomoteurs ou les moteurs dans la section Setup.
Servo servo1; // Création d'un objet servo1 pour le premier servomoteur
Servo servo2; // Création d'un objet servo2 pour le second servomoteur
void setup() {
servo1.attach(brocheServo1); // Attacher le servo1 à la broche appropriée
servo2.attach(brocheServo2); // Attacher le servo2 à la broche appropriée
}
- Dans la section Loop, lisez la sortie du capteur de pluie et déclenchez l’action de fermeture lorsque le seuil est atteint.
void loop() {
// Obtenir la lecture du capteur
int val = lireCapteur();
// Déterminer l'état de la pluie
if (val == 0) {
// Il pleut, fermeture automatique activée
fermerFenetres();
} else {
// Temps clair, ouverture automatique activée (facultatif)
ouvrirFenetres();
}
delay(1000); // Prendre une lecture toutes les secondes
}
- Ajoutez les fonctions pour fermer et ouvrir les fenêtres ou volets, en utilisant les positions appropriées pour vos actionneurs.
void fermerFenetres() {
// Code pour fermer les fenêtres ou volets avec les servomoteurs ou les moteurs
servo1.write(angleFermeture1); // Définir l'angle pour fermer le premier servomoteur
servo2.write(angleFermeture2); // Définir l'angle pour fermer le second servomoteur
}
void ouvrirFenetres() {
// Code pour ouvrir les fenêtres ou volets avec les servomoteurs ou les moteurs (facultatif)
servo1.write(angleOuverture1); // Définir l'angle pour ouvrir le premier servomoteur
servo2.write(angleOuverture2); // Définir l'angle pour ouvrir le second servomoteur
}
Étape 4: Test et Réglages
- Téléversez le code sur votre Arduino.
- Placez le capteur de pluie dans un endroit exposé aux précipitations et effectuez des tests en versant de l’eau sur la plaque de détection.
- Ajustez le seuil de détection de pluie si nécessaire pour garantir des performances optimales du système. Vous pouvez également ajuster les angles d’ouverture et de fermeture des actionneurs pour adapter le mouvement à vos préférences.
Félicitations ! Vous avez maintenant créé un système de fermeture automatique intelligent pour vos fenêtres, volets, auvents ou puits de lumière en utilisant un capteur de pluie et Arduino. Ce système permet de protéger efficacement votre maison des intempéries et d’améliorer votre confort en ajustant automatiquement les ouvertures en cas de pluie. Amusez-vous à personnaliser davantage le code pour répondre à vos besoins spécifiques et explorez d’autres projets de domotique passionnants avec Arduino !
Conclusion:
Grâce à ce tutoriel, vous avez acquis les connaissances nécessaires pour créer un système de fermeture automatique pour vos fenêtres, volets, auvents ou puits de lumière en utilisant des capteurs de pluie et un Arduino. Vous comprenez désormais le fonctionnement des capteurs de pluie, comment les interfacer avec Arduino, et comment les calibrer pour obtenir des mesures précises.
En utilisant ces compétences, vous pouvez développer des projets de domotique innovants et pratiques pour protéger votre maison contre les intempéries et améliorer votre confort au quotidien. N’hésitez pas à explorer davantage les possibilités offertes par l’électronique et à concevoir des applications personnalisées pour répondre à vos besoins spécifiques. Bonne création !
Pour plus d’articles : https://www.moussasoft.com/tutoriels-electroniques