Alle Beiträge von Thomas Dillinger

MQTT- Kapazitiver Regensensor – Modul

Produkt im Shop besuchen

Kapazitiver Regensensor MQTT
Kapazitiver Regensensor MQTT
Kapazitiver_Regensensor_MQTT.zip
2.4 MiB
10 Downloads
Details

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, die wir anschließend über unseren Web-Shop angeboten haben.
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 Kundenanfragen für diesen Sensor unerwartet 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.

Der Source Code sowie die Sensorplatine mit Auswerte Einheit oder das Fertiggerät mit Gehäuse kann in unserem Web Shop erworben werden:

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, der am Ende zu Fehlmessungen führt. Die Firmware des Mikrokontrollers schaltet bei einem Regenereignis die Sensorheizung automatisch ein, um ein schnelleres Abtrocknen zu der Sensoroberfläche zu gewährleisten und somit auf das Ende eines Regenereignisses schnell reagieren zu können.
    Unterschreitet die vom Temperatursensor gemessene Temperatur 3 °C, wird die Sensor Heizung ebenfalls aktiviert um Frostbildung auf der Sensoroberfläche zu verhindern. Hierbei wird die Heizung im Zeitabstand von 15 Sekunden ein- und ausgeschaltet. So wird auf der einen Seite Energie gespart aber auch die Temperatur des Sensors begrenzt. Den wenn sich kein Kondensat auf der Sensoroberfläche befindet, was durch die Erwärmung verdampfen kann, kommt es auch nicht zu einer Abkühlung durch Verdunstung.
  • 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 verwendetet WEMOS D1 mini Board wird in der Standard Variante ausgeliefert und besitz 4 MB Flash, was ausreichend Platz für zukünftige Erweiterungen 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.

 

Ansicht im IO-Broker:

Die Ansicht zeigt alle Verfügbaren Parameter des Sensormoduls. Die großgeschriebenen Parameter können über den Broker geschrieben werden.

Ansicht im Webbrowser:

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

Montage Vorschlag:

Das Regensensor Modul sollte in einem Winkel von ca. 30° mountiert werden, damit der auftreffende Regen die Sensoroberfläche nur benetzt und abfließen kann.  Das Modul lässt sich leicht in eine Hensel Verteilerdose (ohne Klemmen) mit den Abmessungen 104 mm x 104 mm, vom Typ DK 0400 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 durchstichen 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:

  • – Keine weiteren Anfragen offen.

Released:

  • 04.06.2021: Alle HW Versionen, Firmware Version 01
    – In dieser Version wurde eine Fehlerbeseitigung im
    Webfrontend vorgenommen, es betrifft die Umschaltung
    der Wirkrichtung des potentialfreien Relais Ausgangs.

 

 

Controllino Erweiterung für 8 x 1-Wire Sensoren oder Analogeigänge

Produkt im Shop besuchen

Allgemeines

Die SPS Module mit der Bezeichnung „CONTROLLINO“ sind frei programmierbare Arduino™ Standard und Arduino™ Software kompatible SPS Steuerung für den privaten und industriellen Gebrauch nach Norm EN 61010-2-201.
Der CONTROLLINO dient als elektronische Steuereinheit und ist auf ein Maximum an Kompatibilität ausgelegt.

Das Gerät verfügt nicht nur über alle gängigen Anschlüsse, sondern kann auch komplett von Grund auf programmiert werden.

Das CONTROLLINO kann auf Basis der Arduino™ IDE in der Programmiersprache C programmiert werden. Hierbei handelt es sich um eine Open Source Entwicklungsumgebung.

Zudem gibt es sehr viele Bibliotheken die das Programmieren vereinfachen.

Viele der angebotenen CONTROLLINO Module besitzen zu den bereits vorhandenen Klemmanschlüssen zusätzliche Pinheader Anschlüsse, die als 36-pol. Wannensteckerleisten ausgeführt sind und somit alle relevanten Anschlüsse des Microkontrollers als TTL-Kompatible Anschlüsse zur Verfügung stellen.

Die auf diesen Steckerleisten herausgeführten I/O’s besitzen einen ESD-Schutz und befinden sich hinter dem aktivem Spannungsteiler des CONTROLLINO und sind deshalb 5V TTL kompatibel, was eine Grundvoraussetzung für die Anbindung von Erweiterungen ist.

Genau hier setzt das „CONTROLLINO Sensorslot Modul 1-Wire“ an.

Um weitere externe Sensoren wie z.B. 1-Wire Temperatursensoeren oder Eingänge an die Controllino SPS’en anschließen zu können, wurde dieses Modul entwickelt. Es erlaubt den Anschluß von bis zu acht exteren 5V kompatiblen Eingängen, die über den X1-Pinheader Anschluss des Controllino herausgeführt sind.
Werden 1-Wire Sensoren angeschlossen, können diese über eine entsprechende DIP-Schalter Einstellung dem A0-Eingang des Controllino zugewiesen werden.

Die Zuschaltung eines exteren Pull-Up Widerstandes und die Auswahl des Widerstandswertes ist eben so über einen DIP-Codierschalter möglich.

Alle übrigen Eingangänge, die nicht für den Anschluss von 1-Wire Sensoren ausgewählt wurden, stehen weiterhin als 5V Digital- Analogeingänge zur Verfügung.

Controlino Sensorslot Modul 1-Wire V1.0
Controlino Sensorslot Modul 1-Wire V1.0
Controlino-Sensorslot-Modul-1-Wire-V1.0.pdf
Version: 1.00
924.2 KiB
52 Downloads
Details
Controllino Sensorslot Exaple
Controllino Sensorslot Exaple
Controllino_Sensorslot_Exaple.zip
1.1 KiB
15 Downloads
Details

