Schlagwort-Archive: iot

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-Zirkulationssteuerung

Technische Beschreibung MQTT-Zirkulationssteuerung
Technische Beschreibung MQTT-Zirkulationssteuerung

Der Source Code zu diesem Projekt kann in unserem Web Shop erworben werden.

Key Features:

  • Schnelle Reaktionsgeschwindigkeit durch DS18B20 Temperatursensoren
  • Kompakte Bauform ¬©Sonoff TH 16 Schaltmodul
  • Landing Portal f√ľr die WIFI und MQTT Konfiguration
  • ¬©Amazon Alexa Anbindung (Zirkulation Start/Stop) bzw. √ľber entsprechende Routinen
  • Einsparung von Heiz- und elektrischer Energie
  • Kurze Amortisationszeit
  • Maximaler Komfort bei der Warmwasserbereitstellung
  • Minimale Pumpenlaufzeiten, geringer Verschlei√ü
  • Optionaler R√ľcklaufsensor f√ľr eine noch bessere Effizienz
  • Leichte Integration in eine vorhandene Automatisierung durch MQTT-Client Funktion
  • Weboberfl√§che zur optimalen Parametrierung auch ohne MQTT
  • Wachsender Funktionsumfang durch Firmware OTA-Updates direkt vom Hersteller

Allgemeines:
Die Zirkulationspumpe in ihrer Trinkwasseranlage sorgt daf√ľr, dass auch an weit entfernten Entnahmestellen jederzeit warmes Wasser zur Verf√ľgung steht, ohne das vorher minutenlang Wasser ungenutzt im Abfluss verschwindet.
Dies geschieht durch eine st√§ndige Zirkulation von hei√üem Wassers zwischen dem Warmwasserspeicher und der letzten Entnahmestelle ihrer Trinkwasseranlage, was letztendlich zu hohe W√§rmeverlusten des Warmwasserspeichers f√ľhrt. Abgesehen von diesen W√§rmeverlusten, wird zus√§tzlich auch st√§ndig elektrischer Energie f√ľr den Betrieb der Zirkulationspumpe ben√∂tigt, was √ľber die gesamte Lebensdauer der Anlage mit hohen Kosten zu Buche schl√§gt.

Um diese Verluste m√∂glichst gering zu halten, ist die √ľblichste und g√ľnstigste L√∂sung, eine einfache Zeitschaltuhr mit Tagesprogramm. Die Zeitschaltuhr wird in den Stromkreis zwischen Steckdose und Zirkulationspupe geschaltet, um au√üerhalb der √ľblichen Entnahmezeitr√§ume die Zirkulationspumpe vom Stromnetz zu trennen.

Der Nachteil bei dieser L√∂sung liegt jedoch darin, dass bei einem anderen Nutzungsverhalten die Pumpe aus ist und kein warmes Wasser zur Verf√ľgung stellt oder die Pumpe l√§uft zu Zeiten, obwohl gar kein warmes Wasser ben√∂tigt wird. In beiden F√§llen geht viel Energie verloren und eine komfortable Bereitstellung von warmem Wasser ist nicht gegeben.

Die Lösung:
Im hier vorgestellten Projekt soll nun gezeigt werden, wie diese Problematik mit einem handels√ľblichen ¬©Sonoff TH10/16 (10/16A) WLAN-Schaltmodul und einem daran angeschlossenen DS18B20 Temperaturf√ľhler einfach und schnell gel√∂st werden kann.

Das TH10/16-Modul ist eins der wenigen Module der Firma ¬©Sonoff, das √ľber ein kleines Schaltnetzteil verf√ľgen und nicht wie viele der anderen Module √ľber einen Kapazitives Netzteil. Der gro√üe Vorteil hierbei ist hier die Galvanischetrennung zwischen dem 230V Stromnetz und der daran angeschlossenen Elektronik. So ist es m√∂glich √ľber eine kleine vierpolige 2,5 mm Klinkenbuchse Sensoren direkt mit den IO-Pins des ESP8266 Mikrokontroller zu verbinden, ohne dass Netzspannung an den Sensoren anliegt.

Das TH10/16 Modul inklusive eines DS18B20 Temperatursensors kostet kaum mehr als eine elektronische Zeitschaltuhr, bringt aber ein Maximum an Energieeinsparung und das ohne einen Eingriff in die bestehende Hausinstallation vornehmen zu m√ľssen.
Das Modul kann direkt bei Amazon mit kurzen Lieferzeiten bestellt werden.

Das Funktionsprinzip:
Die grundlegende Funktionsweise basiert auf der Erfassung eines Temperaturanstiegs an der Entnahmeleitung des Warmwasserspeichers.

Produktlink f√ľr eine einfache und effektive¬† Sensorbefestigung

Der Wasserhahn fungiert hierbei quasi als Fernbedienung.
Wird f√ľr einen kurzen Moment Warmwasser entnommen, z.B. beim Z√§hneputzen. Registriert der Temperaturf√ľhler an der Entnahmeleitung diesen Temperaturanstieg, die Zirkulationspumpe augenblicklich angefordert und l√§uft f√ľr die Zeitdauer der eingestellten Laufzeit.
Schon kurze Zeit sp√§ter, steht warmes Wasser am Wasserhahn zur Verf√ľgung.
Um eine schnelle Reaktionszeit zu gewährleisten, sollte der Sensor der Entnahmeleitung möglichst nahe am Warmwasserspeicher angebracht werden, damit das System möglichst schnell auf eine Entnahme und den damit verbundenen Temperaturanstieg reagieren kann.
An den ¬©Sonnoff kann optional ein weiterer DS18B20 Sensor angeschlossen werden, der die R√ľcklauftemperatur erfasst. Ist ein zweiter Sensor angeschlossen, wird dieser automatisch von der Firmware erkannt und es erscheinen weitere Eingabefelder in den Einstellungen.
Hier kann dann unter anderem die R√ľcklauftemperatur eingetragen, bei der die Zirkulationspumpe wieder vorzeitig abgeschaltet werden kann.

Wird kurze Zeit nach einer Zirkulationspumenanforderung eine weitere Entnahme erkannt, greift die Wartezeit. Sie verhindert ein mehrmaliges Einschalten nach einer k√ľrzlichen Entnahmen. Da sich bereits hei√ües Wasser in den Leitungen befindet, dass sich nur langsam wieder abk√ľhlt.
Die Pumpenlaufzeit sowie die Wartezeit nach einer Zirkulation k√∂nnen √ľber entsprechende Parametrierung in den Einstellungen optimal an die Gegebenheiten angepasst werden.

Findet √ľber einen langen Zeitraum keine Entnahme statt, kann es durch das stehende Wasser in den Rohrleitungen zu einer Verkeimungen kommen (Urlaubszeitr√§ume, Wochenendh√§user usw.).
Um einer Verkeimung vorzubeugen und ein Höchstmaß an Hygiene zu gewährleisten, startet nach einer definierbaren Zeitpanne automatisch eine Hygienezirkulation. Diese wird in regelmäßigen Zeitabständen wiederholt, wenn zwischenzeitlich keine Entnahmen stattgefunden haben.

