Live-Daten meiner Feinstaubmessstation in Heslach (Stuttgart Süd)

Ein Arbeitskollege hat mich auf die Idee gebracht, das Citizen Science Projekt luftdaten.info mit einer eigenen, selbstgebauten Feinstaubmessstation zu unterstützen.

Nicht nur weil ich in Stuttgart wohne und arbeite fand ich die Idee super: Das sollte auch mein erster Ausflug in die Welt der IoT werden.

Sehr einfache und verständliche Anleitung

Ich war sehr überrascht, wie schnell sich aus den wenigen Teilen der Materialliste in der der Anleitung auf der Projektwebseite ein funktionierender Feinstaubsensor bauen lässt. Nachdem die bereitgestellte Firmware auf den Microcontroller geflasht und die WLAN-Verbindung eingerichtet war, konnten die ersten Messwerte abgelesen werden.

Ich bin mal gespannt, wann meinen Sensor in der Stuttgarter Feinstaubkarte auftaucht.

Die Daten können mehr...

Die vorgefertigte Firmware für den Feinstaubsensor schickt die gemessenen Feinstaubwerte in die Datenbank des Stuttgarter Feinstaubprojekts. Sie bietet aber auch die Möglichkeit, die Messwerte an eine eigene API zu übermitteln. Ich hab das natürlich gleich genutzt, um den ThingSpeak channel "Südstaub" mit den Daten meines Sensors zu füttern.
Das erlaubt mir nun, nicht nur den aktuellen Messwert abzulesen, ich kann auch den Verlauf der Messewerte analysieren.

Hier der Verlauf der Feinstaubkonzenration vor meinem Fenster der letzten 24 Stunden

Wie die Angaben (PM10 und PM2.5) zu interpretieren sind, kann in dem Wikipedia Artikel zu Feinstaub nachgelesen werden

Gemessen wird mit einem photometrischen Sensor (SDS011), der die Staubkonzentration anhand der Streuung eines Laserstrals bestimmt.
Die Steuerung und Netzwerkanbindung wird über einen WIFI-Chip mit integriertem Microcontoller (ESP8266) bewerkstelligt.

Weitere Übersichten meiner Daten gibt es auch auf madavi.de (vor Umbau auf D1 mini Pro)

Update: Alternatives WiFi-Board

Da mein Feinstaubsensor zu meiner Fritz!Box eine ungünstige Position hat, verlor das NodeMCU Board zeitweise die WLAN Verbindung. Die kleine Kupferantenne auf der ESP-8266 Platine erfüllt ihren Zweck, hat aber offenbar nicht die beste Leistung.
Das wäre jetzt nicht weiter schlimm, wenn ich mittlerweile nicht den Wert des Temperatursensor auf dem Home Screen meines Handys hätte (ersetzt mein Außenthermometer). Da will ich schon immer den aktuellen Wert sehen.

An das NodeMCU v3 Board lässt sich leider keine externe WLAN-Antenne anschließen - außer man trennt die Kupferantenne irgendwie ab und lötet dann eine Antenne dran. Ich wollte aber nicht an dem Board "rum pfuschen", darum werwende ich jetzt ein anderes mit Antennenanschluss: Das D1 mini Pro von Wemos.

Dieses Board ist nur halb so groß wie das NodeMCU und hat darum auch weniger Pins. Die IO-Pins (D1, D2 und D7), welche von der Firmware des Feinstaubprojekts für die Sensoren benutzt werden, sind aber vorhanden. Auch 5 V und 3,3 V können abgegriffen werden, es gibt jedoch nur einen Ground Pin.
Ich hab mir darum kurzerhand eine Lochrasterplatine zusammengebaut, die einerseits Steckplätze für die Sensoren bietet, anderseits auch wieder eine Befestigungsmöglichkeit an dem SDS011 Sensor hat. Die Buchsenleisten waren sogar Teil des Lieferumfangs des D1 mini Pro.

Wemos D1 mini Pro auf Lochrasterplatine an SDS011 Feinstaubsensor

Die einzige kleine Hürde war das flashen der Firmare auf den Chip. Am Ende hat es mit den folgenden Parametern funktioniert:
esptool.exe -vv -bf 80 -bz 4M -cd nodemcu -cb 921600 -ca 0x00000 -cp COM8 -cf feinstaub-firmware.bin

Schon beim konfigurieren der Sensor-Firmware wurden mir - gefühlt - doppelt so viele verfügbare WLANs angezeitgt als mit dem NodeMCU v3.
Fertig eingerichtet zeigt mir die Sensor-Webseite unter dem Punkt "aktuelle Werte" jetzt ca. 30 dBm mehr WiFi-Signal an.
Seit ich diese Konfiguration verwende, hatte ich keine Verbindungsabbrüche mehr.