Nach dem ich im ersten Beitrag auf den Feinstaubsensor SDS011 und die Hardware als solches eingegangen bin folgt jetzt die Installation der notwendigen Software. Ich verwende für das Auslesen der Sensordaten des Feinstaubsensors und des GPS Empfängers Python und entsprechende Bibliotheken. Der folgenden Abschnitt führt alle Bibliotheken auf die installiet werden müssen mit den entsprechenden Befehlen.

Python Bibliotheken

Es mussten noch im Terminal Fenster die nachfolgenden Programme mit Ihren Bibliotheken installiert werden. Dazu bitte die nachfolgenden Befehle ausführen.

  • Befehl: sudo apt-get install gpsd gpsd-clients python-gps
  • Befehl: sudo apt-get install python-pip
  • Befehl: sudo python -m pip install pyserial

Jetzt sollte das im nachfolgenden Abschnitt vorgestellte Programm einwandfrei funktionieren. Wichtig ist noch die USB Geräteadressen im Python Programm richtig zu hinterlegen sowie den Speicherpfad für die CSV Datei wenn notwendig anzupassen.

GPSD Anpassung

Damit das Python Programm den GPS Empfänger ohne Probleme findet und der Daemon auch funktioniert sollte noch die folgende Anpassung in der /etc/default/gpsd Konfiguration vorgenommen werden.

Dazu den folgenden Befehl ausführen und die gpsd Datei öffnen.

  • Befehl: sudo nano /etc/default/gpsd

Jetzt bitte die Datei entsprechend anpassen. Bitte trägt das USB Gerät ein unter dem bei euch der GPS Empfänger gefunden wurde. Bei mir ist es dieses Gerät „/dev/ttyAMA0“.

START_DAEMON=“true“
GPSD_OPTIONS=“/dev/ttyACM0″
DEVICES=““
USBAUTO=“true“
GPSD_SOCKET=“/var/run/gpsd.sock“

Nach dem die gpsd Konfiguration angepasst wurde bitte noch den folgenden Befehl ausführen.

  • Befehl: sudo dpkg-reconfigure gpsd

Jetzt sollte nach einem Neustart der GPS Empfänger funktionieren. Mit dem nachfolgenden Befehl kann man cgps in dem Terminal Fenster starten und sich die GPS Koordinaten anschauen.

  • Befehl: cgps

Wenn nicht zu sehen ist und ein Fehler kommt kann man mit diesem Befehl prüfen ob der gpsd Prozess überhaupt läuft.

  • Befehl: ps -ef | grep gps

Es sollte eine Ausgabe wie folgt im Terminal Fenster erscheinen.

pi@feinstaub:~ $ ps -ef | grep gps
gpsd       689     1  1 15:51 ?        00:00:08 /usr/sbin/gpsd -N /dev/ttyACM0
pi         768   742  0 16:03 pts/0    00:00:00 grep –color=auto gps

Python Programm – Aufzeichnung Feinstaub und GPS Koordinaten

Mein selbst geschriebenes Python Programm liest die Feinstaubwerte PM10 und PM2.5 sowie die GPS Koordinaten aus. Immer wenn die Feinstaubwerte ausgelesen werden wird geprüft ob die GPS Position und die UTC Zeit aus dem GPS Signal verfügbar sind. Wenn ja dann wird alles zusammen in eine CSV Datei geschrieben. Wenn die GPS Informationen nicht verfügbar sind dann werden nur die Feinstaubwerte in die CSV Datei geschrieben noch ohne Uhrzeit. Das Datum und die Uhrzeit werden aus dem GPS Signal ausgelesen.

Das Python-Programm steht hier zum Download bereit: Python Programm sds011

Auf meinen Git Repository gibt es noch ein weiteres Programm das gleich KML Dateien für Google Earth erzeugt.

Git Repository

Hinweis KML Datei