In eine sp√§ter geplanten Firmware Versionen ist eine vorausschauende Zirkulationsanforderung geplant. Soll diese Funktion genutzt werden, wird der oben beschriebene, zweite DS18B20 Sensor in der R√ľcklaufleitung ben√∂tigt!

Wenn ein regelmäßiges Verbrauchsverhalten erkannt wird, sollen diese Zeiträume erlernt und die Zirkulation bereits im Voraus startet, um unnötigen Wartezeiten zu minimieren. Hingegen soll während längerer Abwesenheit die Vorausschauenden Zirkulationsläufe automatisch unterbunden werden. Mit der ersten Entnahme nach dieser Pause, startet dann die Vorausschauende Zirkulation wieder automatisch. Sollten sich Verbrauchsverhalten geändert haben, sollen die veralteten Informationen automatisch gelöscht und dann nach und nach durch die neu erlernten Informationen ersetzt werden.

Hardware:
Die Hardware der Zirkulationssteuerung besteht aus einem ©Sonoff TH10/16 mit einem oder optional zwei DS18B20 1-Wire Temperatursensoren. Die beiden Zahlen 10/16 bezieht sich auf die Schaltleistung des Moduls.
Wir raten zum ¬©Sonoff TH16, er ist kaum teurer als der TH10, bietet jedoch wesentlich mehr Komfort beim Anschluss der Versorgungsspannung und der Pumpe durch seine Klemmanschl√ľsse. Au√üerdem bietet er eine ausreichende Reserve bei der Schaltleistung, was die Lebensdauer des Relaisschaltkontaktes ebenfalls wesentlich verl√§ngert.

Die Sensoren werden √ľber eine vier polige 2,5 mm Klinkenbuchse angeschlossen. √úber diese Buchse werden zwei GPIO’S und die Versorgungsspannung herausgef√ľhrt.

Steckerbelegung ©Sonoff TH10/16

Der Stecker ist ein vierpoliger 2,5mm Klinkenstecker, √ľber den die 1-Wire Temperatursensoren vom Typ DS18B20 mit dem Modul verbunden werden (DQ – GPIO 14, +3,3V und GND). Beim Anschluss von zwei Temperatursensoren, werden diese parallel an die entsprechenden Anschlusspins angeschlossen.
Die Temperatursensoren am Warmwasservorlauf bzw. am Zirkulationsr√ľcklaufrohr, erkennen kleinste Temperatur√§nderungen und steuern so das Laufverhalten der Zirkulationspumpe.
Da der ¬©Sonoff nur eine 2,5mm 4-Pin Eingangsbuchse besitzt, gibt es f√ľr den Anschluss von zwei Sensor zwei einfach L√∂sungen. Man schneidet die angespritzten Stecker (soweit vorhanden) ab und verbindet die jeweils gleichen Adern miteinander. Nun kann man entweder einen l√∂tbaren Stecker verwenden, an den die Adern entsprechend der oben beschrieben Anschlussbelegung angel√∂tet werden. Eine Zweite, l√∂tfreie L√∂sung bietet die Verwendung eines sogenannten Terminal Adapters Klinke 2,5mm 4-Polig mit Schraubklemmen.

Aderfarbcode der DS18B20 Sensoren
DS18B20 Sensoren können zwei Adrig oder auch drei Adrig angeschlossen werden.
Bei einem zweiadrigen Anschluss betreibt man den Sensor im sogenannten parasit√§ren Modus, die ben√∂tigte Versorgungsspannung wird √ľber die Sensorleitung eingespeist und √ľber einen kleinen Kondensator im inneren des Sensors gespeichert.

Signal
Beschreibung Klemme des Adapters
GND
(sw/gn)
GND V
Data
(gelb/weis)
DQ – GPIO 14 L
VDD
(rot)
+3,3V Versorgungs-spannung     |
—–
¬† —

Jeder DS18B20 Temperatursensor besitzt seine eigenen, einzigartigen 64-bit Seriennummer, was den Betrieb mehrere Sensoren an nur einer Datenleitung zu zulässt.

Hardwareanpassung des ©Sonoff

M√∂chten Sie die Hardware Modifikation und das flashen einer eigenen Firmware selbst vornehmen, wird im folgenden die Vorgehensweise hierf√ľr kurz beschrieben.
Diese Beschreibung soll lediglich eine Hilfestellung geben und erhebt keinen Anspruch auf Vollständigkeit!
Alle selbst durchgef√ľhrten Arbeiten erfolgen auf Ihr eigenes Risiko!

An dieser Stelle wird ausdr√ľcklich darauf hingewiesen, dass f√ľr alle beschrieben Arbeitsschritte, wie der Austausch des Flashspeichers, die Programmierung einer neuen Firmware, dass ¬©Sonoff Modul komplett von der 230V Netzspannung getrennt sein muss.
Ansonsten besteht Lebensgefahr durch einen elektrischen Schlag!

Der Flashspeicher, der mit dem das ¬©Sonoff TH Modul ausgeliefert wird, ist ein Winbond 25Q08FV, der mit einer Gr√∂√üe von 8MBit (1MByte) f√ľr diese Anwendung und die „Over the Air“ OTA-Update Funktion etwas zu knapp bemessen ist. Da bei einem OTA Update die H√§lfte des Flash Speichers als Ladespeicher ben√∂tigt wird. Deshalb wird er durch einen Winbond 25Q32FV mit 32MBit (4MByte) im SOP-8 Geh√§use ausgetauscht, den Sie in unserem Webshop erhalten.

Um erstmalig eine eigene Firmware auf dem ¬©Sonoff zu installieren, sind auf der Platine bereits alle ben√∂tigen Pins herausgef√ľhrt.
F√ľr den Flashvorgang wir eine USB-Seriell Modul mit einer VSS von¬† 3,3V ben√∂tigt. Vor dem Anschluss des Moduls ist auf die richtige Einstellung der Versorgungsspannung zu achten. Bei vielen dieser Module kann die Versorgungsspannung VSS zwischen 3.3V und 5V umgeschaltet werden. Eine zu hohe Versorgungsspannung f√ľhrt zur sofortigen Zerst√∂rung des ¬©Sonoff Moduls.

Einrichten der WIFI Verbindung:
Um die Zirkulationssteuerung  in das lokale Netzwerk zu integrieren, wird Anfangs ein eigener AP geöffnet. Verbindet man sich mit diesem AP und öffnet anschließend im Webbrowser die IP-Adresse 192.168.4.1 gelangt man in das Konfigurationsportal der Zirkulationssteuerung.
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 der Steuerung, neben dem MQTT-Broker auch √ľber das integriertes Web-Interface erreichbar.

