Contrôle d'une VMC : Différence entre versions

De Wiki de Projets IMA
(Travail réalisé)
(Travail réalisé)
Ligne 71 : Ligne 71 :
 
:Nous nous sommes d'abord penchés sur l'aspect récupération des données issues des capteurs sur l'Arduino Uno. Les capteurs que nous utilisons sont :
 
:Nous nous sommes d'abord penchés sur l'aspect récupération des données issues des capteurs sur l'Arduino Uno. Les capteurs que nous utilisons sont :
  
:-le DHT11 : capteur de température/humidité disposant de sa propre librairie pour faciliter l'exploitation des données sur un Arduino.  
+
:-le DHT11 : capteur de température/humidité disposant de sa propre librairie pour faciliter la récupération des données sur un Arduino.  
 
:Il dispose de 3 broches qui sont l'alimentation, la masse et les données que transmet le capteur sous forme de trames.
 
:Il dispose de 3 broches qui sont l'alimentation, la masse et les données que transmet le capteur sous forme de trames.
  
Ligne 81 : Ligne 81 :
 
:Nous avons donc réalisé sur "plaque lab" les montages électriques permettant de relier les capteurs à l'Arduino pour l'exploitation des données. Il suffisait de câbler l'alimentation, la masse et de relier les broches de données aux broches de l'Arduino (une broche analogique pour le LM35 DZ et une broche numérique pour le DHT11). Le DHT11 nécessite une résistance de pull-up en plus (voir schéma ci-dessous).
 
:Nous avons donc réalisé sur "plaque lab" les montages électriques permettant de relier les capteurs à l'Arduino pour l'exploitation des données. Il suffisait de câbler l'alimentation, la masse et de relier les broches de données aux broches de l'Arduino (une broche analogique pour le LM35 DZ et une broche numérique pour le DHT11). Le DHT11 nécessite une résistance de pull-up en plus (voir schéma ci-dessous).
  
:Les montages une fois faits, nous avons décidé d'utiliser l'environnement Arduino IDE ainsi que les librairies Arduino pour le développement. Comme dit, précédemment, le DHT11 dispose de sa propre librairie et nous n'avions donc plus qu'à utiliser les fonctions pour récupérer la température et l'humidité (il faut réveiller le capteur qui répond ensuite avec une trame dans lesquels sont inclus deux octets contenant ces données). Concernant le LM35 DZ, il suffit d'utiliser l'ADC pour convertir la tension analogique en un nombre binaire que l'on remet à l'échelle (en fonction de la sensibilité du capteur, des tensions d'alimentation de l'ADC et du nombre de bits de la conversion) pour récupérer notre température.
+
:Les montages une fois faits, nous avons décidé d'utiliser l'environnement Arduino IDE ainsi que les librairies Arduino pour le développement. Comme dit, précédemment, le DHT11 dispose de sa propre librairie et nous n'avions donc plus qu'à utiliser les fonctions pour récupérer la température et l'humidité (il faut réveiller le capteur qui répond ensuite avec une trame dans laquelle sont inclus deux octets contenant ces données). Concernant le LM35 DZ, il suffit d'utiliser l'ADC pour convertir la tension analogique en un nombre binaire que l'on remet à l'échelle (en fonction de la sensibilité du capteur, des tensions d'alimentation de l'ADC et du nombre de bits de la conversion) pour récupérer notre température, à l'aide de la fonction analogRead.
  
  

Version du 20 février 2014 à 09:39

Cahier des charges du projet

Explication du sujet

Nous allons tout d'abord définir plus précisément notre projet suite à un entretien avec nos tuteurs. L'objectif est de réaliser une VMC (Ventilation Mécanique Contrôlée) simple flux dite "intelligente". Le principe de la VMC simple flux est d'extraire l'air de pièces dites "humides" (cuisine, salle de bains et toilettes) ce qui crée une dépression dans la maison. L'air extérieur rentre ensuite par des ouïes placées dans les "pièces à vivre" (chambre, séjour, etc ...) grâce à la dépression créée, ce qui permet d'avoir ainsi une maison ventilée avec un air sain. Elle peut, et c'est notre cas ici, avoir plusieurs vitesses.

