Schlagwort-Archive: MQTT

Zisternen Steuerung mit OLED-Display und MQTT

 

Podcast zur Zisternensteuerung in englischer Sprache

Technische Beschreibung Zisternen Steuerung
Technische Beschreibung Zisternen Steuerung
Version: V1.00

Der Source Code und der fertige Einbausatz zu diesem Projekt kann in meinem Web Shop erworben werden.

Key Features

  • Anschluss von zwei Ultraschall Höhenstands Messungen
  • Vier potentialfreie Eingangskontakte
  • Programmierbarer Relais Schaltkontakt
  • OLED-Display
  • Mode Taster oder Kapazitiver Taster
  • MQTT Anbindung
  • Erfassung von Höhenständen und Zählerwerte
  • Innovativer Mikrokontroller ESP32
  • Kompakte Bauform und leichte Montage
  • WIFI-Manager, Landing Portal
  • Stand Alone Betrieb über lokalen WIFI-Access Point
  • Integrierter Web-Server
  • OTA-Firmware Update

Allgemeines

Wer eine Wasser Zisterne für den Garten oder in Verbindung mit einer Grauwasserversorgung für sein Haus besitzt, möchte gerne wissen, wieviel Wasser sich noch in seinem Reservat befindet.
Verfügt das System zudem über eine Trinkwasser Nachspeisung, sind für die Ablesung und Abrechnung in diesem Zusammenhang auch die Daten der angeschlossenen Wasserzähler, wie Nachspeisung, Gesamtbezug und die aus der Zisternen entnommene Wassermenge interessant. Auch, ob gerade Wasser aus dem Versorgernetzt oder aus der Zisterne bezogen wird.

Da solche Systeme gelegentlich auch mal eine Störung haben können, z.B. wenn die Pumpe Luft zieht oder trocken läuft, oder die automatische Nachfüllung eine Problem hat, möchte man natürlich auch gerne eine Information darüber erhalten.

Für die Erfassung der Zählerimpulse und einer Störmeldung, stehen deshalb am Modul vier Eingänge zur Verfügung, an die direkt potentialfreie Schaltkontakte angeschlossen werden können.

Um abhängig vom gemessenen Höhenstand in der Zisterne eine Aktion ausführen zu können, wie zum Beispiel bei einem niedrigen Höhenstand ein Ventil anzusteuern um die Zisterne nachzufüllen oder auf Trinkwasserbetrieb umzustellen, ist ein programmierbarer potentialfreier Schaltkontakt vorhanden.

Die erfassten Informationen werden in übersichtlicher Form direkt am Modul über ein OLED-Display angezeigt. Zusätzlich können die Daten aber auch über das integriertes Web Interface und / oder per MQTT konfiguriert und angezeigt werden.

Als Hardwareplattform wurde ein WEMOS D1 mini Modul mit einem ESP32 verwendet, dass samt Display auf einer Auswerteplatine untergebracht ist.
Hierüber können zwei Ultraschall Sensoren und die Schaltkontakte eingelesen und verarbeitet werden. Für spätere Erweiterungen ist ein 1-Wire und der I2C-Anschluss auf dem Board über Stiftleisen herausgeführt.

Das Modul besitzt ein eigenes SPIFFS Dateisystem, in dem die ermittelten Messwerte über einen Zeitraum von bis zu zwei Jahren in verdichteter Form gespeichert werden. Diese können jederzeit über das Webinterface als Chart angezeigt oder als CSV-Datei heruntergeladen werden.

Für den Zugriff über das integrierte Webinterface kann eine Kennwortabfrage aktiviert werden.

Wird das Modul nicht mit dem lokale WIFI-Netzwerk verbunden, öffnet es einen lokalen Access Point, über den dann direkt auf das Moduls zugegriffen werden kann.

Mit einer entsprechenden Port Konfiguration und den passenden Einstellungen im Router, ist das Modul dann auch aus dem Internet erreichbar.

Webinterface

SML to S0 Konverter mit OLED-Display und MQTT

Podcast zur SML to S0 Konverter in englischer Sprache

Technische Beschreibung SML to S0 Konverter
Technische Beschreibung SML to S0 Konverter
Version: V1.00

Der fertige Einbausatz und der Source Code zu diesem Projekt kann in meinem Web Shop erworben werden.

Allgemeines

Die Aufgabe für dieses Projekt bestand darin, die Überschussleistung einer Solaranlage für den Betrieb diverser Verbraucher über eine S0-Schnittstelle und einen Relaisschaltausgang bereit zu stellen.

In diesem speziellen Fall handelte es sich um eine Wärmepumpe, die über eine S0 – Schnittstelle die Überschussleistung auswerten kann und bei einer definierten Überschussleistung diese Energie nutzt um Wärme zu erzeugen.

Dieser Bausatz kann aber auch dazu genutzt werden, ab einer definierbaren Überschussleistung z.B. (200 W) einer Balkonsolaranlage einen Kryptominer in Betrieb zu nehmen. So wird der Strom nicht einfach an den Netzbetreiber verschenkt, sondern generiert zusätzlich Einnahmen.

So entstand dieses Projekt, dass SML – Smartmeterdaten über die Infrarotschnittstelle der Messstelle einlesen und diese Werte über einen Optokoppler als S0 – Pulssignal ausgeben kann. Im weiteren Verlauf des Projekts, wurde eine MQTT- Kommunikation sowie eine OLED-Displayanzeige hinzugefügt, um die ausgelesenen Werte anzuzeigen.