Einrichten einer Amazon Alexa Verbindung:
Die Zirkulationssteuerung kann √ľber ein Sprach Kommando mit Alexa Ger√§ten ein bzw. ausgeschaltet werden. Wurde die Zirkulationssteuerung mit dem ein Kommando aktiviert, l√§uft genau wie bei der Entnahmeerkennung die eingestellte Pumpenlaufzeit ab, bevor die Zirkulationspumpe automatisch wieder deaktiviert wird.
Um die Zirkulationssteuerung √ľber Alexa ansteuern zu k√∂nnen, vergeben Sie zuerst den Alexa Invocation (Aufrufnamen) im Webbrowser oder per MQTT. Nach der Eingabe wird die Zirkulationssteuerung neu gestartet und ist bereit f√ľr die Kommunikation mit Alexa Ger√§ten.
Stellen Sie vor der Suche von neuen Ger√§ten in ihrer Alexa App sicher, dass ihre Alexa mit dem 2,4 MHz Netzwerk ihres Routers verbunden ist, da vom ESP8266 nur dieses Tr√§gerfrequenz unterst√ľtzt wird.
W√§hlen sie in der Alexa App im Reiter Ger√§te, Ger√§t hinzuf√ľgen aus. Anschlie√üend suchen sie nach Sonstige Ger√§te und starten sie die Suche. Nach dem die Zirkulationssteuerung erkannt wurde, kann diese mit den Kommando „Ger√§tename ein / aus“ angesteuert werden.

Ansicht im IO-Broker:

Die Ansicht zeigt alle verf√ľgbaren Parameter der Zirkulationssteuerung.

Beschreibung der Notes

Note Name Beschreibung Lesen / Schreiben
INFO/Hostname Bezeichnung des Moduls Read
INFO/Port Webserver Por Read
INFO/IPAdress Aktuelle IP-Adresse Read
INFO/Modul WLAN-Modul Read
INFO/RestartReason Beschreibung des letzten Neustart Ereignisses Read
INFO/Version Aktuelle Firmware Version Read
SETTINGS/AlexaInvocationName Alexa Aufrufname (max. 30 Zeichen) Read / Write
SETTINGS/BackflowTemp R√ľcklauftemperatur Abschaltwert (¬įC) Read / Write
SETTINGS/CHECKUPDATE Neustes Firmware Update laden (set true) Read / Write
SETTINGS/GradientIntTime Garatientenzeit ab ersten erkannten Temperaturanstieg
(sek.)
Read / Write
SETTINGS/LegionellaWaitTime Hygienezirkulationszeit
(Std.)
Read / Write
SETTINGS/PumpRunTime Pumpenlaufzeit (min.) Read / Write
SETTINGS/RelaisDirection Wirkrichtung des Realis Read / Write
SETTINGS/StartPump Pumpe manuell starten (set true) Read / Write
SETTINGS/StopPump Pumpe manuell stop
(set true)
Read / Write
SETTINGS/TempGradient Temperaturgradient innerhalb der (¬įC)
GradientIntTime
Read / Write
BackflowTemperatur R√ľcklauf Temperatur DS18B20 (¬įC) Read
PreflowTemperature Vorlauf Temperatur DS18B20 (¬įC) Read
PumpRequest Zirkulationspume aktiv
(on/off)
Read
RelPinState Status Relais Pin
(high/low)
Read
RemainingLegionellaTime Abgelaufene Hygiene Zirkulations Wartezeit
(Std.)
Read
RemainingPumpRunTime Abgelaufene Zirkulationszeit
(Min.)
Read
RemainingPumpWaitTime Abgelaufene Wartezeit
(Min.)
Read
Uptime Zeit seit dem letzten Neustart Read
Vcc Prozessor Core Spannung Read
WIFI-Quality
WIFI-Qualität in % Read

Ansicht im Webbrowser:

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

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:

  • Hard.Firmware Version 1.03
    Neu Funktionen f√ľr das vorausschauende Entnahmeverhalten.

Released:

  • 02.08.2022¬† Version 1.02
    WIFI-Quality Anzeige in MQTT und Webinterface eingebaut
    Webpage Kennwortabfrage eingebaut, bei leerem Kennwort erfolgt keine Abfrage.
    Uptime Fehlerbeseitigung.
  • 22.04.2022¬† Version 1.01
    Fehlerbeseitigung bei der √úbertragung der MQTT Daten. Updates bei der Genauigkeit der Messwerte verbessert.
    Bibliotheksupdate durchgef√ľhrt, neues Anmeldeportal.
  • 29.11.2021 Version 1.00
    Integration f√ľr Ansteuerung mit ¬©Amazon Alexa

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!

Pressure Sensor

Pressure Sensor Dokumentation
Pressure Sensor Dokumentation

 

Key Features:

  • Weiter Eingangsspannungsbereich von 8 ‚Äď 27V
  • Konfiguration aller Modulparameter direkt am Pressure Sensor Modul m√∂glich
  • OLED-Display f√ľr die Anzeige der Messwerte und der Men√ľfunktionen
  • Bedienung √ľber einen Drehwahlschalter oder einen Taster
  • Drei konfigurierbare potentialfreie Ausgangskontakte f√ľr das √úber- und Unterschreiten einer einstellbaren Druckschwelle, sowie eines Sensorfehlers
  • F√ľr jedes Relais kann die Ruhelage NO (normally open) oder NC (normally closed) separat festgelegt werden
  • Werte- und Fehleranzeige im Sensor Sensordisplay
  • Werte- und Fehleranzeige √ľber die Blynk App und ein Web Interface zug√§nglich
  • Messwerte- und Statusmeldungen im Textformat √ľber integrierte Micro USB-Schnittstelle (seriell Port)
  • Vielseitige auch f√ľr beliebige andere Druckmessaufgabe eingesetzt Messung
  • Zwei verschiedene Messmethoden, Messung des absoluten oder des relativen Drucks
  • Manuelle und automatische Kalibrierung bei der relativen Druckmessung
  • Spezielle Funktion f√ľr Druckschlauchmessungen, automatischen Differenzdruckabgleich
  • Teilbares System, dass aus einem wechselbaren Drucksensor, dem eigentlichen Auswertemodul
  • Men√ľgef√ľhrte kundenspezifisch Sensoranpassung.
  • Aktualisierung der Firmware mittels OTA

Allgemeines

Die hier beschriebene Druckmessung entstand aus dem Projekt Timekeeper, dass auf Anfrage f√ľr eine Zeitmessung zu Trainingszwecke f√ľr eine Gleichm√§√üigkeitspr√ľfung durchgef√ľhrt wurde.
Als der Timekeeper beim Auftraggeber im Einsatz war, stellte sich heraus, dass das justieren der Lichtschranken gerade bei Sonnenschein eine m√ľhselige Unterfangen darstellt.

Außerdem hängt die Genauigkeit der Erfassung hierbei auch immer von der Justierung der Lichtschranken ab. Da je nach Höhe und Winkel der Start- und Ziellichtschranke, diese bei verschieden Fahrzeugen unterschiedlich ausgelöst werden können. Diese Fehler bewegen sich zwar meist nur in Millisekunden Bereichen, können aber durchaus die Wertungsergebnisse beeinflussen.

So wurde die Idee geboren, einen alternative Messmethode zu testen. Es sollte eine Druckschlauchmessung aufgebaut werden, die quer √ľber die Fahrbahn gelegt werden kann, umso eine Messmethode zu erhalten, die direkt an den R√§dern des Fahrzeugs misst. Also Unabh√§ngig von der Form und Bauart der Karosserie.

Es wurde ein PVC-Schlauch, der an einem Ende geschlossen war, an eine Handels√ľbliche Druckmessung angeschlossen und der Potentialfreie Ausgangskontakt mit dem entsprechenden Initiator Eingang des Timekeeper Moduls verbunden.

