PM-Sensor

Code-Quickie / 3D-Druck: Feinstaub PM-Sensor für den Heizraum inkl. FHEM-Integration

PM-Sensor

Nach kurzer Schaffenspause geht es hier nun endlich weiter. In diesem Beitrag dreht es sich um den recht bekannten Feinstaubsensor (PM-Sensor) SDS011, dessen Zusammenbau sowie natürlich die FHEM-Integration. Den Feinstaubsensor verwende ich zur Messung in meinem Heizraum.

Einleitung

Da ich in der Nähe zu Stuttgart wohne und arbeite spielt das Thema „Feinstaub“ in meinem Alltag eine größere Rolle und so bin ich zwangsläufig auf das Projekt „luftdaten.info“ aufmerksam geworden. Hierbei geht es darum sich mit günstigen Komponenten einen Feinstaubsensor selber zusammenzubauen um dann den Feinstaub in seiner Umgebung zu messen. Optional können dann auch die Werte der eigenen „Messstation“ hochgeladen und mit der Allgemeinheit geteilt werden um so eine möglichst detaillierte Feinstaub-Karte zu erhalten.

Genau hier setzt auch mein Beitrag an. Ich verwende den Feinstaubsensor in meinem Heizraum mit den gleichen Komponenten und der gleichen Software wie im „luftdaten.info“-Projekt erweitert um einige für mich nützliche Funktionen.

Komponenten

Für die Komponenten meiner Variante des Feinstaubsensors kann man sich zuerst an der Einkaufsliste des „luftdaten-info“-Projekts orientieren.

Statt dem NodeMCU verwende ich einen WeMos D1 Mini mit dem gleichen ESP8266 Chip. Der neue WeMos D1 Mini Pro hat bei mir nicht funktioniert. Ich hätte lieber diesen verwendet, weil man hier eine externe Antenne für besseren WLAN-Empfang anschließen kann.

  • SDS011 Feinstaubsensor / PM-Sensor

Keine Produkte gefunden.

  • WeMos D1 Mini
AZDelivery D1 Mini NodeMcu mit ESP8266-12E WLAN Module für Arduino, 100% WeMos kompatibel und mit...*
  • Der AZDelivery D1 mini, ist ein Mini-NodeMcu Lua WiFi-Board basierend auf einem ESP-8266-12E.
  • Dieses WLANboard enthält 11 digitale Ein- / Ausgangspins, alle Pins haben interrupt / pwm / I2C / 1-adrig und einen Mikro-USB-Anschluss.
  • Dupont Kabel
COMeap 120pcs 20CM 40pin Male-Female, Male-Male, Female-Female Dupont Kabel Breadboard Steckbrücken...*
  • Lieferumfang: 1x 40-pin mâle-femâle Steckbrücken, 1x 40-pin mâle-mâle Steckbrücken, 1x40-pin femâle-femâle Steckbrücken=120pcs in Summe;
  • Länge: 7.87-inch/20cm, Kompatibel mit 2.54 mm Stiftleisten;
  • USB-Kabel mit offenem Ende
