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.