Die ersten Tests lieferten bereits sehr viel versprechend Ergebnisse und bewiesen, dass der grundsätzliche Testaufbau funktionierte.

Nach dem die ersten Erfahrungen mit verschiedene Schlauchmaterialien, Druckaufnehmer und den in der Praxis auftretenden St√∂reinfl√ľssen gesammelt wurden. War schnell klar, dass eine handels√ľbliche Druckmessung die Anforderungen an diese Aufgabe nur bedingt erf√ľllen kann.

Der Nachteil eines solchen Messverfahrens ist eine vergleichsweise ungenaue Messung, da die Kunststoffschl√§uche ein gewisses Eigenleben haben, das zum Beispiel zu temperaturabh√§ngigen Kriecheffekten und Offsetproblemen f√ľhrt.

Es musste also eine speziell auf diese Art der Anwendung zuggeschnittene Lösung entwickelt werden.

Spezielle Funktion f√ľr die Schlauchdruckmessung

Das Hauptproblem stellt nicht die Messung an sich dar, sondern die Umgebungsbedingungen. Den der Druck im inneren des Schlauches ist nat√ľrlich in erster Linie abh√§ngig von der Umgebungstemperatur.

Stellen wir uns folgendes vor, der Messaufbau wird am fr√ľhen Morgen installiert und getestet. Die Ausl√∂seschwelle beim √úberfahren des Schlauchs wird auf ein optimales Ausl√∂severhalten f√ľr die Art und L√§nge des Schlauchs programmiert.

Der Tag beginnt mit einem relativ k√ľhlen Vormittag, entwickelt sich aber gegen die Mittagszeit zu einem sehr sonnigen Tag.
Am Nachmittag entstehen am Himmel größere vorbeiziehende Wolkenfelder.

So k√∂nnte ein normaler Sommer Tag aussehen … was passiert aber nun mit dem Druck im Sensorschlauch?

In der Fr√ľh wurde die Messung kalibriert und optimal eingestellt.
Am Vormittag steigt der Druck im Schlauchsensor jedoch stetig an. Im Extremfall sogar bis √ľber die programmierte Ausl√∂seschwelle.

Am Nachmittag wechselt der Druck im Schlauch im Verhältnis der vorbeiziehenden Wolkenfelder hin und her.
All dies hat Einfluss auf das Ausl√∂severhalten und die Genauigkeit der Messung und kann sogar zu Fehlausl√∂sungen f√ľhren.

Genau f√ľr diesen Anwendungsfall wurde eine spezielle Zusatzfunktion in diese Druckmessung integriert.

Diese √ľberwacht st√§ndig den Druck im Sensorschlauch, steigt bzw. f√§llt der Druck (Delta P) √ľber- oder unter einen programmierbaren Schwellwert und bleibt f√ľr eine definierbare Zeit (t) au√üerhalb der definierten Grenze, wird eine (AC) automatische Nullpunkt Kalibration des Relativdruckwertes durchgef√ľhrt.

Aufgabenstellung:

Es sollte eine Druckmessung mit einem weiten Eingangsspannungsbereich von 8 – 27V entwickelt werden.
Damit ein Betrieb mit einem Bleiakku (12V KFZ-Batterie), einem externen Netzteil oder eine direkte Versorgung aus dem Timekeeper Modul m√∂glich ist. Dieser wird √ľblicherweise mit 24V gespeist.

Die Konfiguration der Modulparameter sollte direkt am Pressure Sensor Modul m√∂glich sein. F√ľr die Anzeige sollte ein kleines OLED-Display f√ľr die Anzeige der Messwerte und der Men√ľfunktionen vorhanden sein. Die Bedienung erfolgt dabei √ľber einen Drehwahlschalter bzw. alternativ √ľber einen Taster, der die Navigation und Auswahl der Men√ľ Punkte erlaubt.

Das Modul sollte √ľber drei konfigurierbare, potentialfreie Ausgangskontakte verf√ľgen. Welche das √úber- und Unterschreiten einer einstellbaren Druckschwelle, sowie einen Sensorfehler ausgeben k√∂nnen. F√ľr jedes dieser drei Relais kann die Ruhelage NO (normally open) oder NC (normally closed) separat festgelegt werden.

Optional zur Werte- und Fehleranzeige am Sensor Modul, sollten diese Informationen auch √ľber die Blynk App und ein Web Interface zug√§nglich sein.

√úber die integrierte Micro USB-Schnittstelle sollen nach Aktivierung dieser Funktion im Menu, die Messwerte sowie die Statusmeldungen im Textformat ausgegeben werden. Damit diese f√ľr eine externe Weiterverarbeitung genutzt werden k√∂nnen.

Bei der Entwicklung der Messung sollte Wert daraufgelegt werden, dass diese sehr vielseitig, auch f√ľr beliebige andere Druckmessaufgabe eingesetzt werden kann.
Es sollen zwei verschiedene Messarten möglich sein, Messung des Absoluten Drucks sowie die Messung des Relativen Drucks.

Die Messung des Relativen Drucks sollte auch manuell Kalibriert werden können.

F√ľr den Einsatz in Verbindung mit einer Druckschlauchmessung, muss eine spezielle Funktion implementiert werden, die bei Bedarf einen automatischen Differenzdruckabgleich durchf√ľhren kann. Dieser soll immer dann durchgef√ľhrt werden, wenn der Druck einen definierbaren Schwellwert (P) f√ľr eine definierbare Zeit (t) √ľber- bzw. unterschreitet.

Das Pressure Sensor Modul sollte ein Teilbares System werden, das aus einem wechselbaren Drucksensor, dem eigentlichen Auswertemodul und einem schnell wechselbaren Schlauchsystem besteht.

Auf diese Weis ist es leicht möglich das Sensorsystem je nach Anforderung kundenspezifisch anzupassen.

In einem weiterer Entwicklungsschritt, soll die Firmware um eine eigenständige Zeitnahme Funktionalität erweitert werden.
Die Zeitmessung beginnt mit dem ersten √úberfahren des Schlauchsensors und endet mit dem zweiten √úberfahren.
Damit die Zeitmessung nicht sofort nach dem Überfahren mir den Hinterreifen wieder beendet wird, soll eine Verzögerungszeit zwischen der Start- und Endzeiterfassung eingegeben werden können, um dies zu verhindern.

Der Drucksensor:

Der verwendete Drucksensor ist ein analog arbeitender Sensor.
Er besitzt ein robustes Edelstahlgeh√§use in dem sich ein pr√§ziser Druckkeramiksensor befindet. Die Vorverarbeitung des Messwerts √ľbernimmt ein integrierter Mikrocontroller.
Der Sensor besitzt eine lange Lebensdauer bei einer geringen Langzeitdrift.

Die Verbindung zur Auswerteelektronik wird √ľber eine dreipolige wasserdichte PACK-Steckverbindung hergestellt.
Die Versorgungsspannung des Sensors betr√§gt 5V ¬Ī 0,25V
Die Sensoren gibt es mit verschiedenen Druchmessbereichen, die jeweils im Men√ľ des Pressure Sensors ausgew√§hlt werden k√∂nnen.

Sensortypen: 5 psi, 15 psi, 30 psi, 60 psi, 100 psi, 150 psi, 200 psi

