Die Aufgabe für dieses Projekt bestand darin, die Überschussleistung einer Solaranlage für den Betrieb diverser Verbraucher mit S0-Schnittstelle 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.
So entstand dieses Projekt, dass SML – Zählerdaten über die Infrarotschnittstelle der Messstelle einlesen und diese Werte über einen Optokoppler als S0 – Pulssignal ausgegeben kann. Im weiteren erlauf des Projekts, wurde eine MQTT- Kommunikation sowie eine OLED-Displayanzeige hinzugefügt, um die ausgelesenen Werte anzuzeigen.
Im Webinterface des Moduls werden die Werte angezeugt und können dort auch konfiguriert werden. Es ist ebenfalls möglich den Zähler Pin Code zu speichern und bei bedarf zum Zähler zu übertragen, vorrausgesetzt 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.
Als Mikrokontroller wurde ein Wemos D1 mini Modul mit einem ESP8266 verwendet. Hierüber werden die Daten der IR-Schnittstelle eingelesen und das als S0-Signal ausgegeben.
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:
Beim modernen Smartmetern werden die Daten über ein standardisiertes SML-Protokoll übertragen. Leider werden von verschiedenen Herstellern zuweilen unterschiedliche Übertragung Einstellungen verwendet. Auch die SML Protokolle können unterschiedliche Dateninhalte aufweisen. Deshalb kann es notwendig sein, dass die Daten mit der vorliegenden Programmierung nicht ausgelesen werden können und Anpassungen in der Firmware notwendig sind.
Hierfür sind verschieden Debug Optionen in die Firmware integriert, die über entsprechende Include Anweisungen aktiviert werden. Somit ist 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
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
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.
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
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
Weiter Eingangsspannungsbereich von 8 – 27V, 12V Batteriebetrieb möglich
Konfiguration aller Modulparameter direkt am Timekeeper möglich.
Großes 1024 Pixel LED DOT-Matrix Display für die Anzeige der gemessenen Zeiten
Konfiguration über Taster am Modul oder die Blynk APP
Konfigurierbare Ruhelagen NO (normally open), NC (normally closed) der angeschlossenen Sensoren
Zeitanzeige am Display, über die Blynk App oder das Web-Interface
Für viele verschieden Messverfahren einsetzbar (Lichtschranken, Druckschlauchmessung oder Potentialfreie Eingangskontakte
Viele verschieden Messmodis auswählbar (Einzelzeiten, Rundenzeiten, Zwischenzeit, EinzelInitiator Messung uvm.)
Unterdrückung von mehrfach Auslösungen beim Überfahren bei Schlauchmessverfahren.
OTA Firmware Update
Time Display Funktion für Alge Comet Zeitmessmodule (ab Version VX.04)
Einstellung der Display Helligkeit für Energieeinsparung z.B. bei Battereibetrieb (ab Version VX.05)
Zeitdifferenz korrekt (ab Hardware Version 2, Software Version 1.27)
Allgemeines
Die hier beschriebene Zeitmessung „Timekeeper“ entstand auf Anfrage für eine Zeitmessung zu Trainingszwecke für eine Gleichmäßigkeitsprüfung, wie sie bei Oldtimer Rennen zur Wertung durchgeführt wird.
Aufgabenstellung:
Beim Durch- bzw. Überfahren eines Startinitiators sollte eine neue Zeitmessung begonnen werden, diese sollte mit dem Durch- bzw. Überfahren des Zielinitiators enden. Die Zeitnahme sollte in drei verschiedenen Modi erfolgen können, eine reine Zielzeiterfassung, eine Ziel- und Zwischenzeiterfassung (was einen weiteren Zeitmesseingange für die Zwischenzeit notwendig machte) und die Erfassung von zwei Rundenzeiten (LAP1 und LAP 2).
Die gemessenen Zeiten sollten durch eine große Anzeige, die gut aus dem Fahrzeug, nach Beendigung der Zeitnahme abzulesen wäre. Des Weiteren sollte die Möglichkeit bestehen, die gemessenen Zeiten zusätzlich in einer APP auf dem Smartphon angezeigt zu bekommen.
Eine Webserver Ansicht, die alternativ zur APP Ansicht benutzt werden könnte, wurde ebenfalls angestrebt.
Die Anforderungen wurden in diesem Projekt kurzbeschrieben wie folgt realisiert: Die gesamte Zeitmessung erhielt ein robustes Aluminium Gehäuse mit einer verspiegelten Plexiglasscheibe, hinter der eine gut lesbare LED DOT Matrix Anzeige angebracht wurde. Die Auflösung des Displays beträgt 1024 Led Bildpunkte.
Um die drei Initiatoren direkt per M12 Steckverbinder anzuschließen, wurden auf der Rückseite des Gehäuses drei Buchsen angebracht, die einen direkten Anschluss von Industrie Laserlichtschranken (z.B. der Firma Leutze) ermöglichen. Aus diesem Grund wird das Modul mit einem =24V/2A Stecker Netzteil versorgt, dass sogleich die Versorgungsspannung für die angeschlossenen Initiatoren wie auch der internen Elektronik bereitstellt.
Die Zeiterfassung erfolgt Mikrocontroller gestützt, mit einem ESP8266. Dieser Baustein bietet alle Voraussetzungen, die für die Realisierung des Projektes und eine Anbindung über ein WIFI Netzwerk notwendig sind. Die dabei erzielte Messgenauigkeit beträgt +/-1 ms.
Eine Externe Antenne sorgt für eine optimale Reichweite des Moduls.
Um die ermittelten Zeiten direkt auf einem Smartphone anzuzeigen, wurde eine Anbindung an die BLYNK APP realisiert. Da diese APP ist sowohl für Android als auch für IOS erhältlich ist. Sie überzeugte durch ihr offenes und flexibles Konzept und ist zudem eine sehr kostengünstige Lösung für den Endkunden.
Durch den Kauf von zusätzlicher Energie, kann die App leicht und flexibel um weitere Anzeigen und Funktionen erweitert werden.
Ist keine Internetverbindung möglich oder vorhanden, arbeitet das Timekeeper Modul somit nach der Initialisierung im Standalone Modus, die ermittelten Zeiten werden auf dem Display angezeigt.
Zusätzlich können die gemessenen Zeitinformation in diesem Betreibsmodus aber auch über ein integriertes Webinterface abgerufen und angezeigt werden. Hierfür wird ein interner Access Point geöffnet, mit dem man sein Smartphon verbinden kann, um auf die ermittelten Zeiten zuzugreifen.
Ist eine Anbindung an ein lokales WLAN und somit eine Internet Verbindung vorhanden, bietet das Modul weitere Optionen für die Bedienung und die Zeitanzeige.
Es ist dann z.B. möglich die neusten Firmware Updates vom Webserver des Herstellers direkt in das Modul zu laden und zu installieren.
Ein integrierter NTP-Zeitservice stellt dann die aktuelle Uhrzeit und das Datum zur Verfügung. Wird mit dem Modul länger als 90 Sekunden keine neue Zeitmessung mehr durchgeführt wird diese dann automatisch auf dem Display angezeigt.
Die Auswahl verschiedener Funktionen erfolgt über dem MODE-Taster auf der Rückseite des Moduls. Damit kann ein Menü aufgerufen werden, um die Funktionsweis des Moduls zu konfigurieren.
Die M12 Buchsenanschlüsse sind kompatible mit der von uns empfohlenen Leuze Laserlichtschranken von Typ PRKL 25 4.1 200-S12 und können somit direkt angeschlossen und betrieben werden.
Steckerbelegung Lichtschranken:
Draufsicht M12 Buchse:
Blynk Applikation:
Webansicht:
Kundenreferenzen des Auftraggebers:
Folgende Links wurden uns vom Kunden, der die Entwicklung des Timekeeprer bei uns beauftragt hat zur Verfügung gestellt.
09.10.2023 HW Versionen 2, Firmware Version 1.29 Korrekturwertfaktor für Abweichung der Millis() bei der Zeitnahme eingebaut. Integration des Korrekturwertfaktors der Millis() in das Webinterface HTML Code überarbeitet und Fehlerbeseitigung beim Time Div Überarbeitung Lokaler AP Fehlerbeseitigung
07.08.2023 HW Versionen 2, Firmware Version 1.28 Ab dieser Version wird der Hostname des Timkeepers dem Router mitgeteilt, so das dieser dort im Klartext zu sehen ist!
27.06.2022 HW Versionen 2, Firmware Version 1.27 Alle Einstellungen, die ursprünglich über die BLYNK App vorgenommen werden konnten, wurden in dieser Version nun in die Weboberfläche integriert. Da der Anbieter der BLYNK App die Unterstützung seines Dienstes bis Ende 2022 abgekündigt hat! Desweiteren wurden die Settings um ein Eingabefeld zur Zeitdifferenz korrekt erweitert, diese erlaubt einen Abgleich mit anderen Messsystemen.
Ältere Versionen: Aufgrund einer Server Umstellung unseres Providers, können OTA-Updates nun nur noch ab Version 1.x6 durchgeführt werden! Für eine Firmware Update Ihrer älteren Timekepper Version, muss Ihr Gerät zu uns eingeschkickt werden! Wünschen Sie ein Update, fordern Sie bitte ein Angebot bei uns an.
18.04.2021: Alle HW Versionen, Firmware Version 03
Einstellen der Display Helligkeit.
– Überarbeitung der Interrupt Routiene bei der Zeiterfassung für eine höhere Genauigkeit. – Neuen Menüpunkt zum abschalten der WIFI Verbindung (Zeiteinsparung beim Starten, wenn kein WIFI verfügbar). – Anzeige Fortschrittsanzeige während deines Firmwareupdates. – Verbesserung der Systemsabilität. – Geänderte Hardware bei den DOT Matrix Displays von Maxim, unterscheidung über die Hardware Version des Timekeeper Moduls bei OTA-Update
15.12.2020: Version 1.02 – Neue „Hold Ini“ Zeitnahmefunktion. Misst die Zeitdauer, die der Initiator aktiv war. – Eine Änderung der Zeitnahmemethode direkt am Timekeeper wird nun auch rückwärts in der Blynk App Blynk App aktualisiert. – Wenn kein NTP Zeitserver Server erreichbar ist, wird die Uhrzeit / Datum Anzeige am Timekeeper Modul abschalten. – Erweiterte Webdarstellung, Listenansicht mit bis zu zwanzig Einträge und einem CSV Export Funktion.
08.05.2019: Version 1.01 „Single Ini“ Zeitnahmefunktion mit nur einem Initiator, Trenddarstellung der Zeitdifferenz und Umgestaltung der Bedienelemente. Erweiterung der Blynk App um ein Eingabefeld für die Entfernung zwischen dem Start- und Ziel Initiator sowie die Integration einer Anzeige der daraus berechneten Geschwindigkeit.
20.04.2019: Version 1.00 Timekeeper finale Version 1.00, Firmware released.