Raumlüftungssystem basierend auf „Himbeere“ und „CO2-Detektor“
Die Mode für Smart Homes hat das gesamte Internet erfasst. Jeder möchte jetzt eine Glühbirne herstellen, die sich über das Internet ausschalten oder einen Ventilator in der Toilette umdrehen lässt. Meine Erfahrung war ganz einfach: Ich wollte ein System entwickeln, das einen Raum automatisch belüften kann, nicht mehr und nicht weniger.Nachdem ich das Prinzip des Systems betrachtet hatte, kam ich zu einigen Schlussfolgerungen, die ich umsetzen wollte. Wie geplant ist die gesamte Funktionalität des Systems in drei Komponenten unterteilt: das „Gehirn“, das alles steuert, das Belüftungssystem zum Öffnen des Fensters / oder Einschalten des Ventilators und der Sensor selbst, der die Luftqualität im Raum überwacht. Ich werde Ihnen mehr über den Luftqualitätssensor erzählen und ein wenig auf das Thema der Integration in das „Gehirn“ eines Smart Homes eingehen.Geräteübersicht
Ich beschloss, die Qualität der „Frische“ der Luft durch die Konzentration von Kohlendioxid zu kontrollieren. Zukünftige Pläne beinhalten die Einführung von Sensoren für Ammoniak, Propan / Butan (Gaslecks), Staubkonzentration in der Luft usw.Es wurde beschlossen, das Lüftungssystem in einem Wohnzimmer zu platzieren, in dem eine Person so viel Zeit wie möglich verbringt. Wahrscheinlich ist ein solcher Raum ein Schlafzimmer, und dort ist ein automatisches Belüftungssystem im Schlaf sehr nützlich.
Es ist kein Geheimnis, dass die Konzentration von Kohlendioxid in der Luft nicht nur die Produktivität des menschlichen Gehirns, die menschliche Leistung, sondern auch die Fähigkeit, sich gut auszuruhen, stark beeinflusst. Je höher die CO2-Konzentration ist, desto schlechter.
Der Kohlendioxiddetektor der Firma Dadget wurde als Gerät zur Messung der Kohlendioxidkonzentration verwendet.Dieses Gerät kann über den USB-Anschluss eines Computers oder Laptops mit Strom versorgt werden. Auf der Vorderseite - LCD-Anzeige, die Informationen zur Kohlendioxidkonzentration und Umgebungstemperatur anzeigt. Es gibt auch 3 LEDs, die dem Benutzer eine visuelle Darstellung des Inhalts geben. Alles ist ganz einfach - schalten Sie das Gerät ein. Und alles funktioniert.Es hat mich angezogen, dass es Software gibt, die mit diesem Gerät funktioniert. Es gibt Software für Windows und Linux. Der Quellcode des Programms für Linux befindet sich auf Github und scheint von unserem Landsmann geschrieben worden zu sein. Und wenn Sie den Quellcode haben, können Sie sich etwas einfallen lassen, es ändern und das Programm für sich selbst "schärfen".Workflow-Übersicht
Wie Praxis und Google gezeigt haben, wird das Gerät vom Computer als HID-Gerät angesehen. Daher gibt es im Programm für Windows eine DLL namens HIDApi. Um mit Linux arbeiten zu können, benötigen Sie die gleichnamige HIDApi-Bibliothek. Ich habe den Quellcode für Linux-Software fertiggestellt und ein einfaches Quietschen geschrieben.Es ist klar, dass die Verwendung eines Linux-Computers zum Lesen von Daten vom Sensor und zum Übertragen auf einen Smart-Home-Controller irgendwo Blasphemie ist. Daher wurde beschlossen, Raspbery pi mit reinem Debian zu verwenden. In Zukunft ist geplant, alles auf Arduino zu erledigen und über drahtlose Kanäle zu übertragen.Das Schema meines Hardware-Software-Komplexes ist wie folgt:
Ein sachkundiger Leser und ein begeisterter Geek könnten denken, dass es nicht sehr sportlich ist, HUB in diesem Schema zu verwenden. Richtig, Sie können einen CO2-Monitor direkt anschließen und das Leben genießen. Mit einem solchen Schema löse ich mehrere Probleme gleichzeitig:● Meistens befindet sich das Gehirn eines Smart Homes nicht dort, wo sich der Sensor befindet.● Mit Himbeer-Pi können zusätzliche Sensoren angeschlossen werden.● Wenn Sie den Sensor separat platzieren, erhalten Sie zwei Anzeigemethoden: die erste auf dem Sensorbildschirm, die zweite auf dem Telefon oder über eine Webseite, da die Daten an die Steuerung übertragen werden.Ein MicasaVerde-Gerät wird als Smart-Home-Controller verwendet. Das Gerät kann Daten von Sensoren erfassen und Entscheidungen gemäß einem bestimmten Programm treffen, die in seiner Terminologie als „Szenen“ bezeichnet werden.
Auf dem Gerät können Sie virtuelle Sensoren erstellen und deren Informationen mithilfe von http-Anforderungen aktualisieren, was ich mit Himbeer-Pi getan habe.Beispielanforderung:IP-Adresse : 3480 / data_request? Id = Variablensatz & DeviceNum = 6 & serviceId = Urne: micasaverde-com: serviceId: DoorLock1 & Variable = Status & Wert = 1Das heißt, Malinka liest Daten vom Kohlendioxiddetektor und überträgt dann die Daten-http-Anforderung an Vera. Das Schema ist einfach, funktioniert aber.Software-Revision
Es gibt also eine „Himbeere“, egal welche Version, die Hauptsache ist, dass sie eine Netzwerkschnittstelle hat.Als Nächstes müssen Sie die Unterstützung für versteckte Geräte installieren. Diese Bibliothek stammt aus git, daher sollte git auf dem "malink"installiert werden : apt-get install libcurl4-gnutls-dev libexpat1-dev gettext libz-dev libssl-devLaden Sie als Nächstesdie Klonbibliothek mkdir hidapi
cd hidapi /
git init
git selbst herunter und installieren Sie sie github.com/signal11/hidapi.gitZusätzliche Bibliothekensudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev autotools-dev autoconf automake libtoolInstallierecd hidapi /
./bootstrap
./configure
make
sudo make installieren
Laden Sie danach den Quellcode des CO2-Überwachungsprogramms herunter.Mkdir co2monitor
cd co2monitor
git init
git clone github.com/dmage/co2mon.gitAls Nächstes habe ich den Programmcode ein wenig angepasst. In der ersten Version werden zwei Parameter (Temperatur und CO2) gelesen und in einer Endlosschleife an die Konsole gesendet . Diese Option passte nicht zu mir, das Ziel war es, sie einmal auszuführen und den Wert einmal zu erhalten, also habe ich zwei Zeilen in der main.c.Wir suchen nach Zeilenprintf ("CntR \ t% s \ n", buf);
fflush (stdout);Und wechseln Sie zuprintf ("% s \ n", buf);
fflush (stdout);
exit (1);Die erste Zeile ist für die Ausgabe des Werts verantwortlich. Nach der Änderung wird nur die Ziffer angezeigt. Nach der Ausgabe wird das Programm geschlossen und die Ausgangszeile (1) reagiert.Compilecmake ...
makeAls Nächstes haben wir ein einfaches Skript geschrieben, das das Programm startet, die Ausgabewerte des oben kompilierten Programms einer Variablen zuweist und diesen Wert dann mit curl an MicasaVerde übergibt. Fügen Sie danach die udev-Regel hinzu, damit das System ohne root auf den Sensor zugreifen kann.SUBSYSTEM == "usb", ATTR {idVendor} == "04d9", ATTR {idProduct} == "a052", MODE = "0666"Und fügen Sie das Abruf- und Übertragungsskript jede Minute zu cron hinzu.crontab -eUnd füge die Zeile hinzu* * * * * /home/pi/co2sender.sh
Das Ergebnis des SkriptsNatürlich müssen Sie die MicasaVerde-Dateien noch so konfigurieren, dass überall ausreichende Datensätze vorhanden sind. Aber es funktioniert schnell und einfach.Fazit
Als Ergebnis verfügen wir über ein System, das auf dem CO2-Detektor basiert und wie gewohnt arbeitet und Änderungen der Kohlendioxidkonzentration analysiert und darüber berichtet. Gleichzeitig liest Malinka einmal pro Minute Daten vom Sensor und überträgt sie an den Smart-Home-Controller, der bei Bedarf das Lüftungssystem einschalten kann. Source: https://habr.com/ru/post/de390859/
All Articles