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.
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.
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.
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.
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.
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
Grillgerüche? Vom Holzkohle-Grill? PM2,5, das durch die Verbrennung von Holz erzeugt wird, ist als schädlicher eingestuft als solches, das durch die bei uns üblichen Verbrennungsmotoren im Straßenverkehr erzeugt wird. Freilich sind Heizungen auf Holzverbrennungsbasis noch ein gutes Stück schlimmer als gelegentliches Holzkohle-Gegrille — was nicht heißt, gelegentliches Luftverdrecken wäre ein Kavaliersdelikt.
Hallo sm,
vielen Dank für den Kommentar. Mit dem Beispiel „Grillen“ wollte ich lediglich darauf hinweisen, dass nicht alles was vielleicht gut riecht auch gesund ist. In eng besiedelten Wohngebieten ist es kaum möglich an schönen Tagen von einem gelegentlichen Grillen zu sprechen. Meistens zieht die Rauchfahne eines Grills über viele Meter, also über das eigene Grundstück hinweg. In Summe, der dichten Bebauung geschuldet, ergibt sich so eine um viele Stunden andauernde Belastung der Menschen dort. Das dann auch noch ausgerechnet genau zur schönen Jahreszeit in der man viele Aktivitäten im Freien also im Garten, Spielplatz etc. unternimmt.
Viele Grüße,
ByteYourLife