Als Hardwareplattform wurde ein Wemos D1 mini Modul mit einem ESP8266 verwendet. Hierüber werden die Daten der IR-Schnittstelle eingelesen verarbeitet und als S0 – Signal, Relais Schaltkontakt oder per MQTT ausgegeben. Die Modul Parameter können über ein integriertes Webinterface angezeigt und konfiguriert werden.

Es ist ebenfalls möglich den Zähler Pin Code zu speichern und bei Bedarf zum Zähler zu übertragen, vorausgesetzt der vorhandene Zähler und der verwendete IR-Schreib- Lesekopf unterstützen dies. Es ist auch möglich ein Relais auf einen Schwellwert zu konfigurieren um beim Erreichen einen Schaltvorgang durchzuführen.

Der Zugriff auf das integrierte Webinterface erfolgt Passwortgeschützt über das lokale WIFI-Netzwerk, kann aber auch autark über einen lokalen Access Point des Moduls erfolgen.

Wichtiger Hinweis:

Wichtiger Hinweis:
Beim modernen Smartmetern werden die Daten über ein standardisiertes SML-Protokoll übertragen. Es werden von verschiedenen Herstellern zuweilen unterschiedliche Übertragungs Einstellungen verwendet. Auch die SML Protokolle können unterschiedliche Dateninhalte aufweisen. Deshalb wurden die drei gängigsten Smartmeter Typen implementiert. Diese können im Webinterface ausgewählt werden. Für weitere Smartmeter Typen kann es notwendig sein, dass die Daten mit der vorliegenden Programmierung nicht ausgelesen werden können und in der Firmware weitere Anpassungen notwendig sind.
Hierfür sind verschiedene Debug Optionen in die Firmware integriert, die über entsprechende Include Anweisungen aktiviert werden. Somit ist es leicht möglich das Protokoll über den seriellen Monitor auszugeben, zu analysieren und das Programm entsprechend anzupassen!

Key Features

  • TTL IR-Lesekopf zur Erfassung von SML-Zählerdaten
  • Übertragung der Zähler PIN mit IR- Schreib- Lesekopf
  • Auswahl des über S0 zu übertragenden Wertes
  • S0 – Pulsausgang potentialfrei über Optokoppler
  • Programmierbarer Relais Schaltkontakt für Heizstab oder Kryptomining
  • OLED-Display I2C
  • MQTT Anbindung
  • Freie Skalierung der erfassten Zählerwerte
  • Innovativer Mikrokontroller ESP8266 mit 4 MB Flash
  • Kompakte Bauform und leichte Montage
  • WIFI-Manager, Landing Portal
  • Stand Alone Betrieb über lokalen WIFI-Access Point
  • Integrierter Web-Server
  • OTA-Firmware Update

Schaltplan

MQTT-Smartes Garagentor

Technische Beschreibung MQTT-Smartes Garagentor
Technische Beschreibung MQTT-Smartes Garagentor

Das Modul sowie der Source Code zu diesem Projekt kann in unserem Web Shop erworben werden.

Key Features

  • Leichte Integration in einen bestehenden Torantrieb
  • Temperatur und Feuchtesensor
  • Verschleißfreie Ultraschallmessung
  • Torstellung und Fahrzeugerkennung
  • Bedienung auch per 433 MHz Funkfernbedienung
  • Anmeldung von bis zu vier Funkfernbedienungen
  • Bedienung per BLYNK App, ©Amazon Alexa, Webbrowser und MQTT möglich
  • ©Amazon Alexa Integration
  • Funktionsparametrierung der am Modul mittels Taster,
    per MQTT, Webbrowser und BLYNK App
  • Potentialfreier Relais Ausgangskontakt zur Ansteuerung des Torantriebs, Eingang für einen zusätzlichen vor Ort Taster
  • Innovativer Mikrokontroller ESP-07S mit 4 MB Flash
  • Kompakte Bauform und leichte Montage
  • WIFI-Manager, Landingportal für die WIFI- und MQTT Konfiguration
  • Integrierter Web-Server
  • MQTT-Client Funktion
  • OTA-Firmware Update

Allgemeines

Ob Sie Ihren vorhandenen Garagentorantrieb smart machen möchten oder nur einen Ersatz für eine verlorene oder defekte original Funkfernbedienung suchen. Haben sie hier eine Lösung gefunden, die beides kann.

Das Modul wird einfach zwischen den vorhandenen Taster (Schlüsselschalter) und den Taster Eingang am bestehenden Garagentorantrieb geschaltet. Hierfür stellt das Modul ebenfalls einen Taster Eingang und einen potentialfreien Relaisausgang zur Toransteuerung zur Verfügung.

Das MQTT-Smarte Garagentor Modul benötigt dann nur noch eine Spannungsversorgung, die über einen mini USB-B Anschluss am Gerät angeschlossen wird. Für die Spannungsversorgung wird ein externes Stecker Netzteil =5V/500 mA Gleichspannung benötigt.

Das Modul stellt neben einem 433 MHz Empfängermodul auch noch weitere Funktionen zur Verfügung. Um es mit dem lokalen WLAN-Netzwerk zu verbinden, wird temporär ein lokaler Access Point geöffnet über den mittels Webbrowser die Konfiguration für die lokale WLAN-Anbindung, die Anbindung an die BLYNK App und einen MQTT-Broker konfiguriert werden kann.

Auf dem Modul befindet sich noch ein Taster und zwei Status Led‘s.
Über den Taster kann eine Vielzahl an Funktionen des Moduls programmiert oder ausgeführt werden. Zwei Status Led’s signalisieren die Betriebs- und Statuszustände des Moduls.