Key Features

  • Die Spannungsversorgung erfolgt direkt über den Systembus des CONTROLLINO
  • Selbstrückstellende Sicherung zum Schutz des angeschlossenen CONTROLLINO
  • Anschluss von bis zu acht 1-Wire Sensoren
  • Flexibel durch diverse Bestückungs- und Anschlussvarianten (Wannenstecker oder Schraubklemmen)
  • Power LED für eine erleichterte Fehlersuche
  • Konfiguration der Sensoranschlüsse und des Pull-Up Widerstands über DIP-Schalter
  • Überspannungsschutz für jeden Sensorslot
  • Kurzschlussfeste 5V Sensorversorgung für jeden Sensorslot
  • Einfacher Anschluss an das CONTROLLINO Modul durch eine Flachbandkabelsteckverbindung
  • Mehrfachnutzung des Pinheaders möglich durch Anschluss eines Flachbandkabels mit mehreren Buchsenstecker.
  • Einfache Hutschienen Montage durch Hutschienen Railgehäuse
  • Sehr kompakte Bauform
  • Vielseitig verwendbar auch für andere Anwendungen

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

Technische Beschreibung Pressure Sensor
Technische Beschreibung Pressure Sensor
Technische-Beschreibung-Pressure-Sensor.pdf
1.4 MiB
3 Downloads
Details

Produkt im Shop besuchen

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

Technische Daten der Drucksensoren
Technische Daten der Drucksensoren
Technische-Daten-Drucksensoren.pdf
142.0 KiB
5 Downloads
Details

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
    PressureSensor V101
    PressureSensor V101
    PressureSensor_V101.png
    Version: 1.01
    2.9 KiB
    37 Downloads
    Details
  • 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
PressureSensor V1.00
PressureSensor V1.00
PressureSensor_V100.png
Version: 1.00
10.7 KiB
34 Downloads
Details

Kapazitiver Regensensor mit einem ESP8266 / Arduino

Zum Blogbeitrag MQTT-Regensensor Modul

Allgemeines:

Im Internet wird eine Vielzahl von verschiedenen Regensensoren angeboten. Die meisten davon kommen aus Fernost und arbeiten nach dem Resistance Prinzip.

Resistance Regensensor

Trifft ein Regentropfen auf die nicht isolierten Kontakte des Sensors, werden die nebeneinanderliegenden kammförmigen Kontakte durch den Regen verbunden, was letztendlich zu einer Reduzierung des Sensorwiderstandes führt.

Diese Widerstandsänderung ist abhängig vom Verschmutzungsgrad des Regenwassers, sowie der bereits eingetretenen Oxidation des Regensensors.

Über eine Komparator Schaltung kann hierbei meist der Schaltpegel eingestellt werden, bei dem Regen detektiert wird und der dann ein digitales Ausgangssignal setzt.

Manche Sensoren stellen zusätzlich zu diesem Digitalausgang noch ein Analogsignal zur Verfügung, was eine Lösung für eine zeitweilige Kalibrierung des Sensors durch die Software erlauben würde.

Das große Problem bei dieser Messmethode ist es, dass selbst bei Sensoren mit vergoldeten Kontaktoberflächen immer parasitäre Ströme fließen.

Da praktisch immer ein kleiner Gleichstrom an beiden Polen des Sensors anliegt, führt dies unabhängig von der Qualität des Sensors zu einem elektrochemischen Prozess und damit über kurz oder lang zu einer schrittweisen Zerstörung des Sensors.

Eine bessere Lösung stellt dieser Sensor dar, da er auf einem anderen Prinzip, dem kapazitiven Prinzip beruht.

Das Funktionsprinzip bei einem kapazitiven Sensor ist dem oben vorgestellten Messverfahren durchaus ähnlich. Es unterscheitet sich jedoch in einem wesentlichen Punkt, bei Regen wird hier keine leitende Verbindung hergestellt. Durch die Wassertropfen auf der Oberfläche wird lediglich die Kapazität des Sensors verändert, das Wasser wirkt als Dielektrikum.

Der Vorteil bei diesem Lösungsansatz liegt darin, dass keine blanken Leiterbahnoberflächen der Witterung ausgesetzt sind und dadurch auch kein elektrochemischer Prozess ausgelöst wird, der den Sensor auf Dauer irreversibel beschädigt. Alle leitenden Teile sind durch eine Lackschutzschicht vor Witterungseinflüssen geschützt.

Die Kapazität des Sensors beträgt im trockenen Zustand ca. 170pF. Tritt eine Betauung ein oder trifft Regen auf den Sensor, steigt die Kapazität an. Durch das ermittelte Delta C, lässt sich sogar eine Aussage über die Art des Regens und dessen Intensität treffen. Ist es Neblig oder es handelt sich um einen feinen Nieselregen, der die Sensoroberfläche benetzt, bilden sich viele kleine Wasser Tröpfchen auf dem Sensor, was wiederrum zu einem großen Delta C führt.
Bei einem Durchschnittlichen Regen Ereignis sind es vorwiegend größere Tropfen, die zu einem großen Teil sofort wieder abrutschen, so ergibt sich ein kleineres Delta C.

Um schnell festzustellen zu können, ob der Regen zu Ende ist, besitzt der Sensor eine Heizung an der Platinen Unterseite. Diese besteht aus zwanzig 15 Ohm Heizwiderstände, die es bei einer Versorgungsspannung von 5V immerhin auf eine Heizleistung von knapp 1,8 W bringen.
Sie sorgen für eine zügiges verdunsten der Flüssigkeit bzw. einer Eisbildung auf der Sensoroberfläche.

Durch die sehr kleine Bauform des Sensors, kann selbst mit dieser relativ geringen  Leistung ein schnelles (ca. 5 Minütiges) Abtrocknen sichergestellt werden.
Energetisch gesehen ist es sinnvoll, die Sensorheizung nur für die Dauer einer Regenerkennung zu betreiben. Das bedeutet, wird keine Feuchtigkeit oder Regen mehr detektiert, soll die Sensorheizung abgeschaltet werden!
Hierfür ist ein Transistor auf der Sensorplatine vorgesehen.
Wird hier ein Mosfet bestückt und ist der Pin in dieser Hardware Version 1.00 für dessen Ansteuerung nicht angeschlossen, muss dieser auf Masse gelegt werden.
Da der Mosfet bei einem offenem Gate in einem Halbleitenden Zustand gehen könnte, was zur einer Zerstörung des Bauteils führen würde.

