Wir entwickeln einen Luftqualitätskontrollsensor für InfluxDB, Grafana, Docker und Raspberry Pi

Haben Sie schon einmal daran gedacht, die Luftqualität innerhalb oder außerhalb Ihres Hauses zu überwachen: Wo leben und arbeiten Sie? Dieses Projekt, das wir balenaSense getauft haben , ist eine Einheit zur Messung von Temperatur, Luftfeuchtigkeit, Luftdruck und Luftqualität sowie ein Dashboard, auf das Sie von überall aus zugreifen können, um zusammenfassende Statistiken anzuzeigen und Trends zu verfolgen.



Inhalt



Einführung


Um die Qualität der Luft und der Wetterstation zu kontrollieren, sind viele Drähte und verschiedene Sensoren erforderlich. Die Situation wurde jedoch einfacher, nachdem Sensoren aufgetaucht sind, die alle Messwerte auf einer guten kleinen Platine kombinieren, was einfach zu beginnen ist.



Überlegen Sie, ob Sie Temperatur, Luftfeuchtigkeit, Luftdruck und Luftqualität mit einem All-in-One-Sensor überwachen möchten, der ohne zusätzliche Komponenten direkt mit dem Raspberry Pi verbunden ist. Sie benötigen keine Erfahrung in der Elektronik, aber ein Lötkolben wäre willkommen (obwohl er auch optional ist). Dieses Projekt implementiert eine Datenbank zum Speichern historischer Messwerte sowie eine grafische Oberfläche, um aktuelle Messwerte anzuzeigen und Trends sofort anzuzeigen.





Notwendige Ausrüstung


Hier ist, was Sie für dieses Projekt kaufen müssen. Je nachdem, ob Sie einen Lötkolben verwenden möchten oder nicht, wählen wir eine Sensorplatine: Einige funktionieren sofort, andere erfordern ein wenig Löten.



Ich möchte nicht löten


Wenn Sie nicht löten möchten, benötigen Sie:


Ich möchte löten - gib mir!


Wenn Sie gerne einen Lötkolben in die Hand nehmen, benötigen Sie:


Andere Sensoren


Wenn Sie bereits einen Sensor haben, unterstützt dieses Projekt Sense HAT mit einem zusätzlichen Bonus: einem Smiley auf der LED-Matrix (natürlich abhängig von der Luftqualität)!



Bosch BME680 mit Steigrohr kann bei verschiedenen Lieferanten zu unterschiedlichen Preisen bestellt werden.


Hinweis In dem Artikel verwenden wir Pimoroni: Diese Karte hat den zusätzlichen Vorteil, dass die Kontakte in der richtigen Reihenfolge für den Raspberry Pi GPIO unterbrochen werden. Wenn Sie andere Karten verwenden, müssen Sie überprüfen, ob die Stromversorgungs-, Erdungs- und I2C-Bus-Pins (SDA und SCL) übereinstimmen. Dies wird später in diesem Handbuch erläutert.

Software


Wir haben das Balena-Sense- Projekt auf GitHub geöffnet, das die gesamte Software, Konfiguration und den Code enthält, die Sie für ein funktionierendes System benötigen. Wir werden dieses Projekt auf einem kostenlosen balenaCloud- Konto bereitstellen , um die gesamte Software für den Raspberry Pi zu verteilen und den Fernzugriff bereitzustellen. Daher benötigen Sie:


Montage der Ausrüstung


An der Hardware-Front dieses Projekts gibt es wenig Arbeit. Unser Ziel ist es, die Sensorplatine mit dem GPIO-Pin des Raspberry Pi zu verbinden.

Der BME680 kommuniziert mit dem Raspberry Pi über einen Bus namens I2C (Eye-Squared-See), bei dem es sich um einen seriellen Bus mit zwei Drähten handelt. Diese beiden Drähte werden als Synchronisationsleitung (SCK) und Datenleitung (SDA) bezeichnet. Zusätzlich zu den beiden Drähten muss der Sensor (3,3 V oder 3 V3) mit Strom versorgt und geerdet werden.

Wenn Sie die Option wählen, ohne von Pimoroni oder Sparkfun zu löten oder den Sense HAT zu verwenden, schließen Sie einfach die glänzenden neuen Komponenten an den Raspberry Pi an und alle Verbindungen werden für Sie hergestellt: Fahren Sie mit dem nächsten Schritt fort!

Wenn Sie den Sensor mit Pimoroni oder einem anderen Riser direkt an den Raspberry Pi anschließen möchten, müssen Sie vor allem sicherstellen, dass die oben beschriebenen Kontakte (SDA, SCK, 3V3 und GND) korrekt angeschlossen sind.



