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.
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.