Bestückung der Platinen Unterseite

Diese Bild zeigt die Bestückung der Unterseite des Sensors. Es ist gut zu erkennen, das im Layout zwar Pats für eine Befestigung der Sensorplatine vorgesehen sind, diese jedoch keine Bohrung besitzen. Weshalb hier auch kurz auf die Befestigung des Sensors eingegangen werden soll.

Wie zu sehen ist befinden sich die Anschlüsse annähernd mittig auf der Sensorplatine.

Verwandt man z.B. eine feste wasserdichte Hensel Anschlussdose um die Elektronik darin zu verstauen, genügt es in den Deckel ein passendes rundes Loch zu bohren, damit die Anschlüsse nach innen geleitet werden können. Der Regensensor selbst wird am besten mit Silikon wasserdicht mit dem Deckel verklebt.
Sollten dennoch Befestigungslöcher benötigt werden, so können diese nachträglich ausgebohrt werden.

Es bietet sich an die Platine für die Auswertung mit dem entsprechenden Gegenstück auszustatten, so dass diese von der Innenseite aufgesteckt werden kann.

Die Befestigung dieser Platine kann mit Distanzbolzen, die am Deckel eingeschraubt werden, erfolgen. Werden die Schrauben nicht vom Sensor (mit Silikon) überdeckt, sollte hier auf Edelstahlschrauben zurückgegriffen werden.

Im Unteren Bild ist der Schaltplan der Sensorplatine zu sehen.
Bei der Steckverbindung wurde wert daraufgelegt, dass die Signale für alle möglichen Anschlussvarianten an den Pins herausgeführt wurden.

Somit stehen dem Endanwender auch alle möglichen Messverfahren zur Verfügung, die zur Kapazitätsmessung angewandt werden können.

Schaltplan Kapazitiver Regensensor V1.00

Pin Belegung:

  1.  VDD +5V / 3,3V
  2. NC
  3. Sensorheizung
  4. Ladewiderstand
  5. Analog wert (Ladezustand)
  6. Entladewiderstand
  7. GND
  8. GND

Kapazitätsmessung durch Laden- und Samplen der Kondensatorspannung

Die Platine des kapazitiven Regensensors wurde für verschieden Anwendungsbereiche entwickelt, deshalb gibt es auch verschieden Bestückungsvarianten.

Wenn man z.B. einen PIC Mikrokontroller mit einem Komperatoreingang verwnden, kann eine Messmethode angewendet werden, bei die Kapazität des Sensor über den Pin 6, R23 entladen wird (Pin auf LOW) und der Pin anschließend wieder als Komperator Eingang umgeschaltet wird.
Der Pin 4, der zu diesem Zeipunkt im Tristate (hochohmig) war, wird nun als Ausgang programmiert und auf LOW geschaltet. Dieser läd nun die die Kapazität des Regensensors über R22 auf, bis der Komperatoreingang kippt.
Die ermittelte Zeit dient dann als Grundlage für die Kapazitätsbestimmung.
Beim MQTT-Regensensormodul wird ein anderes Messvervahren angewannt, da dieser nicht über einen Komperatoreingang verfügt.

Hier wird der AOUT (der gegen GND direkt die Kapazität des Sensors dartellt) als Kapazität eines Multivibrators genutzt, der abhängig von dieser Kapazität seine Ausgangsfrequenz ändert. Diese Ausgangsfrequenz wird an einem digitalen Eingang des ESP8266 gemessen und die Sensorkapazität aus der Frequenz berrechnet.

Da für dieses Messverfahren der C1, R22 und R23 nicht benötigt werden, müssen diese Bauteile bei diesem Messverfahren nicht mit bestückt werden.

Das obengenannte Messverfahren, dass sich jedoch nur für größere Kapazitäten im Bereich zwischen 10 nF und 2000 uF eigent, beschreibt der folgende Source Code von von Matthias Busse

Quellenverweis :
Kapazitäten von 10nF bis 2000uF einfach messen mit dem Arduino

// Kapazität Messgerät 10nF bis 2000uF
//
// Matthias Busse 22.2.2015 Version 1.1

#define messPin 0            // Analog Messeingang
#define ladePin 13           // Kondensator lade Pin über einen 10kOhm Widerstand
#define entladePin 11        // Kondensator entlade Pin über einen 220 Ohm Widerstand 
#define widerstand  9953.0F  // 10 kOhm > gemessen 9,953 kOhm

unsigned long startZeit;
unsigned long vergangeneZeit;
float microFarad;
float nanoFarad;

void setup() {
  pinMode(ladePin, OUTPUT);     // ladePin als Ausgang
  digitalWrite(ladePin, LOW);  
  Serial.begin(9600);           // Serielle Ausgabe
  Serial.println("Kapazitaetsmesser Version 1.1");
}

void loop() {
  // Kondensator laden
  digitalWrite(ladePin, HIGH);            // ladePin auf 5V, das Laden beginnt
  startZeit = micros();                   // Startzeit merken
  while(analogRead(messPin) < 648){}      // 647 ist 63.2% von 1023 (5V) 
  vergangeneZeit= micros() - startZeit - 114; // 0-Messung abziehen (112-116 us)
  if(vergangeneZeit > 4294960000) vergangeneZeit = 0; // Minuswerte auf 0 setzen (ist long deshalb der hohe Wert)
 // Umrechnung: us zu Sekunden ( 10^-6 ) und Farad zu mikroFarad ( 10^6 ),  netto 1  
  microFarad = ((float)vergangeneZeit / widerstand);   
  Serial.print(vergangeneZeit);           // Zeit ausgeben
  Serial.print(" nS    ");         

  if (microFarad > 1){
    if(microFarad < 100) {
      Serial.print(microFarad,2);         // uF.x ausgeben
      Serial.println(" uF     ");
    }
    else {
      Serial.print((long)microFarad);     // uF ausgeben
      Serial.println(" uF     ");
    }
  }
  else {
    nanoFarad = microFarad * 1000.0;     // in nF umrechnen
    if(nanoFarad > 10) {
      Serial.print((long)nanoFarad);     // nF ausgeben
      Serial.println(" nF     ");
      }
    else
      Serial.println("kleiner 10 nF");  
  }

  /* Kondensator entladen */
  digitalWrite(ladePin, LOW);             // ladePin auf 0V 
  pinMode(entladePin, OUTPUT);            // entladePin wird Ausgang 
  digitalWrite(entladePin, LOW);          // entladePin auf 0V 
  while(analogRead(messPin) > 0){}        // bis der Kondensator entladen ist (0V)
  pinMode(entladePin, INPUT);             // entladePin wird Eingang
  
  while((micros() - startZeit) < 500000){}   // bis 500ms warten, d.h. max 2 Ausgaben pro Sekunde
}