Eine nützliche Seite für die Arbeit mit GPIO auf Raspberry Pi ist pinout.xyz ; Es zeigt deutlich, dass wir die Pins 1 (3V3-Leistung), 3 (SDA), 5 (SCL) und 9 (Masse) benötigen. Ein 40-poliger GPIO ist Standard bei Pi 2 und höher. Wenn Sie eine Pimoroni-Karte verwenden, befinden sich die Kontakte in der richtigen Reihenfolge, um die Karten anzuschließen. Beachten Sie, wie die Beschriftung auf der Tafel mit dem Pinbelegungsdiagramm oben übereinstimmt.



Wenn Sie den Sensor jedoch auf diese Weise anschließen, wirkt sich die Wärme des Raspberry Pi-Prozessors auf die Messwerte aus. Um genauere Messwerte zu erfassen, müssen Sie den Sensor von der Platine entfernen: Verwenden Sie dazu DuPont- Mutter-zu-Mutter- Kabel (oder Jumper Jerky- Kabel) , wie unten gezeigt:



Wenn Sie einen anderen Sensor verwenden, bei dem die Pinbelegungsdiagramme nicht genau übereinstimmen, können Sie diese Karten auf dieselbe Weise mit dem Pi verbinden. Die Hauptsache ist, die Einhaltung von 3V3, SDA, SCL und GND sicherzustellen. Wenn die Karte Kontakte für SDI, SDO, CS hat, können Sie diese ignorieren, da sie für eine alternative SPI-Schnittstelle verwendet werden, die wir in diesem Projekt nicht verwenden.

Auf den obigen Fotos haben wir den Raspberry Pi 3A +, aber Pi Zero eignet sich auch als billigere Lösung.

Konfigurieren Sie Raspberry Pi


Wir werden die SD-Karte mit dem balenaOS-Betriebssystem flashen, eine Verbindung zur balenaCloud-Cloud herstellen, dort unser Gerät hinzufügen und das Projekt so konfigurieren, dass es später problemlos aktualisiert werden kann.

Zuerst müssen Sie ein balenaCloud-Konto einrichten. Dies bedeutet, sich zu registrieren, eine Anwendung hinzuzufügen und ein Gerät hinzuzufügen.

Schritt 1. Melden Sie sich bei balenaCloud an


Wenn Sie bereits ein GitHub- oder Google-Konto haben, können Sie sich damit anmelden, ohne den Registrierungsprozess durchlaufen zu müssen.

Schritt 2. Erstellen der Anwendung


Fügen Sie die Anwendung hinzu, indem Sie den richtigen Gerätetyp und Starter als Anwendungstyp auswählen und dann auf Create New Application klicken. Dieser Typ unterstützt alle Microservices und ist für bis zu zehn Geräte kostenlos.

Als Nächstes werden Sie zum Dashboard für die neu erstellte Anwendung weitergeleitet, wo Sie mit dem nächsten Schritt fortfahren und das Gerät hinzufügen können. Sie können der Anwendung einen beliebigen Namen geben, den Sie jedoch später im Handbuch benötigen, wenn wir den Code schreiben.

Schritt 3. Fügen Sie das Gerät hinzu und starten Sie das Betriebssystem


Nach dem Erstellen der Anwendung können Sie dieser Anwendung ein Gerät hinzufügen, indem Sie auf die grüne Schaltfläche Gerät hinzufügen klicken. Geben Sie beim Hinzufügen eines Geräts den richtigen Gerätetyp an. Wenn Sie eine Verbindung zu einem drahtlosen Netzwerk herstellen, können Sie Ihre WiFI-SSID und Ihre Passphrase festlegen.

Hinweis: Raspberry Pi 3 wird in der Animation angezeigt. Vergessen Sie nicht, den richtigen Typ Ihres Geräts auszuwählen!



Dieser Prozess erstellt ein benutzerdefiniertes Image für die Anwendung und den Gerätetyp, das gegebenenfalls Netzwerkeinstellungen enthält.

Hinweis: Für den Anfang ist es besser, ein Entwickler-Image auszuwählen, um einige Tests durchzuführen und Fehler zu beheben. Weitere Informationen zu den Unterschieden zwischen Entwicklungs- und Produktionsbildern finden Sie hier . Wenn Sie sicher sind, dass Sie sofort mit der Bereitstellung eines Produktionsabbilds beginnen können, klicken Sie bitte.

Schritt 4. SD-Karte und Startgerät aufnehmen


Wenn das Betriebssystem-Image geladen ist, ist es Zeit, die SD-Karte zu flashen. Hierfür können Sie balenaEtcher verwenden .



Legen Sie nach Abschluss des Vorgangs die SD-Karte in den Raspberry Pi ein und schließen Sie die Stromquelle an.



Wenn das Gerät zum ersten Mal gestartet wird, stellt es eine Verbindung zum balenaCloud-Dashboard her. Anschließend können Sie es in der Online-Liste anzeigen und mit dem nächsten Schritt fortfahren.