Weiter Infos zu den Sensoren finden Sie in der ZIP-Datei.

Der Analogausgang arbeitet in einem Spannungsbereich von 0,5V ‚Äď 4,5V linear zum Skalendruck. Der Zerst√∂rungsdruck liegt beim 3-fachen Skalendruck.
Da der Sensorwert √ľber ein Analogsignal im Bereich von 0,5V ‚Äď 4,5V √ľbertragen wird, ist es leicht m√∂glich, beim einem √úber- bzw. Unterschreiten dieser Werte, eine Drahtbruch bzw. Kurzschluss Auswertung vorzunehmen.

Farbcode der Sensoranschlussdrähte:

  • Analogausgang 0,5-4,5V¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Gr√ľn
  • +5V (VDD)¬†¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬† ¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† Schwarz
  • Masse (GND)¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† ¬† Rot

Anschlussbelegung Hardware

Anschlussbelegung V1.00

REL. MIN¬†¬†¬†¬†¬† Potentialfreier Kontakt f√ľr eine min. Druck
REL. MAX¬†¬†¬† Potentialfreier Kontakt f√ľr eine max. Druck
REL. ERR ¬†¬†¬†¬† Potentialfreier Kontakt f√ľr eine Sensorst√∂rung
SENS.             Sensor analog Eingang max. 0-5V
GND               Ground (Minus)
+5V                 Spannungsversorgung 5V Sensor
+3,3V             Spannungsversorgung 3,3V Sensor
+8-27V-       Spannungsversorgung Pressure Sensor Modul

Versionsverlauf:

Intended:

  • Integration einer direkten Zeitmessung mit Blynk APP und Web-Interface

Released:

  • 03.05.2021: Version X.01 (f√ľr alle Hardware Versionen)
    – Ergebnisliste im Webserver
    – Ergebnistabelle im Webserver als CSV exportierbar
    – Anzeige der Ergebnisse in der Blynk App.
    – Konfiguration verschiedener Drucksensoren von 5 psi – 200 psi
  • 15.12.2020: Version 1.00
    – Druckmessung relativ / absolut
    – Autocalibration
    – Sensorfehlererkennung Relaisausgang NC/NO
    – Seriale Ausgabe der Werte √ľber USB,
    РMin/Max Wert Relaisausgänge NC/NO
    – Webbrowser Darstellung
    – Blynk Applikation

Dash Button Bestellsystem

Dashbutton Server Software
Dashbutton Server Software

Was ist ein Dash Button?

In diesem Projekt entsteht eine Batterie betriebener WLAN Dash Button in robuster Ausf√ľhrung.
Die Elektronik soll in einem Geh√§use aus Metall untergebracht werden und eine Schutzart von IP64 erf√ľllen (Schutz gegen Spritzwasser und Staub).

Ein Dash Button ist eine kleine Mikrocontroller gest√ľtzte Schaltung, die bei Anforderung mit einem lokalen WLAN Netzwerk eine Verbindung herstellen kann, um so Daten an einen beliebigen Server zu senden.

Um einen Dash Button in ein bestehendes WLAN Netzwerk zu integrieren, startet der Dash Button im AP-Modus, nach dem Verbinden z.B. mit einem Smartphone oder Laptop, wird automatisch ein Captive Portal auf dem Endgerät geöffnet.

Hier können anschließend folgende Credentials definiert werden:

  • SSID des lokalen WLAN Netzwerks
  • Passwort des lokalen WLAN Netzwerks
  • Hostname des Ziel-Servers
  • URL
  • Dash Token, ein ein-eindeutiger Schl√ľssel f√ľr die Aktion die der Dash Button ausl√∂sen soll

Aufbau der Hardware

Der Dash Button soll unabhängig von einer externen Energieversorgung arbeiten können. Das bedeutet, dass die Energieversorgung mit Batterien realisiert wird, die im Gehäuse untergebracht werden.

Prototyp Dash Button von oben
Prototyp Dash Button von unten
Prototyp eines DashButtons im Metallgehäuse, zum Testen der Feldstärke mit einer ext. Antenne.

Deep Sleep Modus

Softwaretechnisch wird hierf√ľr die sogenannte Deepsleep Funktion des Mikrocontrollers verwendet. In diesem Modus hat die Schaltung eine Stromaufnahme <70uA, was eine lange Lebensdauer der Batterien im Standby garantiert.

Nach Herstellerangaben, liegt der Deepsleep Ruhestrom bei ca. 10uA. Gemessen wurde beim Dashbutton jedoch eine Ruhestromaufnahme von ca. 60 uA. Dies muss jedoch noch genauer untersucht werden, da hier eine Messfehlertoleranz des Multimeters anzunehmen ist.

Parameter Typische Stromaufnahme Einheit
Tx 802.11b, CCK 11Mbps, Pout=+17dBm 170 mA
Tx 802.11g, OFDM 54Mbps,, Pout=+15dBm 140 mA
Tx 802.11n, MCS7, Pout=+13dBm 120 mA
Rx 802.11b 1024 byte packet lenght, -80dBm 50 mA
Rx 802.11g 1024 byte packet lenght, -70dBm 56 mA
Rx 802.11n 1024 byte packet lenght, -65dBm 56 mA
Modem-Sleep 15 mA
Light-Sleep 0,5 mA
Power save mode DTIM 1 1,2 mA
Power save mode DTIM 3 0,9 mA
Deep-Sleep 10 uA
Power OFF 0.5 uA

Eine Standard ESP-07 enth√§lt einen Flash RAM von 1M, f√ľr die Programmierung wird ein SPIFFS von 64 K voreingestellt.
Direkt auf dem Modul befinden sich zwei LED’s , die rote LED ist direkt mit der Versorgungsspannung verbunden. Diese LED verursacht auch im Deepsleep Modus einen schadhaften Ruhestrom von ca. 15 mA und muss deshalb entfernt werden.
Die blaue LED ist mit TxD verbunden und zeigt die Aktivität an diesem Pin an.

√Ąnderung des Energieversorgungsskonzeptes

Bei den Tests mit verschiedenen Prim√§rquellen hat sich gezeigt, das mit dem ersten Layoutentwurf immer nur ein relativ kleiner Teil der zu Verf√ľgungstehenden Kapazit√§ten entnommen werden kann. Deshalb wird nun in einer √ľberarabeitenen Hardware Revision ein StepUp Booster vom Typ¬†¬† NCP1402SN33T1 eingesetzt.

Dieser Baustein hat eine sehr niedrige Anlaufspannung von ca. 0.8V. Werden zwei AA-Battereien in Reihe betrieben, kann jede Zelle bis zu einer Spannung von 0.4V entladen werden, was knapp 90% der Gesamtkapazität der Zellen entspricht.

Der Baustein hat einen sehr niedrige Standby Stromaufnahme von nur 10uA und er stellt am Ausgang einen konstante Spannung von 3.3V zur Verf√ľgung.

Das Schaltungsdesigne wird auch dahingehend ge√§ndert, dass auf den Standbystrom des NCP1402SN33T1 und den Deep Sleep Modus des ESP6288 verzichtet werden kann, da die Summe der beiden Ruhestromaufnahmen dann doch einen betr√§chtlichen Anteil von ca. 70 uA aus mahen w√ľrden.

