Feinstaubsensor
Im Frühjahr 2018 bin ich über das Citizen Science-Projekt https://luftdaten.info gestolpert und war sofort begeistert. Die Idee hinter dem Projekt ist, verteilt über die ganze Welt die Feinstaubbelastung der Luft zu messen und in Echtzeit auf einer Karte darzustellen. Für die Erfassung des Feinstaubs kommt der Feinstaubsensor SDS011 zum Einsatz, außerdem werden die Lufttemperatur- und Feuchte sowie der Luftdruck mit dem BME280 gemessen. Die Daten werden ca. alle zweieinhalb Minuten über das WLAN an den Server von Luftdaten.info übertragen. Der Zusammenbau des Sensors ist sehr einfach. Ich habe mir für den Sensor ein wetterfestes, formschönes und unauffälliges Gehäuse gedruckt.
Elektrischer Aufbau und Programmierung
Verbaut wurden der Feinstaubsensor SDS011 und der Temperatur- und Luftfeuchtigkeitsstensor BME280, der zusätzlich auch den Luftdruck misst. Die Sensoren wurden wie bei Luftdaten.info beschrieben angeschlossen.
Um die Elektronik gegen Verpolung und Überspannung zu schützen, habe ich einen Pololu 5V, 2.5A Step-Down Spannungsregler (D24V22F5) vorgeschaltet. Dieser Spannungsregler ist zwar völlig überdimensioniert, sein Vorzug gegenüber kleineren Spannungsreglern von Polopu ist aber der integrierte Verpolungsschutz. Die Eingangsspannung darf damit zwischen 6 und 36 Volt liegen. Die Spannungsversorgung erfolgt mit einem Steckernetzteil mit 12 Volt. Der Stromverbrauch liegt in den Messpausen bei ca. 60 mA und steigt während der Messung auf ca. 110 mA. Der NodeMCU ist auf eine kleine Lochrasterplatine gesteckt, so dass bei Bedarf ein einfacher Austausch möglich ist.
Die größte Herausforderung war das Einspielen der Firmware. Auf einem Computer mit Windows 10 klappte das nicht, auf einem älteren Laptop mit Windows 7 funktionierte die Übertragung wie bei Luftdaten.info beschrieben. Hilfreich was auch dieses Video-Tutorial. Mein Kommandozeilenbefehl sieht wie folgt aus:
Users\Peter\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.12\esptool.exe -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp COM5 -cf Users\Peter\AppData\Local\Arduino15\packages\esp8266\tools\esptool\0.4.12\latest_de.bin
Hilfreiche Webseiten für die Konfiguration:
Die ID meines Feinstaubsensors ist 10443411.
Gehäuse
Um die Elektronik gegen Wind und Wetter zu schützen, habe ich ein Gehäuse gedruckt. Der Feinstaubsensor und der NodeMCU nebst Spannungsregler sind zweiseitig auf einen Komponententräger geschraubt, der hochkant von unten in das Gehäuse geschoben wird. Anschließend wird ein Deckel in das Gehäuse geschoben und mit zwei Schrauben mit dem Gehäuse verschraubt. Der Deckel führt den Silikonschlauch des Feinstaubsensors an ein Fliegengitter und bietet dem BME280 ein Zuhause, der dicht an dem Fliegengitter montiert ist. Das Fliegengitter wird schließlich von einer Wabengitterstruktur fixiert, die mit einer einzelnen Schraube mit dem Deckel verbunden wird.
Die STL-Dateien für das Gehäuse habe ich bei Thingiverse hochgeladen.
Daten abrufen
Aus dem Heimnetz können die aktuellsten Messergebnisse hier eingesehen werden.
iot.frickelpiet.de
Außerdem - und das ist der interessantere Teil - werden die Daten des Feinstaubsensors alle 2,5 Minuten an meinen eigenen Webserver gesendet und auf einer hübschen Internetseite dargestellt.
Luftdaten.info
- Weltkarte aller Sensoren: http://deutschland.maps.luftdaten.info/
- Karte für Deutschland: http://deutschland.maps.luftdaten.info/
- Karte für Bielefeld: http://bielefeld.maps.luftdaten.info/
Bei Luftdateninfo ist die ID meines Feinstaubsensors 11016 und die des Temperatur- und Luftfeuchtesensors 11017.
Madavi.de
- Weltkarte aller Sensoren: https://www.madavi.de/sensor/feinstaub-map-sds/#2/0.0/0.0
- Grafische Darstellung meines Feinstaubsensors: https://www.madavi.de/sensor/graph.php?sensor=esp8266-10443411-sds011
- Grafische Darstellung meines BME280: https://www.madavi.de/sensor/graph.php?sensor=esp8266-10443411-bme280