Kapazitätsmessung sehr kleiner Kapazitäten

Da bei sehr kleien Kapazitäten die Ladezeit des Kondensators ebenfalls sehr klein wird, müsste beim oben vorgestellten Messverfahren der Ladewiederstand im Verhältnis hierzu entsprechend vergrößert werden, um mit der Samplingrate des AD-Wandlers im Mikrokontroller immer noch ein akzeptables Messergebnis erzielen zu können.

Das Problem bei einem sehr großen Ladekondensator liegt darin, dass natürlich auch der analoge Eingang des Mikrokontrollers den Kondensator belastet und entläd. Der Messfehler wird also umso größer, je größer der Ladewiderstand wird, bis das System am Ende kippt und der Ladewiderstand die benötigte Ladung nicht mehr liefern kann.

Da sich die Kapazität des Regensensors in einem Bereich von 170pF – max. 400 pF bewegt, wird hier für auf eine anderes Messverfahren zurückgegriffen werden.

Das Frequenzmessverfahren

Bei diesem Messverfahren wird keine ADC benötigt, es kommt mit einem Digitaleingang des Mikrokontrollers aus.
Hierfür kommt der hochgenaue Langzeittimer NE555 zum Einsatz.
Dieser Timer seht sowohl in einer 5V Variante als NE555, als auch für Mikrokontroller die nicht 5V tolerant in einer 3V Variante ICM7555 zur Verfügung.

Arbeitet der Mikrokontroller mit 3,3,V und stehen nur ein NE555 zur Verfügung, kann natürlich auch ein Spannungsteiler am Ausgang den Levelshift übernehmen.

Der NE555 wird in dieser Schaltung als Multivibrator eingesetzt, der abhängig von angeschlossenen Kondensator seine Ausgangsfrequenz verändert.

Wenn am Ausgang gleiche Ein- und Ausschaltzeiten erzeugt werden sollen, muss die Standardschaltung (siehe oben) mit einer Diode parallel zum Widerstand R2 aufgebaut werden. Andernfalls kann diese Diode einfach entfallen. In der obigen Bauteilauslegung ist das Tastverhältnis annähernd 1:1 was auch hier die Diode unnötig macht.
Im Programm des Regensensors werden beide Varianten berücksichtigt. Da sowohl die Zeitdauer der negativen als auch der positive Halbwelle gemessen und anschließend addiert werden. Und damit die ganze Periodendauer berechnet wird.

Für die Messung wird vom Regensensor nur der Pin 5 (Analogwert) und Pin 7 (GND) benötigt.
Soll die Heizung genutzt werden kommen noch der Pin 1 (VDD) und Pin 3 (Sensorheizung aktivieren) hinzu.

Die Ein- Zeit berechnet sich wie folgt:
T1= 0,694 * (R1 + R2) * C

Die Aus- Zeit berechnet sich wie folgt:
T2= 0,694 * R2 * C

Die gesamte Periodendauer ist die Summe aus T1 +T2
T = 0,694 * C * (R1 +(2 * R2))
f = 1 / T

Die Frequenz ist 1 / T1 + T2, damit ergibt sich die Ausgangsfrequenz nach folgender Formel:
f = 1 / (0,694 * C * (R1 +2 * R2))

Da bei dieser Anwendung für uns nicht wichtig ist, welche Kapazität der Sensor hat, kann bereits die gemessene Frequenz für eine Regenauswertung verwendet werden.

Der Vollständigkeit halber hier trotzdem noch die kurz die nach C umgestellte Formel:
C =1 / ( f * 0,694 * (R1 + 2 * R2))

Programaufbau für die Kapazitätsmessung des Regensensors

/* Capacitivemeasurement (c) by Dillinger-Engineering 10/2020

   Funktionsweise:
   Um die kleinen Kapazitätsveränderungen des Regensensors (pF-Bereich)
   mit einer hohen Genauigkeit zu messen, wird hier ein NE555/3V verwendet.
   Dieser arbeitet als Multivibrator mit einer Frequenz im KHz Bereich.
   Ändert sich die Messkapazität, ändert (sinkt) auch die
   Frequenz. Je nach Auslegeung der Schaltung kann über die
   Frequenzänderung dann die entsprechende Kapazität errechent werden. 
   Je gröer der Parameter "MeasuringCycleleTime" gewählt wird,
   um so genauer wird auch die Messung. Zu beachten ist dabei jedoch,
   dass sich, sollte ein Sensor Fehler (kein Signal vom Eingang) vorliegt, damit
   auch die Timeoutzeit entsprechnde verlängert !
*/

const byte InputPin = 5;                       // Wemos D1 mini (Pin D1)
const unsigned int MeasuringCycleleTime = 1e6; // 1000000 us
const long R1 = 10000;   //  10 KOhm
const long R2 = 100000;   // 100 KOhm


float GetFrequeny(){  // Ergebnis in Hz
  float fsum = 0.0;
  unsigned int counts = 0;
  double f, T;
  unsigned long SartTtime = micros();
  bool Fail = false;
  do {
    T = pulseIn(InputPin, HIGH, MeasuringCycleleTime) + pulseIn(InputPin, LOW, MeasuringCycleleTime);
    if(T==0){
      Fail = true;
    }
    f=1/T;      
    counts++;    
    fsum += f * 1e6;
  } while(micros() < (SartTtime + MeasuringCycleleTime) && !Fail); // 1 Sekunde mitteln
  if(Fail){
    return(0);
  }else{
    f = fsum / counts * 0.9925;    //Korrekturwert ermitteln und einrechnen
    return(f);
  }
}