Zu Einsatz kommt ein Mos Fet Transistor, der gleich zwei Aufgaben erf√ľllt. Zum einen dient er dem Verpolungsschutz, wenn die Batteriene versehentlich falsch eingelegt wurden und sch√ľtzt so die Schaltkreise vor der Zerst√∂rung.
Und zum anderen, wird er als Schalter f√ľr die Sapannungsversorgung verwendet.

Mit dem Bet√§tigen des Tasters wird der Mos Fet leitend und stellt die Versorgungsspannung des Schaltkreises zur Verf√ľgung. Ms nach dem starten des ESP 8266 steuert dieser dann √ľbereinen Ausgang den Mos Fet an und verhindert so das sie Versorungsspannung nach dem loslassen des Taster wieder abgeschaltet wird.

Sobald alle n√∂tigen Programmaktionen abgearbeitet wurden, gibt der ESP 8266 den Schaltausgang des Mos Fet’s wieder frei und die Spannungsversorgung wird abgeschaltet.

Batterie Kapazität

Die Richtwerte f√ľr Alkalien Batterien schwanken lt. Herstellerangaben in folgenden Bereichen:

AAA 1000  - 1500  mAh
AA  2000  - 3000  mAh
D   12000 - 20000 mAh

Eine Duracell Plus soll lt. Herstellers Angaben bis zu 2.9 Ah haben, was einer Laufzeit im Deepsleep Modus von mehreren Jahren entspräche.

F√ľr Batterietests bietet das Layout unter anderem auch die M√∂glichkeit den Dash Button mit einer Knopfzelle zu betreiben.
Es hat sich jedoch gezeigt, dass eine Standard LR2032 nicht in Frage kommt, da bei diesem Typ bei einer Pulsbelastung die Spannung kurzfristig auf 2,8V einbricht. Was deutlich au√üerhalb der Spezifizierten Parameter des ESP8266 liegen w√ľrde.

Deshalb wurde f√ľr den Test eine Lithium Ionen Zelle z.B. Typ¬†LIR 2032 (35mAh) verwendet. Da diese Typen auch bei einer Pulsbelastung in der f√ľr den ESP8266 definierten Spezifikation bleibt.
Der Nachteil dieser kleinen Bauform liegt jedoch in der kurzen Standbyzeit,¬† die bei rund 60 uA Ruhestromaufnahme gerade mal f√ľr ca. 25 Tage reicht.

Bei der Verwendung von zwei in Reihe geschalteten AA-Zink Kohle Batterien ist der Arbeitsspannungsbereich f√ľr den Betrieb eines ESP8266 sehr eingeschr√§nkt. Bei neuen Batterien liegt die Spannung bei ca. 3,2 V. Nach einer Entladung von ca. 5% liegt die Spannung nur noch bei 3,0V. Somit erscheint der Einsatz solcher Batterietypen als wenig sinnvoll.

Eine weitere denkbare Option w√§re der Verwendung von drei in Reihe geschalteten AA-Zellen, um das Spannungsniveau¬† in einen besseren Auslastungsbereich zu bekommen. Hier bei m√ľsste dann jedoch wieder ein Spannungsregler eingesetzt werden, der zus√§tzliche Verluste mit sich bringt, was die Lebensdauer aber bei der verh√§ltnism√§√üig geringen Einschaltzeit kaum einschr√§nken d√ľrfte.

Typische Kennlienie einer Duracell AA Batterie. (Quelle Duracell Datenblatt)

So wird nun im dritten Anlauf f√ľr dieses Projekt angenommen, dass entweder zwei paralell geschaltete LiFEPO4 AA Akkus zum Einsatz kommen oder drei AA-Zellen die in Reihe geschaltet werden. Oder die Dritte Option ein LIPO Akku mit einer Ausgangsspannung von 3.7V.

Die Platine erh√§lt einen 3,3 V low drop Spannungsregler der Firma Mikrochip, vom Typ MIC5219-3.3BM5 LG33 3.3V ‚Äď40¬įC to +125¬įC SOT-23-5.

Dieser Baustein besitzt einen Enable Eingang, der es erlaubt die komplette Schaltung abzuschalten ohne das ein merklicher Ruhestrom fließt.

Durch den Einsatz dieses Reglers kann ein ein Eingangsspannungsbereiche zwischen 3 Р5v abgedeckt werden. Darurch sind alle drei Varianten der oben beschriebenen Spannungsversorgungen möglich.

LiFEPO4 AA Akkus liefern eine Spannung von 3,4 V / 700 mA, was einer Batteriekapazität von 100% entspräche.
Durch eine Parallelschaltung von zwei LiFePO4 Akkus kann somit die Kapazität auf 1400 mAh erhöht werden.

Hierbei l√§ge die Ausn√ľtzung der Batteriekapazit√§t bei etwa 60% (800 mAh), im Vergleich zu drei Zink-Kohle Batteriene. Deren Entladeschlussspannung bei 1v liegt, was bei drei in reihe geschaltenenen Zellen ca. 3V entspricht¬† = minimale Eingangsspannung der EPS lt. Spec.

Es ergäbe sich rein rechnerisch eine Standbybetriebszeit von ca. 1,5 Jahren.

Ein großer Vorteil bei der Verwendung von LiFePO4 Zellen liegt darin, dass die Zellen wiederaufladbar sind und somit viele Male wieder verwendet werden können.
Ein gravierender Nachteil der Parallelschaltung von zwei Zellen liegt jedoch in einer Verpolung.
Wenn die Zellen von nicht fachkundigem Personal gewechselt werden sollen,¬† kann es durch die Parallelschaltung der beiden Zellen bei einem falschen Einlegen zu einem Kurzschluss kommen, der dann zur thermischen Zerst√∂rung der Akkus und letztendlich des Dashbuttons f√ľhren w√ľrde.

Um eine lange Lebensdauer von Akkus zu gew√§hrleisten, sind diese unbedingt vor einer Tiefentladung¬† zu sch√ľtzen. Deshalb ist in der Firmware des DashButtons ein Schwellwert von 2,9 V programmiert, ab dem sich der Dash Button nicht mehr starten l√§sst. Die LED geht kurz an, blinkt f√ľr 1 Sekunde sehr schnell und geht dann sofort wieder aus!

Laut Herstellerangaben darf sich die Betriebsspannung eines ESP 8266 in einem Bereich von 3,0V – 3,6V bewegen (Typisch 3,3V).
Somit entspr√§che eine Batteriespannung von 3,0V gleich 0% Batteriekapazit√§t, was einen sofortigen Batteriewechsel n√∂tig machen w√ľrde!

Server Software

Die Server Software bietet die Möglichkeit, neben den Nutzinformation (Token) auch Informationen zur aktuellen Batteriespannung, Hard- und Software Version  und eine Statusinformation des DashButtons zu liefern.

Die Betriebsspannung wird mit dem Parameter &vbatt=x.xxx an den Server √ľbergeben.
Er gibt die Batteriespannung in Volt an.

Beispielberechnung f√ľr die Batteriekapazit√§t:

