Système de ventilation de la pièce basé sur «framboise» et «détecteur de CO2»

La mode des maisons intelligentes a balayé tout Internet, tout le monde veut maintenant fabriquer une ampoule qui peut s'éteindre via Internet ou allumer un ventilateur dans les toilettes. Mon expérience était assez simple: je voulais faire un système qui puisse ventiler automatiquement une pièce, ni plus, ni moins.

Après avoir examiné le principe du système, je suis parvenu à quelques conclusions, que j'ai décidé de mettre en œuvre. Comme prévu, l'ensemble des fonctionnalités du système est divisé en trois composants: les "cerveaux" qui contrôlent tout, le système de ventilation pour ouvrir la fenêtre / ou allumer le ventilateur, et le capteur lui-même qui surveille la qualité de l'air dans la pièce. Ci-après, je vais parler du capteur de qualité de l'air, plus une petite touche sur le sujet de son intégration avec le "cerveau" d'une maison intelligente.

Présentation de l'appareil


J'ai décidé de contrôler la qualité de la «fraîcheur» de l'air par la concentration de dioxyde de carbone. Les plans futurs comprennent le lancement de capteurs pour l'ammoniac, le propane / butane (fuites de gaz), les concentrations de poussière dans l'air, etc.

Il a été décidé de placer le système de ventilation dans un salon où une personne passe autant de temps que possible. Probablement, une telle pièce est une chambre à coucher, et c'est là qu'un système de ventilation automatique sera très utile pendant une nuit de sommeil.



Ce n'est un secret pour personne que la concentration de dioxyde de carbone dans l'air affecte fortement non seulement la productivité du cerveau humain, les performances humaines, mais également la capacité de prendre un bon repos. Plus la concentration de CO2 est élevée, pire c'est.



Le détecteur de dioxyde de carbone de la société Dadget a été utilisé comme appareil de mesure de la concentration de dioxyde de carbone.

Cet appareil peut être alimenté par le port USB d'un ordinateur ou d'un ordinateur portable. Sur le panneau avant - Indicateur LCD, qui affiche des informations sur la concentration de dioxyde de carbone et la température ambiante. Il y a également 3 LED qui donnent à l'utilisateur une représentation visuelle du contenu. Tout est assez simple - allumez l'appareil. Et tout fonctionne.

J'ai été attiré par le fait qu'il existe des logiciels qui fonctionnent avec cet appareil. Il existe des logiciels pour Windows et Linux. Le code source du programme pour Linux est sur github et semble avoir été écrit par notre compatriote. Et si vous avez le code source, vous pouvez penser à quelque chose, le modifier, "affiner" le programme par vous-même.

Présentation du workflow


Comme l'ont montré la pratique et Google, l'appareil est considéré par l'ordinateur comme un appareil HID. Par conséquent, dans le programme pour Windows, il existe une DLL appelée HIDApi. Pour travailler avec Linux, vous avez besoin de la bibliothèque HIDApi du même nom. J'ai finalisé le code source du logiciel Linux et j'ai écrit un petit cri.

Il est clair que l'utilisation d'un ordinateur Linux pour lire les données du capteur et les transférer quelque part vers un contrôleur de maison intelligente est un blasphème. Par conséquent, il a été décidé d'utiliser Raspbery pi avec Debian pur installé. À l'avenir, il est prévu de tout faire sur Arduino et de transmettre via des canaux sans fil.

Le schéma de mon complexe matériel-logiciel est le suivant:



Un lecteur averti et un connaisseur passionné pourraient penser qu'il n'est pas très sportif d'utiliser HUB dans ce schéma. C'est vrai, vous pouvez directement connecter un moniteur de CO2 et profiter de la vie. En utilisant un tel schéma, je résous plusieurs problèmes à la fois:
● le plus souvent, le cerveau d'une maison intelligente n'est pas là où se trouve le capteur;
● l'utilisation de raspberry pi permet de connecter des capteurs supplémentaires;
● en plaçant le capteur séparément, nous obtenons deux méthodes d'indication, la première sur l'écran du capteur, la seconde sur le téléphone ou via une page web, puisque les données sont transmises au contrôleur.

Un appareil MicasaVerde est utilisé comme un contrôleur domestique intelligent, l'appareil peut collecter des données à partir de capteurs et prendre des décisions en fonction d'un programme donné, qui sont appelés «scènes» dans sa terminologie.



Dans l'appareil, vous pouvez créer des capteurs virtuels et mettre à jour leurs informations à l'aide de requêtes http, ce que j'ai fait avec Raspberry Pi.
Exemple de demande:
ip_address : 3480 / data_request? Id = variableset & DeviceNum = 6 & serviceId = urn: micasaverde-com: serviceId: DoorLock1 & Variable = Status & Value = 1
Autrement dit, Malinka lit les données du détecteur de dioxyde de carbone, puis transmet la requête http de données à Vera. Le schéma est simple mais fonctionne.

Révision du logiciel



Il y a donc une «framboise», quelle que soit la version, l'essentiel est qu'elle dispose d'une interface réseau.

Ensuite, vous devez installer la prise en charge des périphériques cachés. Cette bibliothèque provient de git, donc git doit être installé sur le "malink":

apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-dev

Ensuite, téléchargez et

installez la bibliothèque de clonage mkdir hidapi
cd hidapi /
git init
git clone
elle-même github.com/signal11/hidapi.git

Bibliothèques supplémentaires
sudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev autotools-dev autoconf automake libtool

Install
cd hidapi /
./bootstrap
./configure
make
sudo make installer


Après cela, téléchargez le code source du programme de surveillance du CO2
mkdir co2monitor
cd co2monitor
git init
git clone github.com/dmage/co2mon.git


Ensuite, j'ai légèrement modifié le code du programme, dans la version initiale, il lit deux paramètres (température et co2) et l'envoie à la console dans une boucle sans fin . Cette option ne me convenait pas, l'objectif était de l'exécuter une fois et d'obtenir la valeur une fois, j'ai donc changé deux lignes dans le main.c.

Nous recherchons des lignes

printf ("CntR \ t% s \ n", buf);
fflush (stdout);


Et changez pour

printf ("% s \ n", buf);
fflush (stdout);
exit (1);


La première ligne est responsable de la sortie de la valeur, après le changement, seul le chiffre sera affiché, et après la sortie, le programme se fermera, la ligne de sortie (1) répondra.

Compiler
cmake ...
make


Ensuite, nous avons écrit un script simple qui lance le programme, attribue les valeurs de sortie du programme compilé ci-dessus à une variable, puis transmet cette valeur en utilisant curl à MicasaVerde. Après cela, ajoutez la règle udev pour que le système ait accès au capteur sans root.

SOUS-SYSTÈME == "usb", ATTR {idVendor} == "04d9", ATTR {idProduct} == "a052", MODE = "0666"

Et ajoutez le script d'interrogation et de transmission à cron, chaque minute.

crontab -e
Et ajoutez la ligne
* * * * * /home/pi/co2sender.sh


Le résultat du script

Bien sûr, vous devez toujours configurer les fichiers MicasaVerde pour qu'il y ait des enregistrements adéquats partout. Mais cela fonctionne, rapidement et facilement.

Conclusion



En conséquence, nous avons un système basé sur le détecteur de CO2 , qui fonctionne comme d'habitude, analyse et rapporte les changements de concentration de dioxyde de carbone. En même temps, Malinka lit les données du capteur une fois par minute et les transfère au contrôleur de la maison intelligente, qui peut activer le système de ventilation si nécessaire.

Source: https://habr.com/ru/post/fr390859/


All Articles