Werbung
Heute mal etwas anderes – warum nicht einmal einen Feinstaub-Sensor selbst bauen? Natürlich nach Anleitung, wenngleich es davon schon viele gibt, die aber nicht in jedem Schritt ganz eindeutig sind und zudem einige Hürden haben. Wir lassen also den Lötkolben warmlaufen, bauen uns einen Feinstaubsensor und beginnen mit unseren eigenen Messungen, die wir einer offenen Datenbank zukommen lassen.
Feinstaub ist nicht erst seit dem Diesel-Skandal ein Thema, sondern je nach Land, Region und Stadt bereits seit Jahren ein Problem. Die Quellen für Feinstaub können sowohl natürlich als auch menschengemacht sein. Der Einfluss des Menschen durch den Straßenverkehr, Holzöfen im Winter und räumlich beschränkte Einflüsse durch bestimmte Industrien (zum Beispiel Kohlekraftwerke) sind aber die offensichtlichsten Einflussfaktoren.
Die Bundesregierung führt durch die Ländermessnetze seit dem Jahr 2000 flächendeckende Messungen von Feinstaub der Partikelgröße PM10 (Partikel mit einem aerodynamischen Durchmesser von 10 Mikrometer oder kleiner) und seit 2008 auch der Partikelgröße PM2,5 durch. Gleiches soll später auch unser Feinstaubsensor tun. Besonders hoch ist die Messnetzdichte in Ballungsräumen. Auf dem Land oder in weniger dicht besiedelten Regionen gibt es aber nur wenige Messstellen. Wer also die Feinstaubkonzentration oder detailliertere Statistiken für seinen Wohnort haben möchte, schaut oft in die Röhre. Genau dies und die Teilnahme an einer offenen Datenbank für Feinstaubmessungen sind sicherlich die Hauptmotivation für den Eigenbau eines Feinstaubsensors.
Seit 2005 darf eine PM10-Konzentration von 50 Mikrogramm pro Kubikmeter (µg/m³) im Tagesmittel nur an höchstens 35 Tagen im Kalenderjahr überschritten werden. Überschreitungen des Tageswertes von 50 µg/m³ werden vor allem in Ballungsräumen an verkehrsnahen Stationen festgestellt. Die zulässige Zahl von 35 Überschreitungstagen im Kalenderjahr wurden in einigen Städten und Regionen zum Teil deutlich überschritten. Das Bundesumweltamt hat für das vergangene Jahr ein PDF veröffentlicht, welches solche Überschreitungen aufführt.
Damit wir auch die Grenzwerte für PM10 und PM2,5 kennen und unsere Messwerte einschätzen können, hier die dazugehörigen Zahlen:
- 24 Stunden Grenzwert: 50 µg/m³ für PM10 dürfen nicht öfter als 35mal im Jahr überschritten werden
- Jahres-Grenzwert: 40 µg/m³ für PM10 im Mittel
- Jahres-Grenzwert: 25 µg/m³ für PM2,5 im Mittel
Das Projekt basiert auf einer Initiative des von Luftdaten.info und ist ein sogenanntes Citizen Science-Projekt, mit dem Ziel die Feinstaubbelastung in Deutschland unabhängig durch Freiwillige zu messen.
Doch kommen wir nur zum eigentlichen Aufbau des Feinstaubsensors:
Alle benötigten Komponenten sind per AliExpress und im Baumarkt zu bekommen. Natürlich können sie auch beim Elektronikhändler bestellt bzw. besorgt werden, dann aber sind die Preise einiger der Komponenten unverhältnismäßig höher. Wer also 30 - 45 Tage warten kann, sollte Einzelbestellungen für einige der Komponenten aufgeben und hat dann auch keine Probleme bei der Einfuhr.
Die Einkaufsliste sieht wie folgt aus:
- Mini-Board: NodeMCU ESP8266
- SDS011 Feinstaubsensor
- DHT22 Temperur- und Feuchtigkeitsensor
- kurzer Schlauch mit 6 mm Durchmesser
- OBO Bettermann Kabelabzweigkasten T 60 IP66
- Micro-USB-Kabel + Netzteil
- eine Reihe Dupont Kabel
Die Kosten für alle Komponenten liegen bei 25 bis 30 Euro. Am teuersten ist der Feinstaubsensor mit etwa 15 Euro, die weiteren Komponenten liegen im Bereich von wenigen Euro. Der OBO Bettermann Kabelabzweigkasten T 60 IP66 ist im Baumarkt für etwa 5 Euro zu bekommen.
Zentrale Komponente ist das NodeMCU ESP8266. Es handelt sich dabei um einen kleines Board mit SoC und WLAN. Der SoC hört auf den Namen ESP8266 und ihm stehen 128 kB an Speicher sowie 4 MB an Flash-Speicher zur Verfügung. Das Betriebssystem basiert auf einem XTOS, wird für den Feinstaubsensor aber entsprechend angepasst.
Es gibt viele baugleiche bzw. ähnliche Boards in unterschiedlichen Versionen. Beim Anschluss der Sensoren ist nur darauf zu achten, dass die richtigen Pins belegt werden. Ansonsten muss man über das Board nicht viel mehr wissen. Versorgt wird es über ein USB-Netzteil. Das Board kommt mit offenen GPIO-Kontakten. Diese müssen also mittels Lötkolben noch bestückt werden oder aber die Kabel werden direkt an die Kontakte angelötet.
Die wichtigste Komponente eines Feinstaubsensors ist der Sensor selbst. Dieser hört auf den Namen SDS011. Es handelt sich dabei um einen Laser-Sensor, der über eine photometrische Messung die Werte für Schwebstaub und Staubemissionen bestimmt. Die Messung erfolgt über eine Abschwächung eines Lichtstrahls oder dessen Streuung. Rauchwarnmelder arbeiten ebenfalls nach diesem Prinzip.
Der Messbereich des SDS011 reicht von 0 bis 999,9 µg/m³. Die kleinstmöglichen Partikel, die erkannt werden können, können einen Durchmesser von 0,3 µm haben. Gemessen werden können Werte für PM2,5 und PM10. Der relative Fehler des Sensors liegt bei 10 %. Der Sensor saugt die Luft über einen Anschlussstutzen an und gibt nach einigen Sekunden einen Messwert aus. Wir erheben allerdings nur alle 145 Sekunden seinen Messwert. Er arbeitet bei Temperaturen von -20 bis +50 °C.
Da ein Messwert für Feinstaub auch von der Temperatur und Luftfeuchtigkeit abhängig sein kann, ist eine gleichzeitige Messung dieser beiden Werte hilfreich für die Interpretation der Ergebnisse. Daher bringen wir auch einen Temperatur- und Luftfeuchtigkeitssensor vom Typ DHT 22 am Board an.
Der Sensor misst die Luftfeuchtigkeit im Bereich von 0 bis 100 % mit einem relativen Fehler von 2 bis 5 %. Die Temperatur wird von -40 bis +80 °C mit einer Genauigkeit von 0,5 °C bestimmt. Theoretisch kann der Sensor alle zwei Sekunden einen Messwert ausgeben. Für unseren Fall nehmen wir aber nur alle 145 Sekunden einen Wert auf.
Software-Vorbereitungen und Firmware-Installation
Bevor wir uns aber daran machen können, die ersten Kabel miteinander zu verbinden, sollte das Board mit der Firmware bestückt werden. Die nun folgende Anleitung ist für macOS gültig. Luftdaten.info hält aber auch eine für Windows und Linux bereit. Allerdings haben wir in der macOS-Anleitung einige Fehler und Hürden entdeckt, die in unserer Anleitung nicht mehr vorhanden sein sollten.
Um mit dem ESP8266 sprechen zu können, muss ein usb2serial-Treiber installiert werden. Diese kann in einem GitHub-Repository heruntergeladen werden. Bei der Installation warnt macOS High Sierra vor der Installation einer Kernel-Extension. Dies muss in den Sicherheitseinstellungen von macOS aktiviert werden. Während des Installation des Treibers wird der Nutzer aber selbstständig in die Einstellungen geführt. Nach einem Neustart von macOS ist die Kernel-Extansion aktiv und das Betriebssystem kann mit dem NodeMCU ESP8266 kommunizieren.
Als nächstes sollte die Arduino-Entwicklungsumgebung heruntergeladen werden. In der Arduino-IDE müssen aber auch noch einige Einstellungen gemacht werden. So muss in den Einstellungen in das Feld "Zusätzliche Boardverwalter-URLs" folgende URL eingefügt werden: http://arduino.esp8266.com/stable/package_esp8266com_index.json
Weiterhin muss über Werkzeuge / Board / Boardverwalter nach "esp8266" gesucht werden. Das Paket "esp8266 by ESP8266 Community" wird daraufhin installiert.
In jedem Fall sollte man sich unter Werkzeuge / Port den entsprechenden Pfad zum installieren usb2serial-Gerät merken. Wichtig ist vor allem der USB-Port hinter "wchusbserial", also "1a1210", denn diesen benötigen wir später noch, um den Firmware auf das richtige USB-Gerät zu installieren. Danach kann die Arduino-IDE wieder geschlossen werden.
Die Firmware von Luftdaten.info kann unter anderem auch in Deutsch heruntergeladen werden. Zuvor wird der NodeMCU ESP8266 per USB angeschlossen. Im Systembericht von macOS High Sierra kann nachgeschaut werden, ob der NodeMCU ESP8266 auch erkannt wurde.
Nun wird das Terminal von macOS geöffnet und folgender Befehl eingegeben: ~/Library/Arduino15/packages/esp8266/tools/esptool/0.4.13/esptool -vv -cd nodemcu -cb 57600 -ca 0x00000 -cp /dev/cu.wchusbserial1a1210 -cf Pfad/zur/heruntergeladenen/Firmware/latest_de.bin
Wichtig ist hier, für cu.wchusbserial1a1210 den richtigen Port einzutragen.
Danach beginnt der Flash-Vorgang, der durch eine schnell blinkenden blauen LED auf dem NodeMCU ESP8266 angezeigt wird. Die 460 kB Firmware ist innerhalb von 2-3 Minuten installiert. Danach kann das Board wieder abgesteckt werden.
Hardware-Vorbereitungen und Zusammenbau
Nun kann es an den Zusammenbau der Hardware gehen. Zunächst einmal aber müssen die GPIO-Pins am NodeMCU ESP8266 mit Kontakten bestückt werden. Die dazu notwendigen Lötarbeiten sind für jeden mit etwas handwerklichem Geschick zu erledigen. Ansonsten kann man auch einfach jemanden fragen, der sich damit etwas besser auskennt. Nun kann es daran gehen die einzelnen Komponenten miteinander zu verbinden. Dazu bietet Luftdaten.info einen Anschlussplan.
Der Anschlussplan ist für den SDS011 und den DHT22 so in dieser Form immer gültig. Hier gibt es keinerlei Abweichungen durch unterschiedliche Versionen. Etwas Vorsicht ist für die GPIO-Anschlüsse des NodeMCU ESP8266 geboten. Hier haben sich die Positionen der einzelnen Anschlüsse durch die Versionen leicht verändert. So befinden sich Masse (GND) und die 5V-Eingangsspannung bei unserem Board an einer andere Position. Die Beschriftung an den Kontakten gibt aber Aufschluss darüber, wo die Anschlüsse angebracht werden müssen.
Sind alle Kontakte hergestellt, sieht die Schaltung wie oben abgebildet aus. Nach einem kurzen Test durch Versorgung über das USB-Netzteil, wird sichergestellt, dass keine Fehler gemacht wurden. Der Lüfter des Sensor sollte dabei anlaufen und das Board dreimal blau blinken.
Nun muss der Feinstaubsensor noch eingerichtet werden.
Einrichtung des Feinstaubsensors
Wird der NodeMCU ESP8266 mit dem USB-Netzteil verbunden und bootet, versucht er sich mit einem WLAN zu verbinden. Da er das heimische WLAN nicht kennen wird, baut er nach einiger Zeit einen WLAN-Hotspot auf. Mit diesem kann man sich verbinden und daraufhin auf den ebenfalls vom NodeMCU ESP8266 aufgebauten Webserver verbinden. Dieser hat die Adresse 192.168.4.1.
Daraufhin zeigt sich obige Weboberfläche. Hier müssen keinerlei komplizierte Einstellungen gemacht werden. Wir wollen dem NodeMCU ESP8266 nur das lokale WLAN beibringen. Dazu wird oben in der Liste auf die entsprechende SSID geklickt und das Passwort darunter eingetragen.
Später noch wichtig ist die ID den Feinstaubsensors (siehe Kopfzeile der Weboberfläche, in diesem Fall 1354793). Die ID ist auch Teil der SSID des WLAN-Hotspots. Nach dem Neustart ist dieser aber nicht mehr verfügbar, also sollte man sie sich die ID an dieser Stelle merken. Durch ein Klick auf Speichern startet der NodeMCU ESP8266 neu und versucht sich mit dem eben eingetragenen WLAN zu verbinden.
Die weiteren Einstellungen zeigen, dass mit dem Feinstaubsensor auch noch weitere Sensoren betrieben werden können. Wir wollen uns an dieser Stelle aber auf den Feinstaub selbst sowie Temperatur und Luftfeuchtigkeit konzentrieren. Beide Sensoren werden in der Firmware erkannt.
Nach etwa 10 Minuten werden die ersten Messdaten übertragen. Ob der Sensor dies korrekt tut, kann auf dieser Seite nachgesehen werden. Dort kann nach der ID gesucht werden und folgende Statistiken werden abgerufen: https://www.madavi.de/sensor/g... Auch eine Statistik für das WLAN-Signal wird vorgehalten.
Dort aufgeführt werden die Messdaten für PM10 und PM2,5 über 24 Stunden, eine Woche, einen Monat und ein Jahr. Außerdem wird ein Mittelwert für sieben Tage erstellt.
Ab jetzt werden die eigenen Messwerte erhoben und auch schon an Luftdaten.info übertragen, sind aber noch nicht offiziell Teil der Statistik. Damit dies der Fall ist, müssen einige Angaben an
- ID des Sensors
- Adresse des Sensors (daraus werden Koordinaten erstellt, die aber nur gerundet herausgegeben werden)
- Umgebung des Feinstaubsensors (Höhe über Grund, Strassenseite, hohes Verkehrsaufkommen, freies Feld etc. pp.)
- E-Mail-Adresse (wird nicht veröffentlicht)
- ein Bild, wo der Sensor hängt
Dann ist euer Sensor ein Bestandteil des offenen Netzwerks von Luftdaten.info. In der Kartensicht taucht er nach einiger Zeit auf.
Um den Sensor an einer entsprechenden Position aufstellen zu können, haben wir die Hardware in ein Gehäuse verpflanzt, welches nach IP66 staub- und spritzwassergeschützt ist. Damit der Sensor die Luft von außen auch ansaugen kann, haben wir ein kurzes Schlachstück aufgesteckt. Dieses kann auch etwas länger sein, sollte aber nicht länger als 20 cm sein, damit der Lüfter im Sensor die frische Luft auch ansaugen kann. Zudem müssen im Gehäuse ausreichend große Öffnungen vorhanden sein, damit die angesaugte Luft auch wieder entweichen kann.
Neben dem Schlauch für den Sensor führen wir auch noch den Temperatur- und Luftfeuchtigkeitssensor sowie die Stromversorgung heraus und verschließen das Verteilergehäuse.
Daraufhin haben wir den Feinstaubsensor unter einem kleinen Vordach positioniert und mit Strom versorgt. Hier steht er nun und sammelt seine Daten.
Fazit
Die Motivation für seinen Feinstaubsensor im Eigenbau kann unterschiedlich sein. Einigen geht es nur darum etwas zu basteln. Mit seinem solchen Sensor leistet man aber auch einen Beitrag zu einer offenen Datenbank an Messungen. Außerdem sind einige sicher daran interessiert einmal Werte zu erfahren, die von einer naheliegenden Messstelle erhoben wurden. Häufig hört man bestimmte Grenzwerte in µg/m³, kann diese aber nicht der eigenen Umgebung zuordnen. Mit den eigenen Messwerten ist dies möglich und schnell können Korrelationen zu verschiedenen Wetterlagen sowie zum Beispiel für den Betrieb von Holzöfen hergestellt werden.
Der Zusammenbau ist sehr einfach, allerdings sollte man schon einmal einen Lötkolben in der Hand gehalten haben oder jemanden kennen, der diese Arbeiten übernehmen kann. Ansonsten geht vieles Schritt für Schritt recht einfach von der Hand.
Programmierkenntnisse sind nicht notwendig, das meiste kann per Kopieren und Einfügen eingetragen werden. Zusammenbau und Inbetriebnahme dauern höchstens 1-2 Stunden, danach werden auch schon die ersten Messwerte übertragen.