float GetCapacity(){  // Ergebnis in pF
  return(1/(GetFrequeny() * 0.694 * (R1 + 2 * R2))* 1e12);
}

void setup() {
  pinMode(InputPin, INPUT);
  Serial.begin(115200);
}

void loop() {
  char CharStr[30];
  
  // Show Data on Serial if available
  sprintf(CharStr,"Capacity: %.3f pf", GetCapacity()); 
  Serial.println(String(CharStr));
  sprintf(CharStr,"Frequenz: %.3f Hz", GetFrequeny()); 
  Serial.println(String(CharStr));
}

 

ESP8266 EEProm richtig verwenden

Grundlagen

Der ESP8266 verfügt je nach Bestückung des verwendeten ESP-Moduls über ein Flash Speicher, der von 512 Byte bis zu 16KByte reichen kann.

Beim ESP wird hiervon fester Bereich von 4096 Byte für eine „qasi“ EEProm reserviert, welches vom Programm gelesen und auch beschrieben werden kann. Diese Daten bleiben wie das Programm nach einem Neustart erhalten.

Die Größe dieses für den EEProm reservierten Bereichs ist in der spi_flash.h unter SPI_FLASH_SEC_SIZE (4096) definiert.

Quelle: www.ullisroboterseite.de
Quelle: www.ullisroboterseite.de

EEproms eignet sich perfekt zum speichern non Daten bzw. von Daten Strukturen, die nach einem Neustart des ESP wieder zur Verfügung stehen sollen.
Da es sich hierbei aber immer noch um eine Flash Ram handelt und diese vom Hersteller mit einer maximalen beschreibbarkeit von ca. 10.000 mal angegeben werden, sollten hier nur Daten gespeichert werden, die keiner häufigen oder gar zyklischen Änderung unterliegen. 

Deshaln eignet sich dieser Speicher auch nicht für Messdaten, für  Konfigurationsdaten, die sich aber nur selten ändern, ist er perfekt.

Verwendung

Die definition erfolgt als Arduino-typischer Klassenkonstruktor mit der Klasse EEPROMClass, diese stellt eine Reihe vordefinierter Funktionen bereit, die für das Handling mit dem EEProm notwendig sind.

Mit „void EEPROMClass::begin(size_t size)“ wird das Objekt zunächst initialisiert.

Dabei wird ein interner Puffer mit Namen _datain der angegeben Größe angelegt.
In diesen Bereich, der nun als EEPROM deklarierte ist, wird nun der Puffer eingelesen.
Alle nachfolgende Lese- bzw. Schreib Operationen in disem Zwischenpuffer.
Dieser Zwischenpuffer wird erst dann in den Flash Speicher übertragen, wenn man dies mit der Methode EEPROM.commit(); anfordert oder das Programm die Operation mit einem EEPROM.end(); abschließt.

Die internen Variablen _dirty vermerkt, ob eine Änderung des Dateninhalts stattgefunden hat. Ein Zurückschreiben des Pufferinhalts erfolg deshalb nur dann, wenn auch eine Änderung stattgefunden hat.

Die Methode getDataPtr() liefert den Zeiger auf den internen Pufferspeicher. Bei einem Aufruf dieser Methode wird _dirty gesetzt, da der Pufferinhalt über diesen Zeiger abgeändert werden könnte.

Der Kalssenaufruf EEPROMClass benötigt beim Konstruktor die Angabe der Speicheradresse (Sektornummer) in EEPROM.cpp, _SPIFFS_end ergibt sich aus der in der IDE festgelegten SPIFFS-Konfiguration.

Die vordefinierte Instanz der Klasse EEPROM wir folgt angelegt:

EEEPROMClass EEPROM((((uint32_t)&_SPIFFS_end - 0x40200000) / SPI_FLASH_SEC_SIZE));

Um z.B. Konfigurationsdaten in Verbindung mit dem EEPROM zu lesen und zu speichern, bietet es sich an die Daten in einer Structur zu verwalten.

 

typedef struct {
  int PHysteresisH1 = 10;          // Fall Back Hysteresis für Relais 
  int PThresholdH1 = 100;          // Schwellwert für Relais 
  int PHysteresisL1 = 10;          // Fall Back Hysteresis für Relais 
  int PThresholdL1 = 50;           // Schwellwert für Relais 
  int PRelaisStateL1 = 0;          // 0- NO / 1- NC
  int PRelaisStateH1 = 0;          // 0- NO / 1- NC
  int PRelaisStateErr = 1;         // 0- NO / 1- NC
  int PSerialOutState = 0;         // 0- OFF / 1- ON
  int PWifiState = 0;              // 0- OFF / 1- ON
  int PMode = 0;                   // 0= relative / 1= Absolut Druck
  int PACMode = 0;                 // 0= keine Autocalibration / 1= Autokalibration
  int PDeltaAC = 10;               // Maximale Abeichung Druckdifferenz 
  int PCalibrationTime = 5000;     // Calibration Counter Time in ms
  unsigned long PHoldTime = 500;   // Für Abfallverzögerung in ms
} PSettings;
PSettings psettings;

Um Speicherplatz zu sparen, sollte der Pufferspeicher nicht größer als notwendig initialisiert werden. Die Maximale Größe beträgt 4096.

Lesen von Daten aus dem Pufferspeicher

EEPROM.begin(1024); // Puffergröße die verwendet werden soll
EEPROM.get(512, psettings); // Anfangsadresse bei der die definierte Structur abgelegt ist
EEPROM.end(); // schließen der EEPROM Operation

Schreiben von Daten in den Pufferspeicher und anschließende Übernahme in den Flash mit commit()

EEPROM.begin(1024);
EEPROM.put(0, settings); //Schreiben einer zweiten Structur ab Adresse 0
EEPROM.commit();
EEPROM.end();

