Aktuell verwende ich ja meine Freizeit mit der Erweiterung meiner Wetterdaten-Station. Den Anfang machte letztes Jahr die Ermittlung der Werte für Temperatur, Luftdruck und Luftfeuchtigkeit. Das Modul arbeitet zufriedenstellend ohne nennenswerte Probleme auf der Basis von ESP32-Microcontroller und Tasmota-Firmware. Vor kurzem haben sich ein Regenmengenmesser und ein Windstärkemesser dazugesellt. Diese sind jedoch nicht mit Tasmota realisiert (obwohl ich das gerne täte) sondern sind Eigenprogrammierung mit dem Arduino-Framwork unter Einsatz von Visual Studio Code und PlatformIO. Die Kommunikation mit meiner Home Assistant-Zentrale erfolgt über MQTT-Protokoll, was die Handhabung innerhalb von Home Assistant wesentlich erleichtert. Nun gesellt sich ein Feinstaubmesser auf der Basis des SDS011-Sensors unter Einsatz von Tasmota zu den Datenlieferanten.
Sofern ich eigene Geräte bastel, setze ich bevorzugt Tasmota mit ESP32-Hardware ein. Dieser Microcontroller ist preiswert, ausreichend leistungsfähig und Tasmota lässt Sensoren relativ leicht ins IoT-Netzwerk einbinden. Home Assistant besitzt eine eigene Tasmota-Integration und erkennt neue Geräte automatisch, sofern sie für MQTT in Tasmota konfiguriert sind. Das erleichtert die Integration der Sensorwerte in eigene Automationen ungemein.
Tasmota unterstützt den SDS011 von Haus aus - allerdings nicht mit der Standard-Firmware sondern mit der Sensor-Edition. Der ESP32 hat nicht genügend Flash-Speicher um eine Tasmota-Version zu halten, die das komplette Repertoire von Tasmota beinhaltet. Deshalb wurde die Firmware in Teilgebiete aufgespalten. Der SDS011 ist in die Sensor-Edition gewandert. Die Firmware lässt sich bequem über den Tasmota-Webinstaller aufspielen, wenn man Chrome oder Edge als Browser verwendet. Firefox unterstützt dieses Feature leider nicht. Ansonsten hilft der Tasmotizer als Stand-alone-Utility weiter.
Nachdem der ESP32 mit Tasmota geflasht und ins heimische Netzwerk per WLAN eingebunden ist, geht es an die Verdrahtung bzw. Anschluss des Sensors an die Hardware. Der SDS011 kommuniziert über eine serielle Schnittstelle (9600, 8, N, 1) und ist somit für den Einsatz im Zusammenspiel mit dem ESP32 hervorragend geeignet. Auch begnügt er sich mit 5V als Betriebsspannung, die am ESP32 an seinen Pins zur Verfügung stehen. Es brauch somit lediglich 4 Leitungen um den Sensor an den ESP32 anzuschließen. Doch einen Fallstrick gibt es - die RX/TX-Leitungen sind zu kreuzen, d. h. die RX-Leitung des Sensors wird mit der TX-Leitung des ESP32 und die TX-Leitung des Sensors mit der RX-Leitung des ESP32 verdrahtet. Wer das nicht macht wird sich wahrscheinlich wundern, warum im Tasmota-Menü keine Werte angezeigt werden. Statt Tasmota kann man auch das Arduino-Framework verwenden. Auf GitHub gibt es eine Bibltiothek, mit der sich die Werte des SDS011 leicht mit eigenem Code auslesen lassen. Tasmota jedoch ist die bequemere Variante im Hinblick auf den Einsatz mit Home Assistant, da dieser Sensor halt von Haus aus unterstützt wird. Weder MQTT noch WLAN bzw. HTTP stellen mit dieser Firmware ein Problem dar.
Inzwischen ist der SDS011 provisorisch im Garten installiert. Während der nächsten Tage wird sich zeigen, ob das Gespann mit Tasmota ordentlich mit Home Assistant harmoniert. Gehäuse und Zubehör ist inzwischen geordert und sobald das Zubehör geliefert ist, wandert der Feinstaubsensor an seinen vorgesehen Platz. Bis dahin heißt es einfach geduldig sein.
Der SDS011 verfügt über einen Lüfter, der automatisch für die vernünftige Arbeitsumgebung sorgt. Die Messung erfolgt mittels Lasertechnik, sollte also für den Hausgebrauch hinreichend genaue Werte liefern. Das Modul ist fertig kalibriert und kann sofort eingesetzt werden.