Delock 82697 Kabel USB 2.0 Micro B Stecker auf 2X offene Kabelenden schwarz*
  • USB 2.0 Typ Micro-B Stecker
  • Rot = VCC (+5 V); schwarz = GND (Masse
  • PVC-Schlauch 6x9mm
TOP Qualität Original Rehau PVC Schlauch Benzinschlauch,Wasserschlauch Luftschlauch METERWARE (5....*
  • PVC glasklar, RoHS-konform
  • KTW-C-geprüft, TÜV-geprüft, LABS-freie Produktion, Schlauch kann Aufschrift tragen

Zusätzlich verwende ich noch einen HM-LC-Sw1-PCB Homematic-Aktor um den Feinstaubsensor bei Bedarf, also nur wenn die Ölheizung oder der Holzvergaser läuft, einzuschalten. Den Aktor habe ich in diesem Betrag schon mal vorgestellt.

Schaltaktor Homematic

Zur Stromversorgung verwende ich ein 12V Meanwell-Hutschienennetzteil, an dem auch mehrere andere Geräte noch mit dranhängen sowie einen Step-Down-Converter um auf die benötigte 5V-Versorgungsspannung zu kommen. Wer nur den den Sensor betreiben möchte kann auch direkt zur 5V-Variante des Nezteils greifen oder ein normales USB-Steckernetzteil verwenden und sich den Step-Down-Converter sowie das USB-Kabel mit offenem Ende sparen.

Unbekannt Mean Well DR-15-12*
  • Input: 100-240 VAC 0,88A 50/60Hz
  • Ausgang: 12 V DC 1,25 A
Angebot
Angebot
iTrunk Raspberry Pi 3 Netzteil Ladegerät 5V 2.5A mit Extra Langem Mikro-USB-Kabel 200cm*
  • Netzteil für Raspberry Pi 3 Modell B, Raspberry Pi 2 Modell B, Raspberry Pi Modell B+/ B Plus und andere Geräte mit Mikro-USB-Anschluss.
  • Eingebauter I/C Smart-Chip. Schützen Sie Ihr Gerät vor Überlastung

Schaltaktor Homematic

Achtung!
Dieses Netzteil wird direkt am 230V-Stromnetz angeschlossen. Bei Fehlern besteht Brandgefahr oder Gefahr eines elektrischen Schlages!

Um die Kabel zu verbinden verwende ich kleine Wago-Klemmen der 221-Serie

WAGO 221-412 COMPACT-Verbindungsklemmen für alle Leiterarten, 2-Leiter, 100 Stück*
  • Anschluss aller Leiterarten auch ohne Vorbehandlung
  • Individuell mischbare Leiterquerschnitte und -arten

Die restlichen Kabel, inbesondere für die Spannungsversorgung (rot/schwarz), sind aus einem Brandmeldekabel, welches ich eigentlich für die 1-wire-Verdrahtung verwendet habe, sich aber hier auch sehr gut eignet.

Zur Anzeige der Sensordaten verwende ich ein einfaches 1602-Display

AZDelivery HD44780 1602 LCD Modul Display Bundle mit I2C Schnittstelle 2x16 Zeichen mit gratis...*
  • I²C-Interface für 16-Zeichen-Display - nur 4 statt 16 Verbindungen nötig!
  • Maße (LxBxH): 52 x 19 x 14 mm (Boardgröße ohne Pins: 41 x 19 x 7 mm)

Alles zusammen wird in ein Spelsberg Leergehäuse TK PC 2518-11-tm mit Hutschiende und M20 Kabelverschraubungen gepackt.

Spelsberg NS - DIN-Schiene 35 - 216*
  • Ausführung=Hutschiene 35/7,5 mm
  • Werkstoff=Stahl
sourcingmap 10 Stück M20 Wasserdicht IP68 TRS Kabelverschraubung für 6mm-12mm Kabel de*
  • Herstellungsland: CHINA; Material: Nylon; Nettogewicht: 111g
  • Wasserdicht bis IP68 bewertet (https://de.wikipedia.org/wiki/IP_Code)

 

3D-Druck

Um alle Komponenten sauber in das Spelsberg-Gehäuse zu bekommen, habe ich mich entschieden eine Art Grundplatte zu konstruieren. Auf dieser können dann die einzelnen Komponenten passgenau verschraubt und verklebt werden.

PM-Sensor

 

Im 3D-Modell habe soweit möglich alle Originalmodelle eingebaut. Da wo ich keine Modelle gefunden habe, wurden einfach Platzhalter-Klötze eingebaut.

PM-Sensor

Der Halter für die Hutschiene rastet auf der einen Seite in eine normale 35mm Hutschiene ein und kann auf der anderen Seite die Grundplatte aufnehmen.

PM-Sensor

PM-Sensor

Da wir seit einiger Zeit den Creality CR-10 3D-Drucker besitzen (siehe 3D-Drucker Review) bot es sich natürlich an die Teile sofort auszudrucken und zu testen. Die 3D-Drucke wurde mit 0.3mm Schichtdichte und hoher Geschwindigkeit gedruckt und sehen deshalb etwas grob aus. Trotzdem ist die Passgenauigkeit und Festigkeit absolut in Ordnung. Das Material ist graues PETG.

 

Gembird 3DP-PETG1.75-01-GR Grau Kompatibel Tintenpatronen Pack of 1*
  • Qualitativ hochwertiges Material für bestmögliche Druckqualität
  • Keine Blasen und lebendige Farben
SainSmart x Creality CR-10 Halb zusammengesetzter Aluminium 3D-Drucker mit Extra-Filament, große...*
  • [Schnelle Installation] CR-10 wird in drei vormontierten Teilen geliefert und benötigt nur 10 Minuten für die Installation.
  • [STEM Education] Ein perfektes Geschenk für alle Teenager und Erwachsene, die an Engineering interessiert sind.

Meine 3D-Modelle habe ich auf die Plattform „thingiverse“ hochgeladen.

Dort stehen Sie kostenlos zur Verfügung.

Download 3D-Modelle
Link zu thingverse

Zusammenbau

Zuerst das Anschrauben an die Wand und Anbringen der Hutschienenhalter. Hutschiene und Kabelverschraubung wurden vormontiert.

 

PM-Sensor

Auch die Öffnung zum Druckausgleich wurde vorher herausgeschlagen und mit etwas Gitter abgedeckt sowie mit Heißkleber fixiert. Sollte doch zu viel Kleinvieh da durch gelangen, werde ich eine wasserdichte und luftdurchlässige Membran einbauen. Hinweis für die, die es brauchen: IP65 ist so natürlich nicht mehr gewährleistet.

 

PM-Sensor

Danach wird die Grundplatte auf Vorder- und Rückseite bestückt.

PM-Sensor

PM-Sensor

Der Homematic-Aktor, der WeMos Mini und die Wago-Klemmen wurden verklebt, der Rest verschraubt.

Zur Verschraubung kann ich Kunststofffurchende 3x8mm Schrauben empfehlen, welche sehr gut halten. Diese habe ich mir mittlerweile auch gekauft und verbaut. Auf allen Bildern sind aber noch weniger geeignete Holzschrauben zu sehen.

TOOLCRAFT 88200 Kunststofffurchende Schraube 3 mm 8 mm T-Profil Stahl verzinkt 100 St.*
  • Kunststofffurchende Schraube Technische Daten: Antrieb (Werkzeug): T-Profil · Inhalt: 100 St
  • · Material: Stahl · Material-Eigenschaft: verzinkt · Produkt-Art: Kunststofffurchende Schraube · Produktabmessung, Länge: 8 mm · Produktabmessung, Ø: 3 mm Lieferumfang: 1 Pckg

Für alle Heißklebeaktionen verwende ich mittlerweile eine die Steinel Heißklebe-Pistole Gluematic 5000 samt passendem Heißkleber und feiner Düse

Angebot
Steinel Heißklebe-Pistole Gluematic 5000, Ladestation, Abtropfschale, kabellos, inkl. 5 Klebesticks...*
  • Kabelloses Arbeiten: Die gekapselte Schmelzkammer der Gluematic 5000 dient als Wärmespeicher
  • Sehr hohe Förderleistung von ca. 22g/min. Aufwärmzeit von nur 3-5 Minuten
Angebot
Steinel Feindüse˜ 1.0 mm, als Zubehör für Heißklebepistole Gluematic 3002 und 5000, Düse für...*
  • Die Feindüse hat einen Durchmesser von 1,0 mm
  • Diese Düse ist geeignet für die Steinel Heißklebepistolen Gluematic 5000 und 3004

Für das Aufspielen der Software und die Verkabelung zwischen SDS011, WeMos Mini und Display kann die ausgezeichnete „Bauanleitung“ auf „luftdaten.info“ verwendet werden.

Zur Verlegung der Stromkabel siehe die Bilder. Hier ist zu erwähnen, das Sensor und Display direkt mit dem Ausgang des Step-Down-Converters verbunden sind und nicht die Versorgungsspannung aus dem WeMos beziehen. Die beiden Wago-Klemmen auf der Rückseite waren zuerst nicht geplant erleichtern aber später die Montage auf der Hutschiene und minimieren die Fummelei.

Jetzt kann die Grundplatte in das Gehäuse eingesetzt werden und mit dem Stromkabel verbunden werden. Der Ausgang des Sensors fluchtet genau mit dem Loch im Gehäuse. Die Kabelverschraubung muss allerdings nochmal kurz entfernt werden.

 

PM-Sensor

Wichtig: Alle Komponenten sind noch nicht mit dem Step-Down-Converter verbunden (siehe Wago-Klemmen und USB-Anschluss), da an ihm zuerst noch die korrekte Ausgangsspannung von ca. 5V eingestellt werden muss. Wer schon vorher alles anschließt und einschaltet gefährdet seine Bauteile, denn es liegen uneingestellt ca. 12V am Ausgang an (Eingangsspannung=Ausgangsspannung).

Nach Montage des Schlauchs und der Kabelverschraubung kann ein erster Funktionstest durchgeführt werden.

 

PM-Sensor

Fertig zusammengebaut und beschriftet

 

Feinstaubsensor einrichten

Das Einrichten ist des Sensors ist eigentlich selbsterklärend, deshalb im Folgenden wenig Text und mehr Bilder. Logisch aber trotzdem ergänzend noch der Hinweis, das ich meine Daten nicht zum „Projekt“ hochlade, denn ich messe ja nur in meinem Heizraum und nicht draußen.

Die Übersichtsseite

PM-Sensor

 

Meine Einstellungen

PM-Sensor

 

 

Noch kurz warten bevor die erste Messung startet

 

PM-Sensor

Die ersten Messergebnisse

PM-Sensor

FHEM-Integration und Grafana

Die FHEM-Integration gestaltet sich einfach, denn es steht schon ein passendes Modul zur Verfügung.

Wie üblich sollte erst einmal die FHEM-Instanz auf den neuesten Stand gebracht werden.

In das Eingabefeld wird dazu der Befehl update eingegeben und anschließend mit shutdown restart neu gestartet.

Die Definition in FHEM inkl. Datenbankanbindung sieht dann so aus

#########################################################################
## PM-Sensor/LuftdatenInfo
#########################################################################

define UG.Heizraum.PM.Sensor.1 LuftdatenInfo local 192.168.178.38
attr UG.Heizraum.PM.Sensor.1 event-on-change-reading PM10,PM2.5
attr UG.Heizraum.PM.Sensor.1 group UG.Heizraum.PM.Sensor.1
attr UG.Heizraum.PM.Sensor.1 room PM-Sensor

define InfluxDBLog_UG.Heizraum.PM.Sensor.1 InfluxDBLog 192.168.178.143 8186 fhem_environment dbuser passwort UG.Heizraum.PM.Sensor.1:.*
attr InfluxDBLog_UG.Heizraum.PM.Sensor.1 group InfluxDBLog
attr InfluxDBLog_UG.Heizraum.PM.Sensor.1 room PM-Sensor

 

PM-Sensor

Wichtig für mich noch folgender Code mit dem das Blockieren der FHEM-Instanz verhindert wird falls mal die IP-Adresse bzw. der Sensor nicht erreichbar sein sollte

define UG.Heizraum.PM.Sensor.1.presence PRESENCE lan-ping 192.168.178.38 120 600
attr UG.Heizraum.PM.Sensor.1.presence devStateIcon present:general_an@green absent:general_aus@red
attr UG.Heizraum.PM.Sensor.1.presence event-on-change-reading state,presence
attr UG.Heizraum.PM.Sensor.1.presence group presence
attr UG.Heizraum.PM.Sensor.1.presence room PM-Sensor

define UG.Heizraum.PM.Sensor.1.presence.Schalter.doif DOIF ([UG.Heizraum.PM.Sensor.1.presence] eq "absent") (attr UG.Heizraum.PM.Sensor.1 disable 1;;save) DOELSEIF ([UG.Heizraum.PM.Sensor.1.presence] eq "present") (deleteattr UG.Heizraum.PM.Sensor.1 disable;;save)
attr UG.Heizraum.PM.Sensor.1.presence.Schalter.doif group DOIF
attr UG.Heizraum.PM.Sensor.1.presence.Schalter.doif room PM-Sensor

 

Die Definition des Homematic-Aktors samt Datenbankanbindung ist nichts neues und sieht wie folgt aus

#########################################################################
## UG.Heizraum.PM.Sensor.1.Aktor
#########################################################################
define UG.Heizraum.PM.Sensor.1.Aktor CUL_HM XXXXXX
attr UG.Heizraum.PM.Sensor.1.Aktor IODev HomematicLANGateway3
attr UG.Heizraum.PM.Sensor.1.Aktor IOgrp VCCU:HomematicLANGateway3
attr UG.Heizraum.PM.Sensor.1.Aktor autoReadReg 4_reqStatus
attr UG.Heizraum.PM.Sensor.1.Aktor expert 2_raw
attr UG.Heizraum.PM.Sensor.1.Aktor devStateIcon on:general_an@orange off:general_aus@blue
attr UG.Heizraum.PM.Sensor.1.Aktor event-on-change-reading .*
attr UG.Heizraum.PM.Sensor.1.Aktor firmware 2.8
attr UG.Heizraum.PM.Sensor.1.Aktor model HM-LC-Sw1-PCB
attr UG.Heizraum.PM.Sensor.1.Aktor peerIDs 00000000,
attr UG.Heizraum.PM.Sensor.1.Aktor room Geräte
attr UG.Heizraum.PM.Sensor.1.Aktor group PM-Sensor
attr UG.Heizraum.PM.Sensor.1.Aktor serialNr XXXXXXXXXXXX
attr UG.Heizraum.PM.Sensor.1.Aktor subType switch
attr UG.Heizraum.PM.Sensor.1.Aktor webCmd :

define DbLog_UG.Heizraum.PM.Sensor.1.Aktor DbLog ./contrib/dblog/db_extern.conf UG.Heizraum.PM.Sensor.1.Aktor:.*
attr DbLog_UG.Heizraum.PM.Sensor.1.Aktor asyncMode 1
attr DbLog_UG.Heizraum.PM.Sensor.1.Aktor group Geräte
attr DbLog_UG.Heizraum.PM.Sensor.1.Aktor room DbLog

 

Mit diesem Code wird der Sensor eingeschaltet, wenn der Holzvergaser eine Abgastemperatur von 80°C überschritten hat, was in der Regel nach wenigen Minuten passiert

define UG.Heizraum.PM.Sensor.1.Aktor.einschalten.Atmos.HV.DOIF DOIF ([Atmos_Holzvergaser.cD:Abgas] > 80) (set UG.Heizraum.PM.Sensor.1.Aktor on) DOELSE
attr UG.Heizraum.PM.Sensor.1.Aktor.einschalten.Atmos.HV.DOIF room Heizung

 

Mit diesem Code wird der Sensor eingeschaltet, wenn die Buderus Ölheizung bzw. der Ölbrenner läuft

define UG.Heizraum.PM.Sensor.1.Aktor.einschalten.Buderus.KM271.DOIF DOIF ([UG.Heizraum.Buderus.Oelbrenner.Einschaltverhalten] == 1) (set UG.Heizraum.PM.Sensor.1.Aktor on) DOELSE
attr UG.Heizraum.PM.Sensor.1.Aktor.einschalten.Buderus.KM271.DOIF room Heizung

Mit diesem Code wird der Sensor ausgeschaltet, wenn weder Holzvergaser noch Ölbrenner laufen

define UG.Heizraum.PM.Sensor.1.Aktor.ausschalten.DOIF DOIF ([Atmos_Holzvergaser.cD:O2] > 20.2 and [UG.Heizraum.Buderus.Oelbrenner.Einschaltverhalten] == 0) (set UG.Heizraum.PM.Sensor.1.Aktor off) DOELSE
attr UG.Heizraum.PM.Sensor.1.Aktor.ausschalten.DOIF room Heizung

 

Im Artikel CODE-QUICKIE: HEIZUNG VISUALISIEREN MIT GRAFANA habe ich den Feinstaubsensor schon mal erwähnt. Die Visualisierung in Grafana hatte ich dort bereits vorgestellt und vorbereitet.

 

Fazit

Der Feinstaubssensor SDS011 ist eine schöne Ergänzung zu den anderen Sensoren im Heizraum. Mit ihm konnte ich z.B. feststellen, das die Feinstaubbelastung besoners beim Nachlegen von Brennholz sehr hoch ist, wenn auch nur kurz.

 

PM-Sensor

Generell ist die Feinstaubbelastung im Heizraum sehr niedrig, zum Teil sogar niedriger wie in den Wohnräumen, was ich so auch nicht erwartet hatte.

PM-Sensor

Letzte Aktualisierung am 27.06.2019 / Affiliate Links / Bilder von der Amazon Product Advertising API