Quellen Verweise:
www.ullisroboterseite.de
www.kriwanek.de

ESP Interrupt Routiene Linkerattribute

Beim der Einbinden von ISR Routienen in den Quellcode des ESP kann es zu einer Fehlermeldung des Compilers kommen.

need to add the ICACHE_RAM_ATTR macro to interrup service routines (ISRs)

Das ICACHE_RAM_ATTR und ICACHE_FLASH_ATTR sind Linkerattribute. Bevor Sie Ihren Programmcode kompilieren, können Sie festlegen, ob die Funktion im RAM oder FLASH gespeichert werden soll (normalerweise legen Sie nichts fest: kein Cache).

Der ESP8266 ist Multitasking und der ESP32 verfügt über 2 Kerne. So können Sie Ihren Code als Multithreading ausführen, da er das RTOS verwendet.

Und jetzt das Problem: Der gesamte Flash wird für das Programm und die Speicherung verwendet. Das Lesen und Schreiben in den Flash kann aber nur über einen Thread erfolgen. Wenn Sie versuchen über 2 verschiedene Threads gleichzeitig auf den Flash zuzugreifen, kann es bei einem Konflikt zu abstürzen Ihres ESP kommen.

Sie können Ihre Funktion anstelle des Flashs, aber auch im RAM ablegen. Selbst wenn Sie etwas in das EEPROM oder den Flash schreiben, kann diese Funktion aufgerufen werden, ohne auf den Flash zuzugreifen.

Mit ICACHE_RAM_ATTR stellen Sie die Funktion in den RAM.
und
mit ICACHE_FLASH_ATTR stellen Sie die Funktion in den FLASH, z.B. um RAM zu sparen.

Interrupt-Funktionen sollten deshalb immer mit dem ICACHE_RAM_ATTR Linkerattribute versehen werden.
Funktionen, die häufig aufgerufen werden, sollten kein Cache-Attribut verwenden.

Wichtig:
Greifen Sie NIEMALS innerhalb eines Interrupts auf Ihren Flash Speicher zu!
Da der Interrupt jeder Zeit während eines Flash-Zugriffs auftreten kann.
Wenn Sie also gleichzeitig versuchen, auf den Flash zuzugreifen, kommt es zu einem Absturz und das kann manchmal auch erst nach einer lägerer Betriebszeit geschehen.

Da Sie nur 32 KB IRAM (Instruction RAM) haben, sollten Sie versuchen, nur Interrupt-Funktionen in den RAM zu stellen.
Nicht alle Ihre Funktionen, auch wenn dies mit Linkerattributen möglich ist.

const uint8_t interruptPin = 14;
volatile byte interruptCounter = 0;
int numberOfInterrupts = 0;
void ICACHE_RAM_ATTR handleInterrupt();

void setup() {

  Serial.begin(9600);
  pinMode(interruptPin, INPUT);
  attachInterrupt(digitalPinToInterrupt(interruptPin), handleInterrupt, CHANGE);

}

void handleInterrupt() {
  interruptCounter++;
}

void loop() {

  if(interruptCounter>0){

      interruptCounter--;
      numberOfInterrupts++;

      Serial.print("An interrupt has occurred. Total: ");
      Serial.println(numberOfInterrupts);
  }

}
// Quelltext by Alfredo Ramirez

 

 

Temperatur geführte WLAN Gewächshausantriebssteuerung

Um in einem Gewächshaus eine ideale Umgebungstemperatur für das gedeihen der Pflanzen zu schaffen, besitzen vielen Gewächshäuser ein Klappfenster, das manuell oder Motorisch betrieben je nach Temperatur geöffnet oder geschlossen werden kann.

Dieses Projekt schafft eine Möglichkeit zur kontinuierlichen Überwachung der Temperatur und der Luftfeuchtigkeit im Gewächshaus.
Diese Daten können über eine WLAN-Verbindung und die APP Blynk ausgewertet werden.
Um auf Temperaturschwankungen reagieren zu können besitzt das Modul zwei potentialfreie Relaisschaltausgänge je für AUF und ZU, über die z.B. ein motorischer Stellantrieb angesteuert werden kann, der die Fensterstellung steuert.

Über die Blynk App ist es möglich, nicht nur die Messdaten zu erfassen und zu speichern, das Modul besitzt einen integrierten Dreipunktregler, der mit entsprechender Parametrierung ein automatisches Verstellen des Antriebs ermöglicht.

Zusätzlich können die Sensordaten des Moduls auch über einen Webserver abgerufen werden, den das Modul ebenfalls zur Verfügung stellt.
Somit ist es möglich, über die Eingabe der IP-Adresse des Moduls im Webbrowser ebenso die aktuellen Sensordaten jederzeit abzurufen.

Das Steuermodul besteht im Wesentlichen aus der Grundplatine mit einem ESP8266 (Wemos D1 mini Pro) / 16MBit Mikrokontroller, der Beschaltung für die Spannungsversorgung und der Kommunikationsschnittstelle. Auf die Interne Antenne wurde verzichtet und stattdessen eine Externe Antenne angebracht, da mit dieser eine bessere WLAN-Empfang und damit eine größere Reichweite möglich ist.

Die Erstellung der Software für den Mikrokontroller erfolgt in der Programmiersprache C, das erstmalige Programmieren bzw. Flashen des Mikrokontrollers wurde über die Arduino IDE realisiert.
Für jede weitere Firmware Aktualisierung steht eine Updatefunktion in der APP bzw. im Web Frontend zur Verfügung, die nach der neusten Firmware auf dem Server der Herstellers sucht und diese ggf. installiert.

Die aktuelle im Modul verwendete Firmware Version wird sowohl in der APP als auch im Web Frontend angezeigt.

Hierbei ist zu beachten, dass auch immer die passende Blynk Applet Version auf dem Smartphone oder Tablett installiert werden muss, da dies ansonsten zu Fehlfunktionen führen kann!

Die Erfassung der Messdaten übernimmt ein Sensor vom Typ DHT 22 der die relative Luftfeuchtigkeit und die Temperatur misst.