Bei Betrieb mit einer Li Fe PO4 Zelle , wird am Messeingang des Mikrocontrollers etwa eine  Betriebsspannung von 3,3V erreicht.
Was in diesem Fall einer prozentualen Batteriekapazität von 100 % entspräche.
Die minimale Betriebsspannung sollte 3,0V nicht unterschreiten, was somit die 0% der Batteriekapazität fest legt.

Im folgenden Beispiel wird angenommen, dass die Batterie noch eine Spannung von 3,15V (50%) liefert:

Y = Eingangsspannung 3,15V
Y0= 3,0 V
Y100= 3,3 V

X= Ergebnis in %
X0 = 0 %
X100 = 100%

X:= ((X100 – X0) * ( Y ‚Äď Y0 )¬† / ¬†(Y100 ‚Äď Y0)) + X0;

        100 * 0.1
Y = ————-¬† + 0 = 50%
               0.2

Wird der Parameter nicht √ľbergeben, wird der Wert im Server automatisch auf -1 gesetzt. Was soviel bedeutet, dass der Batteriestatus nicht ermittelt werden konnte bzw. nicht bekannt ist.

In der Server Software kann f√ľr jeden DashButton der verwendete Batterietyp ausgew√§hlt werden. Somit kann die Berechnung der Batteriekapazit√§t anhand einer hinterlegten Herstellerkennlinie erfolgen, was eine genauere Anzeige der tats√§chlichen Kapazit√§t erm√∂glicht.

Mit diesen Informationen kann in der Serverapplikation ein Mechanismus angesto√üen werden, der den Admin rechtzeitig dar√ľber informiert, wann ein Batteriewechsel erforderlich wird.

Das Layout bietet die Möglichkeit, verschieden Batterietypen in verschiedenen Leistungsklassen und Größen zu verwenden.

Externe Antenne

Um eine stabile Funkverbindung etablieren zu können, muss bei der Verwendung eines Metall- bzw. metallisierten Gehäuses eine externe Antenne verwendet werden!

Bei einem Standard ESP-07 Modulen ist bereits ein Anschluss f√ľr eine externe Antenne vorhanden. Wird der externe Antennenanschluss verwendet, muss die Verbindung zur internen (aufgel√∂teten) Antenne unterbrochen werden. Hierf√ľr ist der Null Ohm Wiederstand neben dem Antennenanschluss zu entfernen.

F√ľr die Verwendung einer externen Antenne muss der null Ohm Wiederstand (rotes Quadrat) entfernt werden. Wird das ESP07 Modul mit einer Batterie betrieben muss zus√§tzlich die Power LED (roter Kreis) entfernt werden, um ein unn√∂tiges entladen der Batterie zu vermeiden.

 

Wurde die interne Antenne entfernt,ist zwingend darauf zu achten, dass das Modul nicht ohne eine angeschlossene externe Antenne betrieben wird. Da dies zur Zerst√∂rung des ESP-Moduls f√ľhren kann.

Programmierung

Die Programmierung des Mikrocontrollers erfolgt √ľber einen Programmieranschluss, der auf der Platine vorhanden ist.
Diese Schnittstelle ist notwendig, um erstmalig eine Firmware in den Mikrocontroller laden zu können.

Hierbei ist zu beachten, dass die L√∂tbr√ľcke J1 die im Bild mit einem Stern gekennzeichnet ist, nicht geschlossen sein darf. Da im Auslieferungsstand der Pin GPIO16 auf low liegt und somit eine Dauer Reset anliegen w√ľrde.

Im Programm darf somit der GPIO16 nicht mit pinMode() konfiguriert werden.

L√∂tbr√ľcke f√ľr ein optionales automatisches aktivieren des DashButton nach einer fest definierten Zeitspanne. Sie verbindet den Pin GPIO16 mit dem Eingang RESET.

Funktionsweise des Tasters und der LED

Das Layout bietet je nach Best√ľckung die M√∂glichkeit einen Taster und eine LED in SMD Technik oder aber auch¬†bedrahteten Bauelemente zu verwenden. Somit ist es auch m√∂glich andere Bedientasten z.B. mit Kabelanschl√ľssen ein zu l√∂ten.

Befindet sich das Modul im Deepsleep Modus, kann es durch einen Tastendruck aufgeweckt werden.

Je nachdem wie lange der Taster¬† gedr√ľckt gehalten wir, werden unterschiedliche Funktionen aufgerufen:

  • Dr√ľcken bis eine Verbindung ausgebaut wurde¬† – Test Modus (Status 0).
  • Dr√ľcken √ľber einen Zeitraum von 10 Sekunden – WIFI Setup (Status 1).
  • kurzes Dr√ľcken des Tasters – l√∂st eine Bestellung aus (Status 2).

Anschließend versucht das Gerät eine Netzwerkverbindung zum lokalen AP zu etablieren, was durch ein langsames blinken der LED signalisiert wird.
Kann keine Verbindung hergestellt werden, beginnt die LED schnell zu blinken und man hat die M√∂glichkeit f√ľr 240 Sekunden eine Verbindung zu diesem Dash Button aufzubauen und die Konfiguration vor zu nehmen.
Erfolgt in dieser Zeit kein Login auf dem Dash Button, wird der Mikrocontroller wieder in den Deepsleep Modus versetzt, um die Batterie nicht unnötig zu strapazieren.

Ist der Verbindungsaufbau zum lokalen WLAN gegl√ľckt, wird die Nutzinformation (Dash Token) an den in den Credentials definierten Server verschickt.
Wurde der Empfang der Information vom Server best√§tigt, leuchtet die Status LED f√ľr drei Sekunden kontinuierlich.
Wird der Empfangs nicht vom Server best√§tigt, wird dies durch schnelles Blinken der LED f√ľr drei Sekunden angezeigt.
Anschließend wechselt der Mikrocontroller wider in den Deepsleep Modus.

Je nachdem welches Ereignis am Dashbutton ausgel√∂st wurde, wird eine entsprechende Statusinformation im Parameter &status=x dem HTTP Put Request √ľbergeben. Wird der Parameter nicht mit √ľbergeben, wird der Wert im Server automatisch auf -1 gesetzt, was soviel bedeutet das der Status nicht bekannt ist.

Server Applikation f√ľr den DashButton

Die Serverapplikation kann auch direkt mit dem Webbrowser getestet werden. Hierf√ľr wird in die Adresszeile der folgende Aufruf eingegeben:

http://HOST
/URL?&token=ef98c8246ef0409da5fb3a27afa4ec61
&vbatt=3.12&hv=1.00&sv=1.03&status=1

  • Host:
    Ist die IP-Adresse des Servers z.B. 192.168.1.123
  • URL:
    Ist eine Pfadangabe (optional f√ľr den augenblicklichen Stand) soll sp√§ter der Einordnung der Eintr√§ge dienen, z.B. f√ľr die Standorte.
  • token:
    Ist ein 32 stelliger ein eindeutiger Schl√ľssel des betreffenden Dash Buttons.
  • vbatt:
    Gibt die Batteriespannung in Volt an.
  • hv:
    Gibt die aktuelle Hardware Revision des DashButton an.
  • sv:
    Gibt die aktuelle Firmware Version des DashButton an.
  • status:
    Information √ľber den Ausl√∂ser des Ereignisses.
    0 – Test (Button wurde k√ľrzer als drei Sekunden gedr√ľckt)
    1 – Settings (Die Einstellungen wurden aufgerufen, durch langes dr√ľcken des Tasters)
    2 – Order (Ein Bestellauftrag wurde abgesetzt)
    3 – F√ľr weitere Statusinformationen reserviert