Voici un schéma illustrant le principe de la VMC simple flux :

VmcSimpleFlux.png


Le but de notre projet est de commander cette VMC à partir de paramètres qui sont :

-les températures intérieure et extérieure

-le pourcentage d'humidité des pièces dites "humides"

-la qualité de l'air dans la maison

-le taux de CO2 dans la maison

-la présence de personnes dans la maison

-l'état du système de chauffage de la maison (ON/OFF)


Nous pourrons donc comparer tous ces paramètres, une fois acquis, à des "scénarios" que nous aurons prédéfinis et qui nous permettront donc d'établir une commande "intelligente" du système d'extraction. La raison d'être principale de ce projet est évidemment d'économiser l'énergie en ne laissant pas tourner la VMC constamment d'une part, et en limitant son utilisation le plus possible lors du chauffage d'une pièce d'autre part.

Travail à réaliser

Après avoir compris le fonctionnement de la VMC et ciblé le travail à faire pour l'améliorer, nous nous sommes mis d'accord sur les solutions techniques à adopter pour mener à bien notre réalisation. Tous les paramètres évoqués précédemment (servant à commander la VMC) seront bien évidemment acquis par des capteurs, ou simulés dans le cas de capteurs trop chers et/ou rares. Ces données seront transmises au microcontrôleur (Arduino avec son ATMEGA328P) et traitées pour établir le signal de commande de la VMC. Ladite VMC sera simulée par un ventilateur à plusieurs vitesses ou bien un moteur si nous ne disposons pas d'une véritable VMC. Nous réaliserons aussi une maquette d'une maison pour pouvoir simuler notre système.


Pour le moment, nous avons réparti les tâches au sein de notre binôme :

-un membre s'occupe de définir l'architecture nécessaire autour du microcontrôleur et de réaliser la carte correspondante

-l'autre s'occupe d'établir l'algorithme de commande à partir des paramètres dont nous avons déjà parlé

