Blog
Système de ventilation automatique de pièce avec Arduino
Le projet présenté a été réalisé pour résoudre un problème intérieur simple mais répandu : une mauvaise circulation de l'air due à une température et une humidité élevées. Les ventilateurs dans la plupart des pièces, en particulier dans les chambres à coucher, les bureaux ou les petits laboratoires, sont généralement commandés manuellement. En pratique, les gens omettent souvent de les allumer ou de les éteindre, ce qui entraîne un inconfort et une perte d'énergie.
Le concept ici était de créer un système de ventilation automatique de pièce qui réagit aux conditions environnementales réelles. Le système surveille en continu la température et l'humidité et active automatiquement le ventilateur de ventilation. Arduino a été choisi car il offre un prototypage rapide et une intégration fiable des capteurs.
Il ne s'agissait pas d'une simple version de démonstration. Le système a été construit, testé dans une pièce réelle, ajusté, puis exécuté pendant de longues périodes. La discussion suivante reflète ces tests et développements expérimentaux.
Design Thinking et Concept Système
Le problème a été divisé en sous-problèmes plus petits avant que le câblage matériel ou le codage ne commence.
Le système devait :
- Prenez des relevés précis de température et d'humidité.
- Déterminer quand la ventilation est nécessaire.
- Activez un ventilateur de forte puissance en toute sécurité.
- Évitez les mises sous tension et hors tension fréquentes.
Il a été décidé d'opter pour une stratégie de contrôle simple basée sur des règles plutôt que des algorithmes complexes. Le contrôle de précision importe moins qu'une ventilation stable.
L'architecture finale comprenait :
- Arduino Uno en tant que contrôleur central.
- Capteur de température et d'humidité (DHT11).
- Module relais pour isoler la commande basse tension de la charge haute tension.
- Ventilateur comme périphérique de sortie.
- Garder la détection, la commutation de commande et la commutation de puissance indépendantes rend le système plus sûr et plus facile à déboguer.
Composants utilisés
Les composants utilisés dans le projet étaient les suivants :
- Arduino Uno
- Module capteur de température et d'humidité DHT11
- Module de relais à canal unique 5V
- Ventilateur de climatisation commandé par un relais
- Platine d'expérimentation et fils de connexion
- Alimentation externe (utilisée si requise par le ventilateur)
Les composants sont tous peu coûteux et facilement accessibles, ce qui rend ce projet facile à reproduire.
Connexions matérielles (Guide étape par étape)
La configuration matérielle a été maintenue très simple afin de minimiser les erreurs de câblage.
Connexion du capteur DHT11 :
- VCC – Arduino 5V
- GND – GND Arduino
- DONNÉES – Borne numérique 2 d'Arduino
Une résistance de tirage était déjà présente dans le module DHT11, aucune pièce supplémentaire n'était donc nécessaire.
Connexion du module de relais :
- VCC – Arduino 5V
- GND – GND Arduino
- BROCHE NUMÉRIQUE DE L'ARDUINO – broche numérique 8
Le fil sous tension du ventilateur était connecté via le terminal normalement ouvert (NO) du relais afin de garantir que le ventilateur reste éteint au démarrage du système.
⚠️ Précaution de sécurité : le câblage du circuit de courant alternatif a été effectué avec soin et testé séparément avant d'être connecté au relais contrôlé par Arduino.
Aperçu de la logique de contrôle
La logique de contrôle suit un flux simple :
- Lire la température et l'humidité.
- Comparer les valeurs par rapport aux seuils prédéfinis.
- Allumez le ventilateur lorsque les limites sont dépassées.
- Éteignez le ventilateur lorsque les relevés reviennent à la normale.
- Attendez avant de prendre la prochaine mesure.
Cette logique s'est avérée fiable lors de tests à long terme et n'a pas nécessité de commutation de relais inutile.
Code Arduino (Testé et fonctionnel)
#include
#define DHTPIN 2
#define DHTTYPE DHT11
#define RELAY_PIN 8
float tempThreshold = 30.0;
float seuil_humidité = 70,0 ;
DHT dht(DHTPIN, DHTTYPE) ;
void setup() {
Serial.begin(9600) ;
pinMode(RELAY_PIN, OUTPUT) ;
digitalWrite(RELAY_PIN, HIGH); // Relais désactivé (actif à l'état bas)
dht.begin();
Serial.println("Système de ventilation automatique démarré");
}
void loop() {
float humidité = dht.readHumidity();
float température = dht.readTemperature();
if (isnan(humidité) || isnan(température)) {
Serial.println("Échec de la lecture du capteur");
delay(2000);
return;
}
Serial.print("Température : ");
Serial.print(temperature);
Serial.print(" °C | Humidité : ");
Serial.print(humidity);
Serial.println(" %");
if (temperature > tempThreshold || humidity > humidityThreshold) {
digitalWrite(RELAY_PIN, LOW); // Ventilateur allumé
Serial.println("Ventilateur : activé");
} else {
digitalWrite(RELAY_PIN, HIGH); // Ventilateur désactivé
Serial.println("Ventilateur : désactivé");
}
Serial.println("----------------------");
delay(3000);
}
Détails clés de la mise en œuvre
Quelques choix mineurs ont fait une différence considérable dans l'application réelle.
Les valeurs seuils ont été initialement choisies sur la base de tests. Les températures plus basses provoquaient un allumage et un arrêt trop fréquents du ventilateur, de sorte que la valeur finale a été ajustée à 30 °C.
Deuxièmement, une surveillance sérielle approfondie a été effectuée pendant les essais. La surveillance en temps réel a permis de confirmer l'exactitude des relevés des capteurs et le comportement général du système.
Troisièmement, un soin particulier a été apporté à la vérification du comportement des relais. De nombreux modules relais sont actifs bas, ce qui peut être déroutant pour les débutants s'ils ne sont pas testés tôt.
Défis pratiques rencontrés
L'un des principaux défis résidait dans la lenteur de réponse du capteur DHT11. Des lectures fréquentes entraînaient des valeurs dupliquées, ce qui a été résolu en introduisant des délais plus longs entre les relevés.
Les brèves augmentations d'humidité, par exemple dues à l'ouverture de portes ou à la cuisson à proximité, représentaient un autre défi. Ce problème a été atténué par l'utilisation de délais et de valeurs de seuil stables.
Initialement, un bruit de cliquetis de relais était perceptible. La réduction de la fréquence de commutation a non seulement diminué le bruit, mais a également prolongé la durée de vie des relais.
Leçons apprises
Ce projet a démontré que les systèmes simples sont les plus efficaces pour l'automatisation de base. Une logique compliquée n'a pas amélioré les performances.
Il est important de comprendre les limites des capteurs. Le DHT11 convient aux tâches de surveillance simples mais pas au contrôle rapide ou précis.
Par-dessus tout, la sécurité électrique ne doit pas être négligée lors de la manipulation de relais et de charges AC.
La prochaine étape de ce projet pourrait inclure :
- Remplacer le capteur DHT11 par un capteur DHT22
- Ajouter un écran LCD ou OLED
- Activer la surveillance à distance à l'aide d'un ESP32
- Appliquer de l'hystérésis pour un contrôle plus fluide
Pensées finales
Ce système de ventilation automatique de pièce démontre comment Arduino peut utiliser une logique et un matériel simples pour résoudre des problèmes du monde réel. Les tests, les ajustements et l'utilisation pratique ont permis au projet d'évoluer d'une idée à un système entièrement fonctionnel.
Pour les débutants, il offre une expérience d'apprentissage complète. Pour les utilisateurs plus expérimentés, il rappelle que la bonne ingénierie réside parfois dans la simplicité, la stabilité et la sécurité.
Pour ceux qui souhaitent faire passer des projets du stade de prototype à celui de production, que ce soit en tant qu'amateur ou professionnel, PCBCool propose des services flexibles de circuits imprimés (PCB) et d'assemblage de circuits imprimés (PCBA). Du prototypage rapide aux petites séries en passant par la fabrication à grande échelle, nos solutions facilitent la transformation des idées en appareils électroniques concrets et fonctionnels.
Foire Aux Questions (FAQ)
Le DHT11 est peu coûteux et facile à obtenir, idéal pour les débutants et la surveillance simple. Le DHT22 a une réponse plus rapide et une précision plus élevée, adapté aux applications de contrôle précises.
Oui, mais les ventilateurs de climatisation doivent être commandés par un relais pour isoler les circuits haute tension.
Les commutations fréquentes augmentent l'usure et réduisent la durée de vie des relais. L'ajout de délais d'échantillonnage, de seuils stables ou d'hystérésis peut réduire le nombre de cycles de commutation.
Oui, des tests à long terme ont montré un fonctionnement stable.
Absolument. Vous pouvez ajouter un écran LCD ou OLED pour la surveillance locale, ou intégrer un module ESP32/Wi-Fi pour le contrôle et la surveillance à distance.
Oui. Raspberry Pi, ESP32 ou STM32 peuvent être utilisés, mais le code et le câblage nécessitent des ajustements.
Avec un Arduino, un DHT11, un relais et un petit ventilateur, le coût des composants s'élève généralement à $15–$30 (hors circuit imprimé et boîtier), selon le choix des composants.
Oui ! C'est là qu'intervient PCBCool. Vous pouvez rapidement créer des prototypes de circuits imprimés ou des assemblages de circuits imprimés en petites séries, transformant ainsi votre projet expérimental en un produit fiable et fonctionnel.
Farhan A. est un ingénieur en électronique spécialisé dans la conception de circuits imprimés (PCB), les drones, la robotique, les systèmes embarqués et le développement de matériel basé sur l'IA. Son expérience en C/C++, Python, IA/ML et en tests lui permet de développer des solutions pratiques pour des projets électroniques complexes.