Benutzer-Werkzeuge

Webseiten-Werkzeuge


hardware:h0009

Feinstaubmessung - Selbstbau

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

Sebstbau

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.

"Selbstbau - Feinstaubmessung"

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.

Feinstaub-Sensor SDS011

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)

Anschlussbelegung

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
(Pinabstand: 2.54mm)

DHT22

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

Anschlussbelegung

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.

NodeMCU

Mikrocontroller - NodeMCU (ESP8266)

WiFi802.11 b/g/n (2,4GHz-2,5GHz)
BussystemeUART,GSPI,I2C,I2S,Ir Remote Control,GPIO,PWM
Spannung3,0 - 3,6V
ModulESP 12-F

NodeMCU Schema

Schaltplan

Mit diesen Schaltfplan werden die einzelnen Kompnenten verbunden:

Schaltplan (Klick zum Vergrößern)

Software

Aktuell läuft bei mir die Software NRZ-2020-133/DE (Nov 29 2020) auf der NodeMCU.
Dabei werden folgende Geräte unterstützt:

  • OLED SSD1306
  • OLED SH1106
  • OLED Display um 180° drehen
  • LCD 1602 (I2C: 0x27)
  • LCD 1602 (I2C: 0x3F)
  • LCD 2004 (I2C: 0x27)
  • LCD 2004 (I2C: 0x3F)
  • SDS011 (Feinstaub)
  • Honeywell PM (Feinstaub)
  • Sensirion SPS30 (Feinstaub)
  • DHT22 (Temperatur, rel. Luftfeuchte)
  • HTU21D (Temperatur, rel. Luftfeuchte)
  • BME280 (Temperatur, rel. Luftfeuchte, Luftdruck), BMP280 (Temperatur, Luftdruck)
  • SHT3X (Temperatur, rel. Luftfeuchte)
  • DNMS (LAeq)
  • DS18B20 (Temperatur)
  • Plantower PMS(1,3,5,6,7)003 (Feinstaub)
  • BMP180 (Temperatur, Luftdruck)
  • GPS (NEO 6M)

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

API

Über die eingebaute API werden (Anmeldung erforderlich, hierbei wird auch eine ID erstellt) die Daten automatisch
auf Wunsch an folgende Dienste weitergeleitet:

  • Sensor.Community
  • Madavi.de
  • CSV
  • Feinstaub-App - Link
  • OpenSenseMap.org

Eigene API

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.


Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
hardware/h0009.txt · Zuletzt geändert: 2021/10/03 16:11 von 127.0.0.1