Wurde das Modul nach Vorgaben montiert und in Betrieb genommen, kann mit der eingebauten Ultraschall Höhenstandsmessung neben der Torstellungen auch erkannt werden, ob sich ein Fahrzeug in der Garage befindet. Besitzen ihre Fahrzeuge zudem unterschiedliche Fahrzeughöhen, können anhand dieser unterschiedlichen Bauhöhen sogar noch die einzelnen Fahrzeuge unterschieden werden.

Darüber hinaus verfügt das Modul über eine Temperatur- und Luftfeuchtigkeitsmessung um die Klimatischen Bedingungen im inneren der Garage zu erfassen und auszuwerten.

Wurde eine Verbindung zu ihren lokalen WLAN hergestellt, können alle Konfigurations- und Betriebsparameter sowohl über das integrierte Webinterface mit einem Browser, die BLYNK App oder per MQTT konfiguriert, angezeigt und bedient werden.

Die Weboberfläche kann über die lokale IP-Adresse in Ihrem Netzwerk, mit einem Webbrowser aufgerufen werden.

Aus Sicherheitsgründen wurde eine Anmeldung an der Weboberfläche des Regensensors eingeführt!
Die Standard Anmeldedaten für die Eingabeaufforderung lauten:

Benutzername: admin
Kennwort: Password

Hinweis:
Wird keine Sicherheitsabfrage für die Weboberfläche gewünscht, lassen Sie das Kennwortfeld einfach leer!

Versionsverlauf:

Intended:

  • Version 1.01
    Keine Anfragen

Released:

  • 19.05.2022  Version 1.00
    Fertigstellung der Version 1.00

MQTT- Kapazitiver Regensensor

Kapazitiver Regensensor Dokumentation
Kapazitiver Regensensor Dokumentation

Der Source Code für dieses Projekt kann in unserem Web Shop erworben werden.

Allgemeines

Anfang 2021, wurde von uns eine IoT-Wetterstation für eine Projekt in Südtirol entwickelt. Ein Teil der Aufgabenstellung bestand darin, einen kapazitiv arbeitenden Regensensor zu integrieren.
Nach Abschluss der Entwicklung, blieben aus dem Prototyping noch einige der Sensor Platinen übrig, daras entstand dann dieses Projekt.
Um dem interessierten Kunden das Funktionsprinzip näher zu bringen und eine Anleitung für den grundlegenden Aufbau eines kapazitiven Regensensors anzubieten, wurde der folgenden Artikel auf unserem Blog dazu veröffentlicht: Kapazitiver Regensensor.

Da die Anfragen für einen solchen Sensor sehr groß waren, haben wir uns entschlossen ein kleine Auswerte Platine zu entwickeln, die mit einem ESP8266 (WEMOS D1 mini) ausgestattet ist und die Sensordaten per Webserver und MQTT zur Verfügung stellt.
Zusätzlich befindet sich auf der Auswerte Platine ein potentialfreier Relais Schaltkontakt, der es erlaubt bei einer Regenerkennung auch direkt einen externen Schaltvorgang auszulösen. Um z.B. eine Markise ein zu fahren.

Aufbau Hardware

Das Regensensor Modul besteh aus drei Einzel Komponenten

  • Kapazitive Sensorplatine
    Die Funktionsweise der Sensorplatine wird bereits im Beitrag Kapazitiver Regensensor ausführlich beschrieben, weshalb wir hier nicht mehr näher darauf eingehen werden.
  • Auswerteeinheit
    Die Platine der Auswerteeinheit bildet das Gegenstück zur Sensorplatine. Die beiden Platinen besitzen dieselben Abmessungen, was bei der Befestigung z.B. in einem geeigneten Gehäuse wie einer Verteilerdose von großem Vorteil ist. Die Bohrlöcher für die Befestigung der Auswerteeinheit werden somit komplett von der aufgeklebten Sensorplatine überdeckt und bietet so einen perfekten Korrosionsschutz.
    Auf der Platine befindet sich ein DS18B20 Temperatursensor, der durch seine Position die Gehäuseinnentemperatur und gleichzeitig die Temperatur kurz unterhalb der Sensorplatine erfasst. Auf diese Weise kann in den Wintermonaten verhindert werden, dass sich Forst auf dem Sensor bilden kann. Bei einem Regenereignis wird die Sensorheizung ebenfalls automatisch aktiviert, um ein schnelleres Abtrocknen der Sensoroberfläche und somit eine schnellere Reaktionszeit des Sensors nach einem Regenereignisses sicher zu stellen. Die Maximale Sensor Temperatur wird über den Temperatursensor geregelt, das spart Energie und erhöht die Lebensdauer des Regensensors.
    Befindet sich kein Feuchtigkeit, Eis oder Kondensat auf der Sensoroberfläche, das durch die Erwärmung verdampfen kann, kommt es auch nicht zu einer Abkühlung durch Verdunstung und der Sensor würde sich immer mehr aufheizen.
    Diese Regelung arbeitet mittels PWM (Pulsweitenmodulation), mit einer Frequenz von ca. 100Hz. Wurde Regen detektiert, findet im Temperaturbereich von 35 – 50°C eine stetige Regelung statt.
    Unterschreitet die Temperatur 4 °C, wird die Sensor Heizung ebenfalls aktiviert um Frostbildung auf der Sensoroberfläche zu verhindern. Hierbei wird ebenfalls die Leistung der Sensorheizung in Abhängig der gemessenen Temperatur geregelt. Der Regelbereich liegt hier bei zwischen 4°C und -6°C, was dann einer Heizleistung von 100 % entspricht.
    Um eine Betauung der Sensoroberfläche zu verhindern, .z.B. bei Morgentau oder Nebelbildung, wird die die kompensierte Sensorkapazität als Messgröße herangezogen. Überschreitet diese einen Wert von 5 pF, wird die Sensorheizung mit einer Leistung von 20 % betrieben, um diesen Effekt zu eliminieren. Die Maximale Sensorheizleistung kann über MQTT oder das Webfrondend in einem Bereich von 1 – 100% eingestellt und somit begrenz werden. Die Spannungsversorgung der Sensorheizung wird über eine 500mA selbstrückstellende Sicherung geschützt. Der WMOS D1 mini besitzt eine eigene selbstrückstellende Sicherung. Die Spannungsversorgung erfolgt nicht über die Micro USB-Buchse, sondern über die zwei auf der Platine herausgeführten Lötpunkte *5V und GND. Nähere Informationen hierzu erhalten Sie in der Dokumentation, die sie oben im Beitrag kostenlos herunterladen können.