Blynk APP „Applet“

Für die Firmware Version V1.00

Technische Beschreibung

WLAN Gewächshausantriebssteuerung Mit Blynk
WLAN Gewächshausantriebssteuerung Mit Blynk
WLAN-Gewu00e4chshausantriebssteuerung-mit-Blynk.pdf
1.1 MiB
261 Downloads
Details

Schaltplan

Schaltplan GewaechshausantriebBlynk
Schaltplan GewaechshausantriebBlynk
GewaechshausantriebBlynk_V100-_SCH.pdf
42.2 KiB
291 Downloads
Details

DC-Einschaltstrombegrenzer für 8-40V/max. 5A

Produkt im Shop besuchen

Vorwort

Auf der Suche nach einem DC-Einschaltstrombegrenzer für 24V sind wir bei unseren Recherchen auf ein älteren Beitrag der von ELV gestoßen. Da die Firma diese DC-Einschaltstrombegrenzer aber leider nicht mehr herstellt und liefert, machten wir uns an die Arbeit und entwickelten auf Basis des gefundenen Artikels unseren eigenen DC-Einschaltstrombegrenzer. Da dieser in einer Schaltanlage gebraucht wurde, entstand ein kleines Gerät für die Hutschienenmontage.

Beschreibung Einschaltstrombegrenzer 24V 5A
Beschreibung Einschaltstrombegrenzer 24V 5A
Beschreibung Einschaltstrombegrenzer 24V 5A.pdf
300.7 KiB
667 Downloads
Details

Allgemeines

Einschaltstrombegrenzer für Gleichspannung finden ihre Verwendung, um im Einschaltmoment vor hohen Pulsströmen zu schützen. Denn schon beim Laden von Kondensatoren im Bereich um die 1000 uF können im Einschaltmoment kurzzeitig Ströme vom 10–20 Fachen des eigentlichen Nennstroms fließen. Um ein Auslösen vorgeschalteter Sicherungen zu verhindern und um hohe Pulsbelastungen für die eingebauten Kondensatoren fern zu halten, kommt diese DC-Einschaltstrombegrenzung zum Einsatz.

Einschaltstrombegrenzer bzw. Einschaltoptimierer, finden in der Wechselstromtechnik bereits häufig Verwendung. Bei Elektronischen Schaltkreisen kommt es ebenso wie bei der 230V – Geräten oft zu hohen Einschaltströmen. Das liegt meißt daran, dass Elektronische Geräte intern mit Gleichspannung arbeiten und hierfür Kondensatoren im Netzteil für Spannungsversorgung verbaut werden, diese wirken beim  Einschalten wie ein Kurzschluss und sind somit für die hohen Einschaltströme verantwortlich.

Dessen Kurzschlussstrom hängt von der Güte (ESR = äquivalenter Reihenwiderstand), sowie von der Leistungsfähigkeit der speisenden Quellen und der Impedanz der Verbindungsleitungen ab.

So können bereits bei kleinen Kapazitäten um die 1000uF Einschaltströme um die 100A fließen. Dieser Strom fließt zwar nur für den Bruchteil einer Sekunde, aber teilweise schon lang genug, um u. U. vorgeschaltete Sichergegangen zum Auslösen zu bringen.

Dieses Verhalten findet sich häufig bei Geräte mit längsgeregelte Netzgeräten wie Audio- Endstufen mit hoher Leistung usw. – im Prinzip jedes Gerät mit großen internen Kapazitäten.

Ein hoher Einschaltstrom hat prinzipiell erst mal keinen negativen Einfluss auf den Betrieb dieser Geräte. Der Geräteentwickler muss sich aber dem Problem annehmen und es bei der Entwicklung im Auge behalten. Zum einen muss verhindert werden, dass eine vorgeschaltete Sicherung im Einschaltmoment auslöst und zum anderen wirken sich hohe Pulsströme negativ auf die Lebensdauer der verbauten Kondensatoren aus. Das Auslösen der Sicherung ließe sich natürlich dadurch verhindern, dass einfach der Sicherungswert erhöht wird, dann ist aber die Schutzfunktion der Sicherung für den laufenden Betrieb oft nicht mehr ausreichend gegeben. Deshalb wird in vielen Schaltungen eine Einschaltstrombegrenzung für den DC-Zweig entwickelt und eingebaut.

Es gibt mehrere Möglichkeiten den Einschaltstrom zu begrenzen, die häufigste ist der Einsatz eines NTC’s, der nach einer Zeit mit einem Relais oder eine FET überbrückt wird.

Die hier beschriebene Schaltung möchte eine rein elektronische Lösung vorstellen, in der auf Mechanische Komponenten verzichtet werden kann, indem ein FET (Feld-Effekt-Transistor) die Aufgabe eines geregelten Wiederstandes übernimmt, der nur im Einschaltmoment wirkt.

Die Aufgabe besteht darin, den FET so anzusteuern, dass damit sein Drain-Source-Widerstand dem geforderten Verlauf folgt.

Der Transistor kann je nach der benötigten Verlustleistung in zwei Varianten bestückt werden. Die erste Variante ist ein TO-220 Gehäuse stehend oder liegend ggf. mit oder ohne Kühlkörper. Oder in der DPAK Variante, als SMD direkt auf der Platine, deshalb sind im Schaltplan zwei Transistoren zu sehen (T1/T2).

Schaltungsbeschreibung

Diese Schaltung kommt mit nur sehr wenigen Bauteilen aus. Ein FET übernimmt das langsame Einschalten der Gleichspannung.

T1 ist ein P-Kanal MOS-FET (Metalloxid-FET) der eingesetzte Typ verhält sich so, dass bei einer Gate-Source-Spannung von 0 V der Transistor sperrt, also hochohmig ist.

Wird die Spannung negativ, wird also die Gate-Spannung kleiner als die Source-Spannung, beginnt der FET ab der Pinchoff Voltage (Schwellenspannung) zu leiten.

Beim verwendeten P-Kanal MOS-FET liegt dieser Wert laut Datenblatt zwischen 2,0 V und 4,0 V.

