Introduction: Monitoring Gebäudetrocknung

Step 1: Projektbeschreibung

Ziel war die Verringerung der Luftfeuchte in den Kellerräumen durch Einbau von Lüftern in die Aussenmauer.

Da die Luftansaugung der Außenluft nur dann erfolgen soll, wenn diese 'trockener' als die Luft im Keller ist, wurde eine Steuerung der Firma Technische Alternative angeschafft. Diese besteht aus dem Steuergerät UVR61-3 und zwei Temperatur-/Feuchtesensoren RFS-DL. Die Installation und Konfiguration war relativ einfach und rasch erledigt.

Die Verbindung zwischen dem Steuergerät und den beiden Sensoren erfolgt durch einen 2-Draht Bus. Das herstellereigene DL-BUS Protokoll wurde vom Hersteller offengelegt. Eine Doku ist auf Github zu finden https://github.com/ekuiter/uvr2web/blob/master/met...

Um die Sensorwerte Aussen-/Innentemperatur und Aussen-/Innenfeuchte im Web darzustellen, habe ich den DL-BUS angezapft.

Step 2: Funktionsablauf

1. - ein µC-Modul liest am DL-BUS die Sensordaten mit

2. - stehen gültige Daten zur Verfügung werden diese per WiFi an einen IoT-Server gesendet

3. - am IoT-Server werden auf einem Dashboard die Daten dargestellt

4. - dieses Dashboard steht dann per http öffentlich zur Verfügung

Step 3: Hardware

Als µC verwende ich ein WeMos D1mini Modul, das einen Espressif ESP12F und eine intergierte WiFi-Antenne enthält. Damit reduziert sich der Hardware Aufwand gewaltig. Es werden zum D1mini nur mehr 2 Widerstände und ein USB-Netzteil benötigt. Das USB-Netzteil sollte mind. 300mA bei 5V liefern können.

Step 4: Software

Dafür habe ich Teile eines vorhanden Arduino Sketch (ino file) auf GitHub von Elias Kuiter verwendet und für meine Zwecke adaptiert.

Der komplette Sketch besteht aus folgenden files:

uvr2web_D1mini.ino ist das Hauptprogramm
receive.ino und receive.h empfangen, decodieren und speichern eines Datenrahmens vom DL-BUS
process.ino und process.h verarbeiten der gespeicherten Datenrahmen
web.ino und web.h übernimmt den upload zu emoncms.org

Nur wenn 2x die selben Sensorwerte gelesen wurden, werden sie verwedet. Damit konnte ich zeitweise sprunghafte Anweichungen durch Übertragungsfehler elimimieren.

Step 5: Uvr2web_D1mini.ino

Bei Bedarf das Upload Intervall anpassen:

int upload_interval = 5 * 60 * 1000; // alle 5 Minuten ein upload

Bei nodeId und privateKey die eigenen Emoncms Daten eingetragen:

const char* host = "emoncms.org";
const char* nodeId = "2";
const char* privateKey = "00000000000000000000000000000000"; // API Write Key


Für die WLAN Ankopplung wurde der WiFiManager Github verwendet.
Wichtig: Hier eine beliebige, aber NICHT die eigene SSID verwenden:

const char* iot_ssid = "config";
const char* iot_pass = "configneu";


Step 6: Receive.ino

Empfangen, decodieren des Manchester-Codes und speichern der Datenrahmen.

Step 7: Process.ino

Verarbeitung der gespeicherten Datenrahmen.

Bei der ersten Version wurden manchmal fehlerhafte Werte eingelesen.

Bei der aktuellen Version erfolgt ein upload nur, wenn 2x die gleichen Sensorwerte empfangen wurden.

Step 8: Web.ino

Hochladen der Datenrahmen ins Internet

Nach Ablauf von upload_interval werden die zuletzt gespeicherten Daten hochgeladen.

Step 9: Visualisierung

Dazu verwende ich die kostenlose API von emoncms.org

Step 10: Download

Hier sind alle sketches als zip-file.

Step 11: Ausblick

Das Projekt ist seit Sommer 2016 erfolgreich im Einsatz.

Eine Änderung bzw. eine Integration in Smart Home Systeme ist nicht geplant.

Bei konkretem Bedarf werde ich zu den vorigen Schritten eine detailiertere Anleitung einfügen.

IoT Builders Contest

Participated in the
IoT Builders Contest