ACHTUNG:
Auf der Platine ist kein Verpolungsschutz vorhanden! Ein falscher Anschluss der Spannungsversorgung führt zu einer Zerstörung der elektronischen Bauteile.
Das Netzteil benötigt eine stabilisierte Ausgangsspannung von 5V= und  mindestens 1A  Ausgangs Strom, um die Auswerteeinheit und die Sensor Heizung sicher zu betreiben.

  • Auf der Platine der Auswerteeinheit befindet sich auch noch der hochgenaue Langzeit Timer 7555, der hier als 3V Variante bestückt ist und die Kapazitätsfrequenzumsetzung durchführt. Als letztes Bauteil ist nun noch das Read Relais zu nennen, dass einen potentialfreien Ausgangskontakt zur Verfügung stellt und bei einem Regenereignis ein externes Schaltsignal zur Verfügung stellt.
    Der ungenutzte Raum der Platine wurde mit einem 2,54mm Lochraster versehen, das noch genügend Raum für eigenen Erweiterungen und Ideen bietet.
  • WEMOS D1 mini pro
    Das Schaltungsdesigne  des WEMOS D1 mini Board der Auswerteeinheit musste ebenfalls modifiziert werden (Nähere Informationen hierzu finden Sie in der Technischen Beschreibung).
    Es besitz 4 MB Flash, was ausreichend Platz für zukünftige Erweiterungen oder eigenen Ideeen bereithält. Das Modul wird mit der aktuellen Firmware ausgeliefert, kann aber jeder Zeit über ein Internetverbindung OTA auf die neueste Firmware Versionen upgedatet werden.
    Alle Anschlüsse des WEMOS sind nochmals separat auf dem Lochraster (Stiftleiste 2,54mm) herausgeführt.

Aufbau der Firmware

Um das Regensensormodul in das lokale Netzwerk zu integrieren, wird Anfangs ein eigener AP geöffnet. Verbindet man sich mit diesem AP und öffnet man anschließend im Webbrowser die IP-Adresse 192.168.4.1 gelangt man in das Konfigurationsportal des Regensensor Moduls.
Hier können dann alle notwendigen Einstellungen für das lokale Netzwerk (SSID, Kennwort) und die die Verbindung zum MQTT-Broker (Server IP, Benutzername, Kennwort und Port) vorgenommen werden.
Konnte anschließend mit den eingegebenen Informationen eine Verbindung zum lokalen Netzwerk hergestellt werden, sind alle Daten und Konfigurationen des Sensors wie Einschaltschwellen, die Schalthysterese usw. neben dem MQTT-Broker auch über das integriertes Web-Interface erreichbar.

Die Kapazität des Sensors steht als Rohwert vom Sensor zur Verfügung. Für die Auswertung der Schaltschwelle, wird der kompensierte (kalibrierte) Sensorwert herangezogen.
Um nicht mit dem absoluten Kapazitätswert des Sensors arbeiten zu müssen, kann der Sensorwert bei Trockenheit selbst definiert werden. Hierfür wird eine Kalibrierung durchgeführt. So dass der Kompensierte Sensorwert dann bei Trockenwetter null hat.
Wandert der Wert um 10 pF in den negativen Bereich führt das Sensormodul einen automatischen Nullabgleich durch.

Übertragung der Werte per MQTT

Wird der Regensensor neu gestartet, werden alle Topics der Settings subscribed und anschließend alle Topics einmalig published.
Danach wird die publishing Routine in der Firmware fix alle 10 Sekunden aufgerufen und dabei nur die Werte published, die eine Änderung seit dem letzten publishing Zyklus erfahren haben.
Dies geschieht um den Traffic möglichst gering zu halten.

Hier eine Übersicht der benötigten Werteänderung für eine erneute MQTT Übertragung:

  • curtemperature               >= 1.0 °C
  • curfrequency                    >= 50.0 Hz
  • curcapacity                        >= 3.0 pF
  • compcapacity                    >= 3.0 pF
  • calcapacity                         >=1.0 pF
  • precipitation                      >= 0.01 l/m2
  • windspeed                         >= 0.5 m/s
  • heatsinkpower                 >= 0.01
  • rain                                      true/false;
  • Uptime / Core Vcc           >= 0.01 V

Die CurCapacity und damit auch Comp.Cap. schwankt natürlich auch ohne Regen immer ein wenig, abhängig von der Luftfeuchtigkeit, Nebel oder ähnlichem. Deshalb wurde für die Auswertung der Regenerkennung ein Schwellwert definiert.