Hier ist aber zu beachten, dass die KML Datei in der aktuellen Programmversion nicht richtig abgeschlossen werden. So müssen vor dem öffnen noch manuell die beiden folgenden Zeilen ganz am Ende der KML Datei angefügt werden.

</Document>
</kml>

Das Bild zeigt wie z. B. das Ergebnis aussehen kann in der KML Datei. Gut zu erkennen ist die Höhe der Linien und die unterschiedlichen Farben, die die Belastung der Luft anzeigen.

Feinstaub Sensor Google Earth KML

Feinstaub Sensor Google Earth KML

Ich habe weiter eine SAMBA Freigabe eingerichtet und einfach auf die CSV Datei zugreifen zu können. Aktuell wird diese noch auf die micro-SD Karte geschrieben. Hier werde ich aber einen kleinen USB-Speicher besorgen und anschließen um die micro-SD Karte zu entlasten. Das ständige schreiben auf die SD Karte ist sicher auf Dauer nicht gut.

Update 21. Mai 2017

Das folgende Bild zeigt mich bei einem Test bzw. Spaziergang.

Ingmar Stapel mobiler Feinstaub Sensor SDS011 klein

Ingmar Stapel mobiler Feinstaub Sensor SDS011 klein

Ich habe den Feinstaub Sensor aus der Eisbox ausgebaut und in eine stabilere Brotzeitbox untergebracht. So kann ich die Elektronik viel besser vor Erschütterungen schützen. Die Eisbox war doch sehr flexibel und nicht so ideal für das Setup.

Feinstaub Sensor SDS011 - Gehäuse IKEA Brotzeitbox

Feinstaub Sensor SDS011 – Gehäuse IKEA Brotzeitbox

Auf der nachfolgenden Nahaufnahme sind die Stege gut zu sehen die ich eingeklebt habe damit die Pappe auf der die Power-Bank liegt einen guten Halt über dem Feinstaubsensor und dem Raspberry Pi 3 Model B hat. Gut zu erkennen ist auch der extra USB WIFI Adapter für eine größere Reichweite.

Feinstaub Sensor SDS011 - Gehäuse IKEA Brotzeitbox Nahaufnahme

Feinstaub Sensor SDS011 – Gehäuse IKEA Brotzeitbox Nahaufnahme

Zusammenfassung

Jetzt haben Sie eine funktionierende Variante eines mobilen Feinstaubsensors selber gebaut. Mit diesen können Sie jetzt unterwegs die Feinstaubbelastung messen. Ich fand es im Sommer sehr interessant am Abend bei besten Wetter in der Siedlungs mit ihren Einfamilienhäusern unterwegs zu sein und mich über die leckeren Grillgerüche zu freuen. Am Schreibtisch zuhause habe ich dann die Messwerte gesehen und etwas anders über den Spaziergang gedacht. Das heißt aber nicht, das die Luft schädlich war. Für solch eine Aussage bedarf is andere Messverfahren und vorallem genauere. Denn an den Partikeln hängende Schadstoffe müssten auch analysiert werden.

Beitragsübersicht Feinstaubsensor SDS011

Ich finde die Diskussion rund um das Thema Feinstaub sehr spannend und habe mich daher mit einer Lösung beschäftigt mit der ich unterwegs die Feinstaubbelastung messen kann. Die nachfolgende Artikelübersicht fasst alle Beiträge von mir zusammen die ich geschrieben habe.


Feinstaub Sensor SDS011 - mobile Variante mit Datenaufzeichnung und GPS logging
Artikel auf heise.de: Der eigene Schmutzfänger - Feinstaub unterwegs messen und mit GPS-Daten aufzeichnen
Feinstaub Sensor SDS011 - Komponentenliste
Feinstaub Sensor SDS011 – Software Installation
Feinstaub Sensor SDS011 – BME280 Luftdruck, Luftfeuchte und Temperatur Sensor
(Visited 2.403 times, 1 visits today)