Weitere Ideen:
  • Der Dash Token sollte im Prinzip ein 32 Byte Hashcode sein, der einen Pr√ľfsumme oder einen CRC Check enth√§lt, um die Authentizit√§t des Tokens auf dem Server verifizieren zu k√∂nnen.
  • Es w√§re denkbar, dass sich ein Dash Button der l√§ngere Zeit nicht bet√§tigt wurde, automatisch aktiviert (z.B. alle 24h) und seinen Batteriestatus an den Server sendet.
    Der Parameter „status“ w√ľrde das Ereignis dann als Test identifizieren.
    Hierbei w√§re zu bedenken, dass ein zyklisches Verbinden mit dem WLAN und das Senden dieser Statusinformationen die Batterielebensdauer zus√§tzlich verk√ľrzen w√ľrde.

Einen lokalen Blynkserver beim Booten der Raspberry PI Starten

In diesem Beitrag wird am Beispiel eines lokalen Blynk Servers gezeigt, wie auf einer Raspberry PI eine Java File beim Starten und Herunterfahren der PI automatisch gestartet und heruntergefahren werden kann.

  1. Zuerst wird ein Startscript und ein Stopscript erstellt, die sp√§ter die Applikation mir Rootrechten startet und stoppt. Hier f√ľr wechseln wir mit sudo bash unsere Benutzerrechte auf Root.In unserem Beispiel speichern wir die Scripte im Verzeichnis /usr/local/bin/…
  • Start Script: /usr/local/bin/startBlynk.sh
  • Stop Script: /usr/local/bin/stoppBlynk.sh

Nach dem erstellen der Scripte m√ľssen noch deren Attribute auf ausf√ľhrbar gesetzt werden. Dies geschieht mit dem Befehl chmod +x NAME

Zu Starten des BlynkServers kann der Inhalt des Scripts startBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
/usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/bin/java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Zu Stoppen des BlynkServers kann der Inhalt des Scripts stoppBlynk.sh im einfachsten Fall so aussehen:

#!/bin/bash
#sucht und beendet die Java Applikation
ps auxf |grep ’server-0.xx.x.jar ‚|`awk ‚{ print „kill “ $2 }’`

Als nächstes benötigen wir noch das folgendes Script (localBlynk) , wir speichere es in das Verzeichnis /etc/init.d/localBlynk

  • sudo nano /etc/init.d/localBlynk
  • Inhalt der Date:#! /bin/sh
    ### BEGIN INIT INFO
    # Provides:        localBlynk
    # Required-Start:
    # Required-Stop:
    # Default-Start:        2 3 4 5
    # Default-Stop:         0 1 6
    # Short-Description:    Stars & Stops BlynkServer
    # Description:          Stars & Stops BlynkServer
    ### END INIT INFO

 

# Start Stop Blynk local Blynk Server

case $1 in
start)
/bin/bash /usr/local/bin/startBlynk.sh
;;
stop)
/bin/bash /usr/local/bin/stopBlynk.sh
;;
restart)
/bin/bash /usr/local/bin/stopBlynk.sh
/bin/bash /usr/local/bin/startBlynk.sh
;;
esac
exit 0

  • Um das Script zum Systemstart hinzu zu f√ľgen, f√ľhren wir nun noch¬† folgende Kommandos aus:cd /etc/init.d/
    sudo chmod 755 localBlynk
    sudo update-rc.d localBlynkdefaults

 

Einen eigenen lokalen Blynk Server auf dem Raspberry PI installieren

Logen Sie sich auf ihrer Raspberry z.B. per ssh ein.

Nun wird die aktuelle Java Version (Java 8) installiert :

sudo apt-get install oracle-java8-jdk

Stellen Sie sicher, dass nun die aktuelle Java Version installiert wurde.

java -version
Output: java version "1.8.0_40"

Download des Blynkserver jar Files in das „/home/pi/Blynk Verzeichnis.
Sollte das Verzeichnis noch nicht existiert muss es zuerst angelegt werden.

Alle folgenden „sudo“ Anweisungen kann man sich sparen, wenn man gleich in den „sudo bash“ wechselt, dies ist vergleichbar mit dem „su“ bei anderen Linux Distributionen.

pwd
/home/pi/
sudo mkdir Blynk
cd Blynk
sudo wget "https://github.com/blynkkk/blynk-server/releases/download/v0.39.10/server-0.39.10.jar"

Es ist auch möglich,  die Server Datei manuell via ssh oder scp herunter zuladen und in das entsprechende Verzeichnis hinein zu kopieren .

Um den Mailversand zu aktivieren, muss im Verzeichnis /home/pi/Blynk eine Datei mit dem Namen mail.properties angelegt werden.

Der Inhalt dieser Datei hat folgendes Format.

mail.smtp.auth=true
mail.smtp.starttls.enable=true
mail.smtp.host=smtp.gmail.com
mail.smtp.port=587
mail.smtp.username=Anmeldename
mail.smtp.password=Kennwort

Die aktuelle Blynk Server Version ist unter:
https://github.com/blynkkk/blynk-server/releases
zu finden.

  • Server mit den default Einstellungen starten (Hardware Port 9443 SSL)
    sudo java -jar server-0.39.10.jar -dataFolder /home/pi/Blynk        
    
  • Als R√ľckmeldung des Servers erscheint eine Meldung wie diese :
    Blynk Server successfully started.
    All server output is stored in current folder in 'logs/blynk.log' file.
    

Aktiviere automatischen Server Neustart

Um diese Option zu aktivieren, suchen Sie das Verzeichnis:
/etc/init.d/rc.local
√∂ffnen sie die Datei mit dem vi Editor und f√ľgen sie die folgende Zeile hinzu:

sudo vi rc.local
java -jar /home/pi/Blynk/server-0.39.10.jar -dataFolder /home/pi/Blynk &

Sollte dieser Ansatz nicht funktionieren, versuche Sie bitte folgendes:

sudo crontab -e

und f√ľgen sie die folgenden Zeilen hinzu

    @reboot java -jar /home/pi/server-0.39.10.jar -dataFolder /home/pi/Blynk &

anschließend speichern und beenden.

Der Administrationsbereich kann anschließend bei laufendem Blynk Server mit folgender URL im Browser geöffnet werden.

https://your_ip|(127.0.0.1):9443/admin

Um den Blynkserver im Lokalen Netzwerk auch √ľber das Internet erreichen zu k√∂nnen wird der Einsatz einer DynDNS Adresse empfohlen. Diese kann dann z.B. in einer Fritzbox hinterlegt werden, √§ndert sich die IP-Adresse der Fritzbox (alle 24 Stunden veranla√üt durch den Provider), wird automatisch die DynDNS Adresse informiert und der Server ist somit immer mit einem Pseudo Domain Name erreichbar.
In lokalen Router m√ľssen au√üerdem noch ein paar Portfreigaben definiert werden. EIn Auszug der wichtigsten Einstellungen ist hier zu sehen.

 

Viele weitere Informationen zur Konfiguration der Blynk Servers.