-les deux membres établissent la maquette de la maison et la feront ensuite fabriquer (probablement à l'atelier mécanique)


Si nous parvenons à finir toutes ces tâches, nous nous attellerons à la conception d'une carte servant d'interface entre le microcontrôleur et une véritable VMC (en 220V).


Mise à jour 12/02

Nous réaliserons une carte capteurs qui regroupera tous les capteurs nécessaires ainsi qu'un Arduino et son module Xbee pour communiquer les données vers la carte principale (celle qui commande la VMC), dotée elle aussi d'un module Xbee.

Matériel acquis (liste évolutive au cours des séances)

-capteur de température et humidité pour l'intérieur de la maison (DHT11) 05/02

-capteur de température pour l'extérieur de la maison (LM35) 05/02

-boîte rouge SparkFun 10/02

-2 modules Xbee + un Arduino 12/02


Travail réalisé

10 Février / 15 Février

Partie commande :


Lors de cette première semaine de projet et concernant la partie commande, il a fallu définir comment nous allions procéder pour mettre en place la commande de la VMC. Nous avions déjà défini le microcontrôleur à utiliser (ATMEGA328P au sein d'un Arduino, Uno pour la phase de développement et Mini pour la phase finale d'implantation). Il ne nous restait donc plus qu'à définir quels capteurs nous devions utiliser et ensuite quel type de commande nous allions mettre en œuvre (méthode de régulation choisie incluant l'élaboration de scénarios possibles quant à la température et les paramètres de l'air dans les pièces humides).


Nous nous sommes d'abord penchés sur l'aspect récupération des données issues des capteurs sur l'Arduino Uno. Les capteurs que nous utilisons sont :
-le DHT11 : capteur de température/humidité disposant de sa propre librairie pour faciliter la récupération des données sur un Arduino.
Il dispose de 3 broches qui sont l'alimentation, la masse et les données que transmet le capteur sous forme de trames.
-le LM35 DZ : capteur de température qui lui a aussi 3 broches, les mêmes que celles du DHT11 sauf que la broche de données délivre une tension analogique (fonction de la température) et non une trame de bits.
En ce qui concerne les capteurs de CO2 et de qualité d'air, le premier est trop cher pour pouvoir en avoir un, il sera donc simulé à l'aide d'un potentiomètre et le second est en fait superficiel pour notre système et ne sera donc pas mis en place pour l'instant.


Nous avons donc réalisé sur "plaque lab" les montages électriques permettant de relier les capteurs à l'Arduino pour l'exploitation des données. Il suffisait de câbler l'alimentation, la masse et de relier les broches de données aux broches de l'Arduino (une broche analogique pour le LM35 DZ et une broche numérique pour le DHT11). Le DHT11 nécessite une résistance de pull-up en plus (voir schéma ci-dessous).
Les montages une fois faits, nous avons décidé d'utiliser l'environnement Arduino IDE ainsi que les librairies Arduino pour le développement. Comme dit, précédemment, le DHT11 dispose de sa propre librairie et nous n'avions donc plus qu'à utiliser les fonctions pour récupérer la température et l'humidité (il faut réveiller le capteur qui répond ensuite avec une trame dans laquelle sont inclus deux octets contenant ces données). Concernant le LM35 DZ, il suffit d'utiliser l'ADC pour convertir la tension analogique en un nombre binaire que l'on remet à l'échelle (en fonction de la sensibilité du capteur, des tensions d'alimentation de l'ADC et du nombre de bits de la conversion) pour récupérer notre température, à l'aide de la fonction analogRead.


Câblage du DHT11



Partie carte :


Durant ces premières séances, on a essayé d’appréhender le projet et essayer de choisir la technologie à adopter. Pour faire communiquer les différentes parties du système on a décidé d’utiliser le protocole Zigbee*, qui est un protocole peu compliqué et plus facile à mettre en œuvre, sachant qu’il est tout à fait fonctionnel pour notre projet. Pour réaliser la partie émettrice ainsi que la partie réceptrice on a décidé d’implanter un microcontrôleur, le choix s’est fixé sur un Arduino Mini, vu sa petite taille et le fait qu’on est familier avec ce type de microcontrôleurs. Du côté émetteur l’Arduino sera connecté à plusieurs capteurs (Humidité, Température, Présence …) ainsi qu’à un module Xbee qui assurera la transmission des données vers la partie réceptrice, cette partie ne contiendra qu’un Arduino pour commander la VMC et un Xbee qui se chargera de récupérer les données envoyées par les capteurs.


Une fois l’architecture des cartes émettrice et réceptrice définie, on a commencé la réalisation de ces dernières sur le logiciel CadSoft Eagle, qui permet de créer des circuits imprimés. Une des difficultés rencontrées lors de cette étape était de trouver les composants utilisés (DHT11, LM35, Xbee, Arduino Uno …) sous ce logiciel. Mais après quelques recherches approfondies sur internet, on a fini par trouver quelques-uns de ses composants, les autres étant introuvables, on a dû les établir grâce aux données relatives aux dimensions fournies par le constructeur.


Les composants tous récupérés sous CadSoft Eagle, on a commencé le routage de la carte réceptrice, quant à la carte émettrice on l’a entamé sans pour autant la finir, faute de non disponibilité de certains capteurs ce qui rend la liste des capteurs de la carte émettrice ouverte et donc la carte modifiable à tout moment.
Carte réceptrice
Carte émettrice



  • ZigBee est un protocole de haut niveau permettant la communication de petites radios, à consommation réduite, basée sur la norme IEEE 802.15.4 pour les réseaux à dimension personnelle (Wireless Personal Area Networks : WPAN).