Berechnung der Niederschlagsmenge

Eine neue, aber noch experimentelle Funktion ist eine Berechnung der Niederschlagsmenge anhand der Sensorkapazität und der Dauer des Regenereignisses. Hierfür wird der Wert der kalibrierten Sensorkapazität alle 30 Sekunden erfasst und in ein Array gespeichert. nach 15 Minuten, wird aus diesen Werten der Mittelwert gebildet. Die Summe der vier Viertelstundenwerten ergibt dann den Stundenwert, der nach der folgenden Funktion in eine Niederschlagsmenge (l/m2) umgerechnet wird und als 24 Stundenwerte ebenfalls in ein Array mit den Tageswerten geschrieben wird.

Diese Funktion berechnet sich nach der Formel:

float y = 3e-06 * sq(x) – 0.0004 * x + 0.0004;

Windgeschwindigkeitsmessung mit einem Anemometer

Ab Version 1.05 besteht die Möglichkeit ein Anemometer für die Ermittlung der Windgeschwindigkeit an die Auswerteeinheit anzuschließen. Der neue Sensor wird nach dem ersten Impuls automatisch von der Firmware erkannt, anschließend werden weitere Konfigurations- und Anzeigewerte per MQTT und im Web Frontend zur Verfügung gestellt.

Das Anemometer muss über einen potentialfreien Ausgangskontakt verfügen (Sensor mit Reed Ausgangskontakt). Die Erweiterung des Auswertemoduls um diese Funktion gestaltet sich recht einfach, es werden lediglich die folgenden Bauteile benötigt.

  • Ein Widerstand 10 KOhm 1/4 W, print
  • Ein Keramikkondensator 100 nF, print
  • Ggf. eine Schraubklemme 2-polig, Raster 5,08 mm für den Sensoranschluss.

Das folgende Bild zeigt die einfache Schaltung, die für den  Anschluss eines Anemometers an der Auswerteeinheit nachgerüstet werden muss. Die beiden Verbindungsleitungen des Anemometers werden einmal mit den 3.3V und dem GPIO 14 (D5) des WEMOS D1 mini verbunden. Am GPIO14 (D5) wird dann nur noch der Widerstand (10K) und der Keramikkondensator (100nF) gegen Masse angeschlossen.

Es werden viele verschieden Anemometer mit Reed Schaltkontakten im Handel angeboten. Diese unterscheiden sich nicht nur durch verschieden Bauformen (Diameter) sondern auch durch die Anzahl der Impulse pro Umdrehung.

Deshalb stehen nach dem Anschluss eines Anemometers zwei weitere Eingabeparameter im MQTT-Broker und dem Web Frontend zur Verfügung, die eine individuelle Konfiguration des eingesetzten Anemometers zulassen. Der erste Parameter gibt die Anzahl der Impulse pro Umdrehung an. Wieviel Impulse pro Umdrehung der Sensor liefert, kann leicht mit einem einfachen Multimeter oder einem Durchgangsprüfer ermittelt werden, indem  man das Windrad einmal um seine eigene Achse dreht und das Schließen des Kontaktes abzählt.
Der zweite Parameter gibt die Windgeschwindigkeit in km/h, wenn sich das Windrad innerhalb einer Sekunde einmal um die eigene Achse dreht. Lesen Sie hierfür in den Angaben des Herstellers nach.

Verwendet werden kann z.B. ein Anemometer der Firma TOOGOO mit der Typenbezeichnung „WH-SP-WS01 Anemometer“.
Für dieses Anemometer sind die Konfigurationseinstellungen bereits in der Firmware eingetragen.

  • Pulse/Umdrehung = 1 Puls
  • Geschwindigkeit in km/h bei 1U/s = 2,4 km/h

Ansicht im IO-Broker:

Die Ansicht zeigt alle verfügbaren Parameter des Sensormoduls.

Beschreibung der Notes