Fehlerbehebung: Das Gerät sollte in wenigen Minuten auf dem Bedienfeld angezeigt werden. Wenn es nicht angezeigt wird, ist ein Fehler aufgetreten. Die Dokumentation enthält eine ausführliche Anleitung zur Fehlerbehebung mit zahlreichen Informationen dazu, warum dies passieren kann. Wenn die Dokumentation nicht geholfen hat, wenden Sie sich bitte an die Foren .

Softwarebereitstellung


Wenn Ihr Raspberry Pi vorbereitet, heruntergeladen und mit balenaCloud verbunden ist, können Sie den Anwendungscode auf dem Gerät installieren.

Installieren Sie die Balena CLI-Tools auf einer Workstation


Mit BalenaCloud können Sie Anwendungssoftware / -code remote auf den Raspberry Pi und andere Geräte übertragen. Um dies zu ermöglichen, muss Ihre Workstation (nicht der Raspberry Pi) einige Mindestsoftwareanforderungen erfüllen. Hinweis: Um dieses Projekt erfolgreich bereitzustellen, müssen Sie keine Befehle auf dem Gerät selbst ausführen, weder über SSH noch über das balenaCloud-Dashboard. Alles wird aus der Ferne erledigt!

Wenn Sie bereits npm auf Ihrem Computer haben (oder konfigurieren können), ist dies der schnellste Weg, um CLI-Tools auszuführen. Es gibt auch Binärdateien für Windows, MacOS und Linux . Hinweis: Wenn Sie diese Tools bereits für unsere anderen Projekte installiert haben, können Sie diesen Teil überspringen und direkt mit dem nächsten Schritt fortfahren.

Die Dokumentation zu den CLI-Tools beschreibt die Installation und Konfiguration des npm-Pakets sowie die Binärdateien.

Wenn die CLI installiert ist und ausgeführt wird, müssen Sie sich zunächst bei balenaCloud anmelden, indem Sie den Befehl balena login ausführen:





Wenn im Konto eine funktionierende CLI registriert ist, können Sie Programme auf dem Raspberry Pi installieren.

Ein Projekt von GitHub herunterladen


Der nächste Schritt ist das Herunterladen des Codes für dieses Projekt von GitHub .

Die blaue Schaltfläche lädt die Projekt-Zip-Datei. Wenn Sie jedoch bereits mit Git vertraut sind, können Sie den git clone übliche Weise verwenden.

Auf Raspberry Pi installieren


Da die CLI und der neueste Code installiert sind, können Sie diesen Code mit einem Befehl auf balenaCloud ausführen. Dort wird das Docker-Image gesammelt und konfiguriert, das auf Ihrem Gerät ausgeführt wird.

Führen Sie nach dem Entpacken aus dem balena push <appName> , wobei appName der am Anfang des Handbuchs angegebene Anwendungsname ist. Zum Beispiel balena push balenaSense .

Wenn alles korrekt ausgeführt wurde, sollte nach einigen Minuten auf dem Informationsbildschirm Ihres Geräts auf dem Bedienfeld die ausgeführten Dienste angezeigt werden, einer für jede der Softwarekomponenten.



Das erste Mal kann der Download einige Minuten dauern (abhängig von der Geschwindigkeit Ihrer Internetverbindung), aber dann werden nur die Änderungen im Container heruntergeladen, sodass alles viel schneller abläuft.

Hinweis: Wenn die Anwendung zum ersten Mal gestartet wird (und Sie BME680 und nicht Sense HAT verwenden), führt der Sensor etwa fünf Minuten lang ein Einbrennen durch. Während dieser Zeit werden die Messwerte nicht erfasst und in die Datenbank eingefügt. Die Anwendung zeichnet den Countdown auf, der im balenaCloud-Bereich angezeigt wird:



Wenn die Anzahl Null erreicht, wird die Meldung "Startschleife ..." angezeigt. Danach werden die Messwerte alle 10 Sekunden erfasst und in die Datenbank eingefügt.

Dashboard anzeigen


Ich hoffe, Sie haben das Gerät geflasht, mit dem Netzwerk verbunden und ohne Probleme gestartet. Einer der großen Vorteile der Verwendung eines kostenlosen balenaCloud-Kontos ist die Public Device URL Funktion für Public Device URL .



Aktivieren Sie diesen Schalter und klicken Sie auf das blaue Pfeilsymbol, um auf das Dashboard zuzugreifen. Sie können diesen Link freigeben oder auf Ihrem Telefon oder einem anderen Gerät mit einem Lesezeichen versehen. Während das balenaSense-Gerät angeschlossen ist und funktioniert, können Sie von überall auf das Dashboard schauen!