Um ein langsames Einschalten des MOS-FETs zu erreichen, darf die Gate-Source-Spannung nur sehr langsam negativer werden.

Dies wird durch eine RC-Schaltung aus C 1 und R 1 erreicht, die für das langsame Absinken der Gate-Spannung verantwortlich ist.

Der Verlauf der Gate-Spannung lässt sich wie folgt beschreiben:

Im Einschaltmoment ist der Kondensator C 1 ungeladen und die Spannung zwischen den Anschlüssen ist 0 V, der Kondensator wirkt wie ein Kurzschluss. In diesem Moment ist die Gate-Spannung gleich der Source-Spannung (UGS = 0 V), der FET sperrt. Über die RC-Kombination aus C 1 und R 1 fließt ein Strom vom Source-Anschluss (DC-Eingang) zur Masse, der den Kondensator langsam auflädt.

Das langsame Aufladen des Kondensators bewirkt ein langsames ansteigen der Kondensatorspannung, was wiederum zu einem langsamen Absinken der Gate-Spannung führt.

Wenn die Kondensatorspannung den Pinch-off-Wert des FETs erreicht, beginnt der FET zu leiten, er verringert seinen Drain-Source-Widerstand von einigen Megaohm in den Ohm- Bereich und die Ausgangsspannung steigt dabei entsprechend an.

Durch die sinkende Gate-Source-Spannung verkleinert sich der Drain-Source-Widerstand, die Ausgangsspannung steigt wiederrum langsam an. Ab etwa -10 V UGS geht der FET in die Sättigung, der Drain-Source-Widerstand liegt nun bei seinem Minimalwert von ca. 10 mOhm. Der Ladevorgang des Kondensators wird dadurch nicht beeinflusst, so dass die Gate-Source- Spannung noch weiter ansteigt.

Lt. Datenblatt liegt die Maximale Gate-Source-Spannungen bei -20 V, weshalb diese Spannung begrenzt werden muss um den FET nicht zu zerstören. Deshalb liegt parallel zum Kondensator eine 15V Z-Diode, die die Spannung auf 15 V begrenzt.

Der Einfluss der zweiten RC-Kombination aus R 2 und C 2 besteht darin, dass sich im Einschaltmoment C 2 im Vergleich zu C 1 sofort auf den Betriebsspannungswert auf läd. Während C 1 langsam Ladung aufnimmt und die Kondensatorspannung steigt, entlädt sich der Kondensator C 2, er arbeitet deshalb dem Absinken des Gate-Potenzials entgegen, dieser Einfluss wirkt sich anfangs aber nur gering aus. Beginnt nun der FET zu leiten, steigt die Ausgangsspannung und damit auch das Potenzial an einem Kondensatoranschluss von C 2. Dieses bewirkt ein schnelleres entladen von C2, der fließenden erhöhte Entladestrom versucht das Potenzial am Gate zu „stützen“. Damit verlangsamt sich der Abfall der Gate-Spannung und verzögert somit den Vorgang des Durchsteuerns des FETs nochmals.

Modul Anschlüsse

Technische Daten

Eingangsspannung:   8 – 40 VDC
Max. Laststrom:          5 A
Anstiegszeit:                 10 ms bis 50 ms, typ. 13 ms @ 24 V
On-Widerstand:         max. 50 mOhm, typ. 20 mOhm @ 24 V
Verlustleistung:          max. 1,25 W @ 5 A, typ. 500 mW @ 24 V, 5 A
Gehäusebauform:     HUT 1-C Gehäuse, 71 x 35 x 90 mm, 1 TE

(Quellenvereis ELV-Leer)

Start- Stop Zeitmessung mit DOT-Matrix Display und WLAN Anbindung

Timekeeper Manual
Timekeeper Manual
Timekeeper-Manual.pdf
Version: 1.03
3.1 MiB
702 Downloads
Details

Produkt im Shop besuchen

Key Features

  • Weiter Eingangsspannungsbereich von 8 – 27V, 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 uvm.)
  • Unterdrückung von mehrfach Auslösungen beim Überfahren bei Schlauchmessverfahren.
  • OTA Firmware Update

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:

Netterweise wurde uns von einem Kunden, der den Timekeeprer bereits seit längerer Zeit erfolgreich im Einsatz hat, folgende Link auf Beiträge zum Timekeeper zur Verfügung gestellt, die wir hier mit Ihnen teilen dürfen:

Versionsverlauf:

Aufgrund einer Server Umstellung auf HTTPS, können OTA-Updates nun  nur noch ab der Version 1.02 durchgeführt werden!

Besitzen Sie noch eine ältere Firmware Version und möchten diese aber weiterhin aktualisieren, kontaktieren sie uns bitte über unser Support Center.

Intended:

  • – Keine weiteren Anfragen offen.

Released:

  • 18.04.2021: Alle HW Versionen, Firmware Version 03
    – Ü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 ist.
    – Anzeige Fortschrittsanzeige während deines Firmwareupdates.
    – Verbesserung der Systemsabilität.
    Timekeeper-BLYNK-Token V.03
    Timekeeper-BLYNK-Token V.03
    Timekeeper-BLYNK-Token-V.03.png
    Version: V.03
    2.9 KiB
    13 Downloads
    Details
  • 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.
    Timekeeper-BLYNK-Token-V1.02
    Timekeeper-BLYNK-Token-V1.02
    Timekeeper-BLYNK-Token-V1.02.png
    2.9 KiB
    36 Downloads
    Details
  • 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.
    Timekeeper BLYNK Token V1.01
    Timekeeper BLYNK Token V1.01
    Timekeeper-BLYNK-Token-V1.01.png
    Version: 1.01
    39.9 KiB
    609 Downloads
    Details
  • 20.04.2019: Version 1.00
    Timekeeper finale Version 1.00, Firware released.
    Timekeeper BLYNK Token V1.00
    Timekeeper BLYNK Token V1.00
    Timekeeper-BLYNK-Token-V1.00.png
    Version: 1.00
    10.7 KiB
    452 Downloads
    Details