Note Name Beschreibung Lesen / Schreiben
INFO/Hostname Bezeichnung des Moduls Read
INFO/IPAdress Aktuelle IP-Adresse Read
INFO/Modul WLAN-Modul Read
INFO/Port Webserver Port Read
INFO/RestartReason Beschreibung des letzten Neustart Ereignisses Read
INFO/Device ID Geräte ID Read
INFO/Version Aktuelle Firmware Version Read
SETTINGS/Calibrate Sensorkalibrierung (set true) Read / Write
SETTINGS/CheckUpdate Neustes Firmware Update laden (set true) Read / Write
SETTINGS/HeatsinkMaxPower
(ab Version x.04)
Maximale Sensor Heizleistung  (%) Read / Write
SETTINGS/HystCapacity Schalthysterese Kapazitätswert (pF) Read / Write
SETTINGS/LightRain Schaltschwelle für die Textanzeige Light Rain (pF) Read / Write
SETTINGS/ModerateRain Schaltschwelle für die Textanzeige Moderate Rain (pF) Read / Write
SETTINGS/ModerateRain Schaltschwelle für die Textanzeige Normal Rain (pF) Read / Write
SETTINGS/ NormalRain Wirkrichtung (direct / inverse) Read / Write
SETTINGS/TrshCapacity Schaltschwelle für die Regenerkennung (pF) Read / Write
SETTINGS/WSPulsNumber (optional)
Pulse/Umdrehung
P/U
Read / Write
SETTINGS/WSWindSpeed (optional) Geschwindigkeit in (km/h bei 1U/s) Read / Write
Alive
(ab Version x.05)
Online Status des Moduls (true/false) Read
CalCapacity Kapazitäts- Kompensationswert (pF) Read
CompCapacity Relativer (kompensierter Kapazitätswert (pF) Read
CurCapacity Aktuelle Sensor Kapazität (absolut Wert (pF) Read
CurFrequency Aktuelle Sensorfrequenz (Hz) Read
HeatiSinkPower
(ab Version x.04)
Aktuelle Leistung der Sensorheizung (%) Read
Precipitation
(ab Version x.05)
Niederschalgsmenge l/m2 (experimentell) Read
SensorState
(ab Version x.10)
Sensor Status
(ok/failure)
Read
Rain Status der Regenerkennung (true/false) Read
RainState Status der Regenerkennung (Textform)
CompCapacity > TrshCapacity
= „dry“
CompCapacity < 150 = „light rain“
CompCapacity < 350 = „moderate rain “
CompCapacity < 700 = „normaly rain“
> 700= „heavy rain“
Read
Temperature DS18B20 Gehäuse/Sensor Temperatursensor Wert (°C) Read
Uptime Zeit seit dem letzten Neustart Read
Vcc Prozessor Core Spannung Read
WindSpeed
(optional)
Windgeschwindigkeit (m/s) Read

Einfaches Blockly Skript für den IO-Broker

In diesem Abschnitt soll Beispielhaft die Integration einer Markisen Ansteuerung mit einem Blockly Skript für den IO-Broker gezeigt werden.
Die Variable „Rain-Trigger“ ist eine User definierte boolesche Variable im Broker und dient hier als Trigger für das Umschalten zwischen den Zuständen der Regenerkennung und der Regenende Erkennung.

In diesem Skript wird bei einer Regenerkennung ein kurzer „Close“ Befehl an einen Shelly 2.5 Rollladenschalter gesendet, eine Bedienung durch den Nutzer bleibt somit jederzeit weiterhin möglich.

Ansicht im Webbrowser:

Analog zur Ansicht im Broker stehen alle Parameter auch im Webbrowser Interface zur Verfügung.

Ab Firmware Version x.08 wurde aus Sicherheitsgründen eine Anmeldung am Webinterface eingeführt!

Die Standard Anmeldedaten für die Eingabeaufforderung lauten:

Benutzername: admin
Kennwort: Password

Hinweis:
Wird keine Sicherheitsabfrage für die Weboberfläche gewünscht, lassen Sie das Kennwortfeld einfach leer!

Montage Vorschlag:

Das Regensensor Modul sollte nach Westen ausgerichtet in einem Winkel von ca. 30° mountiert werden, damit der auftreffende Regen die Sensoroberfläche nur benetzt und abfließen kann.
Die Ausrichtung nach Westen schützt die Sensoroberfläche vor direkter Sonneneinstahlung, was die Lebensdauer der Lackschicht enorm  verlängert!

Das Modul lässt sich leicht in eine Hensel Verteilerdose (ohne Klemmen) mit den Abmessungen 104 mm x 104 mm, vom Typ DK 0200 G / IP66 einbauen.

Hinweis:
Die oben genannte Abzweigdose besitzt keine Einführungen oder Würgenippel. Die Einführungsöffnungen sind mit einer Gummimembrane ausgestattet, die leicht durchstochen werden kann und das Kabel anschließend wieder Wasserdicht umschließt.

Im ersten Schritt werden die Befestigungslöcher für vier Distanzhülsen M3x8mm auf der Deckel Oberseite angezeichnet und mit einem 3,2mm Bohrer gebohrt.
Dann werden die Löcher mit einem Senker soweit angesenkt, dass die M3x4mm Senkkopfschrauben plan in den Senkungen verschwinden.

Anschließend wird mit einem Fräser oder einem Forstner Bohrer ein ca. 25 mm großes Loch für den Sensorstecker und den DS18B20 Sensor ausgemessen und gebohrt.

Nun werden die Distanzhülsen M3x6mm auf der Innenseite des Deckels befestigt und die Auswerteeinheit so montiert, dass die Buchsen Leiste und der Sensor im Sensorbohrloch platziert sind.

Danach kann der Sensor mit Silikon auf den Deckel aufgeklebt werden.

Achten sie beim Aufbringen des Sensors darauf, dass die Stiftleiste richtig in der zehn Poligen Buchsen Leiste steckt, so dass nach dem aufbringen der Sensorplatine auch alle vier Senkkopfschrauben verdeckt werden.

Versionsverlauf:

Intended:

  • Hard.Firmware Version 2.00
    Integration einer LUX-Messung mit einem VEML7700 (I2C).

Released:

  • 09.10.2023 Version 1.13
    – HTML Code verbessert
  • 07.08.2023 Version 1.12
    – Fehlerhafte Windwerte größer 300 Km/h ausgeblendet.
  • 09.03.2023 Alle HW Versionen
    Firmware Version 1.11
    – Überwachung der Regensensor Funktion „SensorStatus“  verbessert. MQTT-Struktur neu angelegt, der führende „/“ wurde entfernt!.
    Wichtiger Hinweis:
    Bitte beachten, dass da durch ein neuer Eintrag im Broker erzeut wird!!!
  • 20.10.2022 Alle HW Versionen
    Firmware Version 1.10
    – Überwachung der Regensensor Funktion „SensorStatus“ hinzugefügt.
  • 23.08.2022 Alle HW Versionen
    Firmware Version 1.09
    – Fehler bei der Uptime behoben und Uptime Library eingebunden.
    – Webserver Port in MQTT/Info eingefügt.
    – Genauigkeit bei Chart und der Durchschnittlichen Regenmenge verbessert.
    – Anzeige der Core VDD im Web Frontend.
  • 29.07.2022 Alle HW Versionen
    Firmware Version 1.08
    Anzeige MQTT/Info/Port des Webservers.
    Wird das Webserver Kennwort leer gelassen, erscheint kein Anmeldedialog im Webbrowser.
    Fehlerbeseitigung Überlauf bei der Uptime Anzeige.
  • 15.07.2022 Alle HW Versionen
    Firmware Version 1.08
    Erweiterung der Parametrierung für die Textausgabe des Regenstatus.
    Erweiterung WIFI-Manager, um den Regensensor mit einem Port forwarding im Router auch aus dem Internet erreichen zu können, kann nun der Webserver Port frei konfiguriert werden.
    Zusätzlich wird nun ein Anmeldename und ein Kennwort beim Aufrufen der Webseite abgefragt, um die Sicherheit zu erhöhen.
  • 25.04.2022 Alle HW Versionen
    Firmware Version 1.07
    Aktualisierung der Arduino Librarys, neues Anmeldeportal.
  • 04.02.2022 Alle HW Versionen
    Firmware Version 1.06
    Optimierung bei der Übertragung der MQTT Daten. Updates bei der Genauigkeit der Messwerte verbessert.
  • 28.08.2021 Alle HW Versionen
    Firmware Version 1.05
    Integration eines Anemometers zur Ermittlung der Windgeschwindigkeit.
    Precipitation Wert (Experimentelle Niederschlagsmenge) Errechnung über Viertelstunden Mittelwerte der Comp. Kapazität in l/m2, in MQTT und im Web Browser eingerichtet. Niederschlags Chart Demo Version 24h.
    LWT / Alive – Last Will Testament Onlinestatus des Sensormoduls in MQTT integriert. Reduzierung des MQTT Datenverkehrs.
  • 29.07.2021 Alle HW Versionen
    Firmware Version 1.04
    – Sensor Temperatursteuerung, Regelung der Leistung per PWM
    und Option zur Begrenzung der maximalen Heizleistung.
    – Temperaturregelung der Sensorheizung für Frostschutz und
    Maximaltemperatur.
    – Betauungsschutzfunktion ab einer Kompensierten
    Sensorkapazität von 5 PF, Heizleistung Sensorheizung auf 20%
  • 16.07.2021: Alle HW Versionen
    Firmware Version 1.03
    – Überarbeitung im Dialog Update, Reset und Restart im
    Web Frontend vorgenommen.
    – Regen Status als Klartextausgabe.
  • 03.07.2021: Alle HW Versionen
    Firmware Version 1.02
    – Anzeige im MQTT – Broker erweitert.
  • 04.06.2021: Alle HW Versionen
    Firmware Version 1.01
    – In dieser Version wurde eine Fehlerbeseitigung im
    Web Frontend vorgenommen, es betrifft die Umschaltung
    der Wirkrichtung des potentialfreien Relais Ausgangs.

IOT – Wetterstation

Allgemeines

Für die Erfassung und Verteilung aktueller lokaler Wetterdaten wurde im Zuge eines Kundenauftrags diese IoT-Wetterstation mit integrierter Ethernet Schnittstelle auf Basis eines ESP32 entwickelt.

Alternativ kann auch auf die Anbindung über die Ethernet Schnittstelle verzichtet werden und die Daten könnten stattdessen per WLAN Verbindung über den Mikrokontroller ESP32 versendet werden.

Sie erfasst die folgenden Wetterdaten und sendet diese zyklisch per UDP-Broadcast über den Port 8888 in das lokale Netzwerk. Auch hier wäre der Versand per MQTT an einen Broker denkbar.

Wetterdaten:
  • Aktuelle Windgeschwindigkeit
  • Aktuelle Windrichtung (0 – 360 °)
  • Windrichtungswert als Windrichtungsindex
  • Aktuelle Außen- und Modultemperatur
  • Aktuelle Daten vom Kapazitiven Regensensor
  • Aktuellen LUX Wert, RAW Index und den Weiß Wert.
  • Regen Bit der Regenerkennung
  • Dämmerungsbit der Dämmerungserkennung
  • Windmax Bit der Windmax. Erkennung

Hardwareaufbau

Die Platine der Wetterstation hat eine Abmessung von 80 x 120 mm.
Sie besitzt Schraubklemmen zum Verbinden der Eingangssignale und eine RJ45 Buchse zum Anschluss der Netzwerkverbindung über Ethernet, unten rechts im Bild.

IoT-Wetterstation Platine
IoT-Wetterstation Lux- und Kapazitiver Regensensor

Die Platine der verfügt über folgende Anschlüsse:

  • Einen Programmieranschluss für Firmware Updates
  • Einen RJ45 Netzwerkanschluss
  • Schraubanschlüsse für die Sensoren

Die ersten beiden Klemmanschlüsse dienen dem Anschluss der Versorgungsspannung, diese kann in einem Bereich von 7 – 27 V= liegen.

Der nächste Anschluss wurde für einen potentialfreien Eingangskontakt vorgesehen, an den z.B. ein Regenmengenmesser mit Read Kontakt angeschlossen werden könnte (optional).

Der nächste Klemmenblock stellen zwei stabilisierte Ausgangsspannung 3.3V und 5.0 V zur Verfügung. Hiermit können Beispielsweise externe Sensoren mit Spannung versorgt werden. Die nächsten beiden Klemmen GND und 1-Wire dienen zum Anschluss von externen 1-Wire Sensoren. In diesem Projekt wird hierrüber Außentemperatur mit einem 1-Wire Sensors vom Typ DS18B20 gemessen.

Die Letzten Klemmen sind Anschlussklemmen für zwei analogen Eingangskanäle. Diese könne je nach Bedarf wahlweise 0 – 10 V oder 0 – 20 mA Eingangssignale verarbeiten.

Am ersten Analogeingang U-in1 und GND kann z.B. der Sensor zur Messung der Windgeschwindigkeit und am zweiten Analogeingang U-in2 und GND der Sensor für die Windrichtung angeschlossen werden.

Eine Kalibration der Messbereiche für die beiden Analogeneingänge U-in / I-in, erfolgt für jeden Kanal getrennt, mit je zwei Spindelpotentiometer.

Hierbei wird zuerst der Spannungseingang abgeglichen und das entsprechende Spindelpotentiometer zunächst gegen den Uhrzeiger auf seine linke Endposition gestellt.

Nach dem Anlegen einer Spannung von 10.0 V wird das Spindelpotentiometer solange verstellt, bis am entsprechenden Ausgangspin, Kanal 1 = Pin1 und Kanal 2 = Pin 7, des LM358 eine Ausgangsspannung von 3.0 V gemessen wird.

Anschließend wird der Spannungseingang getrennt und derselbe Vorgang mit dem Stromeingang durchgeführt. So können beide Eingangskanäle auf ihren Endbereich kalibriert werden.

Kanal 1:

  1. I – Abgleich 3.0V = 20 mA, CH1 Pin1 am LM358M
  2. U – Abgleich 3.0V = 10 V, CH1 Pin1 am LM358M

Kanal 2:

  1. I – Abgleich 3.0V = 20 mA, CH2 Pin 7 am LM358M
  2. U – Abgleich 3.0V = 10 V, CH2 Pin 7 am LM358M

Alle Eingänge der Wetterstation sind gegen ESD geschützt, Die beiden Analogeingänge haben zusätzlich noch einen Verpolungsschutz und eine Einganswert Limitierung um bei einem zu hohen Spannungs- bzw. Stromwerts am Eingang den Mikrokontroller nicht zu zerstören.

Der Regensensor basiert auf einer Kapazitätsmessung.

Siehe hierzu:
Kapazitiver Regensensor mit einem ESP8266 / Arduino

Die ermittelte Kapazität wird über einen NE555 in ein digitales Frequenzsignal gewandelt und an den Mikrokontroller weitergeleitet, der dann die Berechnung und Auswertung übernimmt.

Es sind zwei Temperaturmessung vorhanden, die über den 1-Wire Bus erfasst und ausgewertet werden. Als Sensoren werden DS18B20 eingesetzt, der erste befindet sich direkt auf der Platine als TO-3 und dient zur Ermittlung der Gehäuseinnentemperatur, der zweite Sensor ist ein Wasserdichter Edelstahlsensor der in drei Leiter Technik über die Klemmen des 1-Wire Eingangs angeschlossen ist und die Außentemperatur misst.

Zur Erfassung des LUX, RAW und Weißwerts wurde eine VEML7700 des Hersteller Vishay verbaut. Dieser ist über eine I2C Schnittstelle an den Mikrokontroller angebunden und kann mit einer entsprechenden Parametrierung Lux Werte bis zu 150 Klx genau messen.

Das Herzstück der Schaltung ist ein ESP32 Mikrokontroller mit 4 MB Flashspeicher der Firma Espressif. Dieser Kontroller verfügt über ein WLAN und Bluetooth Radio, das jedoch in diesem Projekt nicht zum Einsatz kommt, da der Datenaustausch über Ethernet erfolgt.

Als Schnittstelle zum Ethernet ist ein USR-ES01 Modul mit W5500 Chipsatz vorhanden, die Anbindung an den Mikrokontroller erfolgt per SPI-Bus.

Die Spannungsversorgung für die Wetterstation könnte z.B. auch direkt über das Netzwerkkabel, per Power Over Ethernet kurz PoE erfolgen. Hierfür könnte ein PoE-Splitter, der eine stabilisierte Gleichspannung von 12V aus dem Signalkabel ausschleust, in das Gehäuse der Wetterstation eingebracht werden. Auf diese Weise könnte dann auch die Spannungsversorgung für den Wind- und Windrichtungssensor erfolgen.

Firmware Update

Um ein neues Firmware Update in den ESP32 Mikrokontroller zu laden, verfügt die Platine über einen zweireihigen, acht poligen Steckverbinder, an den der passende USB-Programmieradapter angesteckt werden kann, um eine neue Firmware in den Mikrokontroller der Wetterstation zu übertragen.

Bei einer Verbindung per WLAN, könnte ein Update aber auch per OTA (Over the air) erfolgen. Diese Option seht leider bei einer Anbindung per Ethernet nicht zur Verfügung.

Der USB-Programmieradapter muss dabei so aufgesteckt werden, dass er von der Grundplatine weg zeigt. Ein Vertauschen oder falsches aufstecken führt zur sofortigen Zerstörung der Wetterstation!

Das Herunterladen einer neuen Firmware darf deshalb nur von einer entsprechend eingewiesenen Person oder einem Fachmann durchgeführt werden!

Für den Programmiervorgang muss die Spannungsversorgung zur Wetterstation unterbrochen sein und die Netzwerkverbindung getrennt werden! Des Weiteren kann es beim Flashvorgang zu Problemen kommen, wenn an den analogen Eingangskanälen noch Sensoren angeklemmt sind. Deshalb wird auch hier empfohlen dies vor dem Flashvorgang zu entfernen!