Neben den Umweltwerten wie Temperatur, Luftfeuchte, Luftdruck stellt die Feinstaubbelastung in der
unmittelbaren Umgebung einen wichtigen Umweltfaktor dar. Diese Partikel (10µg bzw 2,5µg) können
sehr tief ins Lungengewebe eindringen und nebenbei auch andere Substanzen (z.B. Giftstoffe)
mittransportieren. Besonders gefärdet sind Menschen mit Lungenvorerkrankung oder Kinder.
Die Sensor.community (früher Luftdaten.info) lädt zum Mitmachen ein.
Eine entsprechende Weltkarte gibt es unter https://maps.sensor.community. Im Bereich Nordthüringen gibt es
fast keine Messstellen.
Aktuelle Messwerte für Leinefelde
Für den Außeneinsatz kommt ein IP65-Kabelkasten (158*90*46) mit den Feinstaub-Sensor SDS011 und
einer NodeMCU (ESP8266, 4MB) zum Einsatz. Der Temperatur- und Luftfeuchtesensor DHT-22 kommt am unteren
Ende des Schlauches für den Lufteinlaß des Feinstaubsensors zum Einsatz.
Am Gehäuse befinden sich der Lufteinlass und Luftauslass. Die Geräte im Innenraum des Kabelkastens kommen
mit der Außenluft nicht in Kontakt. Die Stromversorgung (5V) wird über ein flaches Netzwerkkabel gelöst,
welches auch durch ein Fenster geführt wurde.
Das Projekt „AirRohr“ ist unter https://sensor.community/de/sensors/airrohr/ zu finden.
Alle Schritte sind hier beschrieben.
In diesen Projekt kommt zur Messung von Temperratur- und Luftfeuchte (auch Luftdruck) der Sensor BME280
zum Einsatz. Aus eigener Erfahrung würde ich diesen Sensor nicht einsetzen, da er mit Temperturen um
0°C und kläter im Außeneinsatz keine Messwerte mehr liefert. Daher auch meine Wahl zum DHT-22.
Als Sensor für die Feinstaubmessung kommt der NOVA SDS011 (5V, 0,25A) zum Einsatz.
Messung für PM2.5 und PM10 im Bereich von 0.0-999.9 μg /m3.
Vorderseite (Lufteinlass links) | Rückseite |
Laut Hersteller NOVA ist auch die Einbaurichtung des Meßgerätes zu beachten, selbstverständlich
auch der Lufteinlass und Luftauslass. Für den Lufteinlass kann ein Schlauch mit 6 mm Innendurchmesser
verwendet werden.
|
|
Rückseite (Schema) |
Rückseite (Anschluss - Pinleite unterhalb der Plantine) |
PIN-Anschluss | Info |
1 | NC - kein Anschluss |
2 | 1μm - PM2.5: 0-999μg/m³; PWM Output |
3 | 5V |
4 | 2.5μm - PM10: 0-999 μg/m³; PWM Output |
5 | GND |
6 | RDX - RX of UART(TTL)@3.3V |
7 | TDX - TX of UART(TTL)@3.3V |
Dieser Sensor (auch AM2302 genannt) dient zur Messung von Temperatur und relativer Luftfeuchtigkeit.
Spannunsbereich: | 3,3 - 6V DC |
rel. Luftfeuchtigkeit - Betriebsbereich: | 0-100 %RH |
rel. Luftfeuchtigkeit - Empfindlichkeit: | 0,1 %RH |
Temperatur - Betriebsbereich: | -40 ~ 80 Celsius |
Temperatur - Empfindlichkeit: | 0,1 Celsius |
DHT22 | Schema |
PIN-Anschluss | Info |
1 | VCC - Versorgungsspannung |
2 | DATA - Datensignal |
3 | NULL - Kein Anschluss |
4 | GND - Masse |
Zwischen der Datenleitung (2) des DHT22 und der Spannungsversorgung (1) muß ein
4,7 kOhm Pull-Up-Widerstand geschalten wird.
Mikrocontroller - NodeMCU (ESP8266)
WiFi | 802.11 b/g/n (2,4GHz-2,5GHz) |
Bussysteme | UART,GSPI,I2C,I2S,Ir Remote Control,GPIO,PWM |
Spannung | 3,0 - 3,6V |
Modul | ESP 12-F |
NodeMCU | Schema |
Aktuell läuft bei mir die Software NRZ-2020-133/DE (Nov 29 2020)
auf der NodeMCU.
Dabei werden folgende Geräte unterstützt:
Die Netzwerkverbindung erfolgt über WLAN (2,4GHz b/g/n) mit einer IPV4-Adressvergabe via DHCP.
Auf meinen Raspberry 4 läuf der „isc-dhcp-server“ wobei der Zeitserver über option ntp-servers
automatisch
zugewiesen wird. Der Selbstbau Zeitserver bezieht seine Informationen direkt via GPS.
Die Software ist unter der URL: https://firmware.sensor.community/airrohr/update/ zu finden.
Der „airRohr-Firmware-Flasher“ gibt es hier: https://firmware.sensor.community/airrohr/flashing-tool/.
Über die eingebaute API werden (Anmeldung erforderlich, hierbei wird auch eine ID erstellt) die Daten automatisch
auf Wunsch an folgende Dienste weitergeleitet:
Die Firmware beitet auch die Möglichkeit die Daten an eine eigene API zu senden - dies ist besonders sinnvoll,
wenn man die Daten innerhalt des eigenen Netzwerk speichern möchte. Schließlich kann das Internet auch mal ausfallen.
Unter den Menüpunkt „Konfiguration / APIs“ kann man die Einstellung vornehmen:
Das folgende PHP-Script (sensor.php) auf den Server speichert für jeden Tag eine LOG-Datei mit den Meßwerten.
<?php //$log = "feinstaub.log"; $log = "feinstaub_" . date("Y-m-d") . ".log"; $schluessel = array("SDS_P1", "SDS_P2", "temperature", "humidity", "signal"); $json = file_get_contents("php://input"); file_put_contents("feinstaub.json", $json); $daten = json_decode($json, true); $sensoren = $daten["sensordatavalues"]; $zeit = date("Y-m-d H:i:s"); $zeile = $zeit.","; foreach ($schluessel as $key) { $index = array_search($key, array_column($sensoren, "value_type")); # ab PHP 5.5.0 $zeile .= $sensoren[$index]["value"].","; } $zeile = rtrim($zeile, ",") ."\n"; file_put_contents($log, $zeile, FILE_APPEND); ?> ok
So kommen am Tag ca. 580 Meßwerte in die Logdatei. Hier ein Auszug:
2021-10-03 01:09:08,11.15,4.55,16.60,72.60,-74 2021-10-03 01:11:35,14.05,5.18,16.60,72.50,-75 2021-10-03 01:14:02,11.63,4.80,16.60,72.30,-75 2021-10-03 01:16:34,10.13,4.20,16.60,72.30,-75
Sicherlich könnte man auch die Daten in eine Datenbank aufnahmen, aber eine einfache CSV-Datei reicht mir
jedenfalls völlig. Später kann man ja immer noch die Daten in ein anderes Format bringen.
[01] Projektseite: https://sensor.community/de/ -
[02] Projekt auf Github: https://github.com/opendata-stuttgart -
[03] „AirRohr“: https://sensor.community/de/sensors/airrohr/ -
[04] Sensor-Karte: https://maps.sensor.community/ -
[05] Archivierte Messdaten: https://archive.sensor.community/
[06] Grafana-Diagramme: https://www.madavi.de/sensor/graph.php?showfloat -
[07] Helmut Karger: Feinstaubsensor – Teil 1: Jetzt messen wir selber! -