Wenn Sie den öffentlichen Zugriff nicht aktivieren möchten, können Sie das Dashboard weiterhin von Ihrem eigenen lokalen Netzwerk aus nach IP-Adresse anzeigen, wie im obigen Screenshot dargestellt. Ihre wird anders sein, aber geben Sie einfach http://<ip-> in den Browser ein, und Sie erhalten weiterhin Zugriff auf das Dashboard, wenn Sie sich im selben Netzwerk wie das Gerät befinden. Um beispielsweise auf mein Gerät zuzugreifen, würde ich http://10.1.231.36 eingeben.

Wenn Sie sich bei Grafana anmelden und mit den Einstellungen herumspielen möchten, sind die Standardanmeldeinformationen admin und admin .

Wie funktioniert es


Dieses Projekt besteht aus drei Hauptkomponenten und drei Diensten. Diese Namen befinden sich im balenaCloud-Dashboard:

  • InfluxDB - eine Datenbank zum Speichern von Sensorwerten
  • Sensor - Python-Bibliothek und Code für den Zugriff auf den Sensor, das Ablesen und Speichern in der Datenbank
  • Grafana - wird verwendet, um ein Dashboard mit Grafiken und Berichten zu erstellen

Der BME680-Sensor von Bosch erkennt Temperatur, Luftfeuchtigkeit, Druck und Gasbeständigkeit. Temperatur-, Feuchtigkeits- und Drucksensoren funktionieren sofort, aber Gaswiderstandsmessungen allein sind nicht sehr nützlich. Dies sind Indikatoren für Änderungen der Luftzusammensetzung. Wenn der Sensor startet, legt er die Basis fest und überwacht dann die Änderungen. Indikative Indikatoren für die Luftqualität sind in Prozent angegeben und berücksichtigen den Einfluss von Luftfeuchtigkeit und Gasbeständigkeit.

Wenn Sie den Sense HAT verwenden, für den kein Gaswiderstandssensor vorhanden ist, approximieren wir die Luftqualitätswerte basierend auf den Zieltemperatur- und Feuchtigkeitswerten.

Was weiter?


Ich hoffe, dass Sie das Projekt jetzt vollständig gestartet, Zugriff auf das Dashboard erhalten, Lesungen vorgenommen und mit dem Ausfüllen Ihrer Datenbank begonnen haben. Erwähnen Sie einige wichtigere Dinge.

Passwort ändern


Wenn Sie das Gerät für den öffentlichen Zugriff öffnen, wird empfohlen, das Kennwort für Grafana zu ändern.



Wir richten das System mit dem Benutzernamen und dem Standardkennwort admin admin . Um sie zu ändern, melden Sie sich mit der Schaltfläche in der unteren linken Ecke des Bedienfelds bei Grafana an. Sie werden beim ersten Anmelden aufgefordert, das Kennwort zu ändern.

Anpassung


Das Grafana-Programm für das Dashboard und die Berichte enthält viele Konfigurationsparameter und -einstellungen. Wir haben ein Basisfenster erstellt, das für jede der vier Messoptionen ein Diagramm und eine Grafik anzeigt.



Sie können jedes Grafana-Bedienfeld anpassen, indem Sie den Mauszeiger über den Titel bewegen und mit der Bearbeitung fortfahren. Ich empfehle, mit den Einstellungen herumzuspielen. Die Änderungen im Dashboard werden nicht automatisch gespeichert. Wenn Sie also einen Fehler machen, laden Sie die Seite einfach neu und alles kehrt in seine ursprüngliche Form zurück. Wenn Sie die Änderungen speichern möchten, klicken Sie oben in der Systemsteuerung auf Speichern. Alle Einstellungen werden auf Ihrem Gerät gespeichert.



Sie können die Sensoren auch konfigurieren. Zum Beispiel haben wir im Manometerdiagramm mehrere grundlegende Bereiche und Textwerte anstelle von Zahlen eingerichtet. All dies ändert sich nach Ihrem Geschmack!

Gehäuse


Solche Sensoren eignen sich ideal für die Platzierung in einer Wetterkabine , die die Sensoren vor Sonnenlicht und Strahlungswärme schützt. Wenn Sie die Umgebung im Raum kontrollieren, ist dies nicht so wichtig. Wenn der Sensor jedoch im Freien installiert wird, sind seine Positionierung und sein Schutz wichtig, um genaue Messwerte zu erhalten.

Wetterstände sind im Verkauf , aber sie können ziemlich teuer sein. Erwägen Sie daher DIY-Optionen .

Thingiverse verfügt über mehrere BME680-Gebäude und Wetterstände .

Letzte Gedanken


Danke fürs Lesen! Wenn Sie sich entscheiden, eine eigene Wetterstation mit Luftqualitätskontrolle zu bauen, teilen Sie uns mit, wie alles gelaufen ist und welche Probleme aufgetreten sind. Ideen für die Entwicklung unseres Projekts können in den Foren zum Ausdruck gebracht werden.

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


All Articles