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

Beschreibung Einschaltstrombegrenzer 24V 5A
Beschreibung Einschaltstrombegrenzer 24V 5A
Beschreibung-Einschaltstrombegrenzer-24V-5A.pdf
290.8 KiB
756 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.

Schaltungsbeschreibung

Diese Schaltung kommt mit 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 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)

Zeitmessung mit Großdisplay und Blynk App

Technische Beachreibung Timekeeper
Technische Beachreibung Timekeeper
Technische-Beachreibung-Timekeeper-Version-1.04.pdf
Version: Für alle Versionen
3.0 MiB
10 Downloads
Details

Key Features

  • 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)

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 und beauftragt hat zur Verfügung gestellt.

Versionsverlauf:

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

Intended:

  • Firmware Version 05
    Einstellen der Display Helligkeit.
    Timekeeper-BLYNK-Token V.05
    Timekeeper-BLYNK-Token V.05
    Timekeeper-BLYNK-Token-V1.05.png
    Version: V1.05
    2.9 KiB
    1 Downloads
    Details

Released:

  • 08.09.2021 Alle HW Versionen, Firmware Version 04
    Optionale Anbindung eines ALGE Comet zur Zeitanzeige. Hierfür ist eine Hardware- Anpasung und Erweiterung des Timekeeper Moduls notwendig.

  • 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).
    – 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
    Timekeeper-BLYNK-Token V.03
    Timekeeper-BLYNK-Token V.03
    Timekeeper-BLYNK-Token-V.03.png
    Version: V.03
    2.9 KiB
    22 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
    43 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
    628 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
    472 Downloads
    Details

KR1204 12v RF 4-Kanal 433Mhz Funkfernbedienung und Schalter Modul

Technisch Daten:

  1. Arbeitsspannung: DC12V
  2. Ruhestrom: 5mA
  3. Arbeitsfrequenz: 433 MHz / 315 MHz
  4. Empfangsempfindlichkeit: -104 dBm
  5. Funktionsoption: Momentary / Toggle / Latching
  6. Modulationsmodus: ASK
  7. Matching-Modus: Intelligenter Lerncode
  8. Ausgangsmodus: potentialfreier Kontakt / Spannungsausgang
  9. Shell: Ja
  10. Arbeitstemperatur: -30 ~ + 80
  11. Leiterplattenabmessung: 68,2 x 48,2 (mm)

Programmietung der Betriebsmodi und Anlernen von Fernbedienungen:

An das KR2014 Modul können mehrere Fernbedienungen angelernt werden. Wichtig: Die Fernbedienung muss vor dem Anlernen frei von Code sein. Ein Überschreiben mit anderen Modi funktioniert nicht. Leider können meines Wissens nur alle Fernbedienungen gemeinsam gemäß Punkt 8 (s. u.) gelöscht werden.

Das Anlernen einer neuen Fernbedienung geschieht über den Programmiertaster (Learn Key) auf dem Empfängermodul. Eine Rückmeldung des aktuellen Status erfolgt über eine kleine LED im Empfängermodul.
Soll eine neue Fernbedienung angelernt werden, wird über die Anzahl der Tastendrücke auf den Programmiertaster (Learn Key) festgelegt, welcher Betriebsmodus für die Fernbedienung verwendet werden soll.
Drückt man z.B. einmal auf den Programmiertaster, wählt man den Taster-/Puls-Betrieb für diese Fernbedienung aus. (Mehrmaliges Drücken würde die entsprechenden Modi gemäß der unten aufgeführten Nummerierungen 1 bis 7 einleiten.)
Nach Drücken des Programmiertasters leuchtet die LED heller und ist bereit, eine neue Fernbedienung aufzunehmen. Nun kann eine beliebige Taste der Fernbedienung kurz gedrückt werden. Die Übernahme wird anschließend durch dreimaliges Blinken der LED im Empfängermodul angezeigt. Danach leuchtet die LED im Empfängermodul wieder schwächer.

  1. Taster-/Puls-Modus: Drücken Sie die Lerntaste auf der Empfängerplatine einmal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann eine beliebige Fernbedienungstaste. Die LED-Anzeige blinkt dreimal. Der Empfänger zeigt an, dass der Pulsmodus erfolgreich gekoppelt wurde.

  2. Umschalt-/Toggle-Modus: Drücken Sie die Lerntaste auf der Empfängerplatine zweimal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann eine beliebige Fernbedienungstaste. Die LED-Anzeige blinkt dreimal, und der Receiver zeigt an, dass der Toggle-Modus erfolgreich gekoppelt wurde.

  3. Verriegelungsmodus: Drücken Sie die Lerntaste auf der Empfängerplatine dreimal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann die erste Fernbedienungstaste. Die LED-Anzeige blinkt dreimal am Empfänger Verriegelungsmodus erfolgreich gekoppelt (Einschalten mit der ersten Taste, Ausschalten mit der zweiten Taste). Nachteil: Mit dieser Fernbedienung können nicht alle Relais ausgeschaltet werden. Es bleibt immer das letzte eingeschaltet.

  4. 2CH kurzzeitig + 2CH Umschalten: Drücken Sie die Lerntaste auf der Empfängerplatine viermal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann eine beliebige Fernbedienungstaste. Die LED-Anzeige blinkt dreimal, und der Empfänger zeigt an, dass das Paar erfolgreich verbunden ist.

  5. 2CH Momentary + 2CH Latching: Drücken Sie die Lerntaste auf der Empfängerplatine fünfmal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann eine der Fernbedienungstasten. Die LED-Anzeige blinkt dreimal, und der Empfänger zeigt an, dass das Paar erfolgreich verbunden ist.

  6. 2CH Toggle + 2CH Latching: Drücken Sie die Lerntaste auf der Empfängerplatine sechsmal (die LED-Anzeige auf der Empfängerplatine blinkt), drücken Sie dann eine der Fernbedienungstasten. Die LED-Anzeige blinkt dreimal, und der Empfänger zeigt an, dass das Paar erfolgreich verbunden ist.

  7. 2-Kanal-Verriegelung + 2-Kanal-Verriegelung: Drücken Sie die Lerntaste auf der Empfängerplatine sieben Mal (die LED-Anzeige auf der Empfängerplatine blinkt). Drücken Sie dann eine der Fernbedienungstasten. Die LED-Anzeige blinkt dreimal, und der Empfänger zeigt an, dass das Paar erfolgreich ist.

  8. Löschen vorhandener Daten auf den Fernbedienungen: Drücken Sie die Lerntaste auf der Empfängerplatine achtmal. Die LED-Anzeige auf der Empfängerplatine blinkt achtmal. Die vorhandenen Daten auf den Fernbedienungen werden erfolgreich gelöscht.

+ V – Pluspol-Eingang

GND – Negativer Poleingang

1 – KC1 Normal Relais geschlossen
2 – KC1 Relaisrelais
3 – KC1 Normales Öffnen des Relais

4 – KC3 Normal Relais geschlossen
5 – KC3 Relaisrelais
6 – KC3 Normales Öffnen des Relais

7 – KC2 Normal Relais geschlossen
8 – KC2 Relais gemeinsam
9 – KC2 Normales Öffnen des Relais

10 – KC4 Normal Relais geschlossen
11 – KC4 Relais allgemein
12 – KC4 Normales Öffnen des Relais

WARNUNG
Schalten Sie vor der Installation die Stromversorgung ab und überprüfen Sie die Spannungsfreiheit!

ANMERKUNGEN
Wechseln Sie die Batterie unverzüglich, wenn Reichweite stark abnimmt.

 

Dash Button Bestellsystem

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

DashButtonServer
DashButtonServer
DashButtonServer.zip
Version: V 1.0.0.0
7.9 MiB
456 Downloads
Details

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.

Remote Desktop Verbindung zur Raspberry Pi 3 xrdp mit Windows MSDSC

Soll eine Verbindung von Windows mit dem Remotedesktop hergestellt werden, kann es bei der Raspberry Pi 3 zu Problemen kommen.

Der Grund hierfür ist das bereits ein Remotedesktop Sitzung geöffnet zu sein scheint. Das liegt daran, dass die PI3 bereits mit einem vorinstallierten RealVNC kommt.

Um mit xrdp eine Verbindung herzustellen muss dieser beendet werden, im folgenden wird beschrieben wie vorgegangen werden muss.

  • Entferne die folgende packages : xrdp, vnc4server, tightvncserver

sudo apt-get remove xrdp vnc4server tightvncserver

  • Installiere tightvncserver gefolgt von xrdp

sudo apt-get install tightvncserver

sudo apt-get install xrdp

Am Ende sollte es so aus sehen:

https://i.stack.imgur.com/vpmnn.png

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.

Mathe signifikante Stellen wie gehts …

Die erste signifikante Stelle einer Zahl ist die erste Zahl ungleich 0.

Wenn wir davon ausgehen, dass jede Zahl mit führenden und nachfolgenden Nullen geschrieben werden kann, wie hier in diesem Beispiel zu sehen ist,

…..000000000000000009732,34555000000000000000….

ist die erste Zahl, die NICHT Null ist, also die „9“ die ERSTE Signifikante Ziffer.

Danach wird einfach gezählt:
9732,345550000000000 ….
123456789 daraus folgt, neun signifikante Stellen!

So lautet die Zahl auf drei signifikante Stellen gerundet nun

9730

Würde zum Beispiel die Folgende Zahl da steht: 2100004, dann wären die ersten drei signifikanten Ziffern: 210.

Es werden also wie im Beispiel nur die ersten drei Stellen, die nicht Null sind abzählen und auf die n-te Stelle gerundet.

NMEA nach Dezimalgrad umrechenen und als KML-Datei für Google Earth zusammenbauen

Um die Daten eines GPS Empfängers z.B. in Google Earth anzuzeigen benötigt Google Earth die Daten als XML Datei. Die Dateiendung dieser XML Datei lautet „.KML “

In Folgenden finden Sie ein Beispiel für den Aufbau einer solchen Datei mit einer Track (Wegeanzeige), hierbei wird eine Textur 10 Meter über den Weg nach oben gezogen, um einen besseren Überblick zu erhalten:

<?xml version="1.0" encoding="UTF-8"?>
  <kml xmlns="http://www.opengis.net/kml/2.2">
  <Document>
    <name>KmlFile</name>
    <Style id="transPurpleLineGreenPoly">
    <LineStyle>
    <color>7fff00ff</color>
       <width>4</width>
       </LineStyle>
       <PolyStyle>
         <color>7f00ff00</color>
       </PolyStyle>
    </Style>
    <Placemark>
       <name>Absolute</name>
       <visibility>1</visibility>
       <description>Dillinger-Engineering</description>
       <styleUrl>#transPurpleLineGreenPoly</styleUrl>
       <LineString>
          <tessellate>1</tessellate>
          <altitudeMode>relativeToGround</altitudeMode>
          <coordinates>
            10.8665686666667,49.4601001666667,10
            10.8665698333333,49.4601003333333,10
            10.8665793333333,49.4601003333333,10
            10.8665775,49.4601003333333,10
            10.866586,49.460101,10 
            10.8665888333333,49.4601011666667,10
            10.8665971666667,49.4601015,10 
            10.8665971666667,49.4601015,10
         </coordinates>
       </LineString>
    </Placemark>
  </Document>
</kml>

Von einem GPS Empfänger werden die Daten meist im NMEA Format übertragen. Für eine reine Positionsbestimmung genügt der Daten String „Recommended Minimum Sentence C“ (RMC)
Jeder GNSS-Empfänger muss mindestens den Recommended Minimum Sentence C (empfohlener Mindestdatensatz C, RMC) Datensatz ausgeben können, maximal alle zwei Sekunden.
Er folgt folgendem Aufbau:
Seit NMEA In 2.3, wurden folgende Sätze um ein Feld erweitert (APB, BWC, BWR, GLL, RMA, RMB, RMC, VTG, WCV und XTE) das die Signalintegritätsinformation laut FAA darstellt. („F“ in untenstehender Tabelle)

$GPRMC,162614,A,5230.5900,N,01322.3900,E,10.0,90.0,131006,1.2,E,A*13
$GPRMC,HHMMSS,A,BBBB.BBBB,b,LLLLL.LLLL,l,GG.G,RR.R,DDMMYY,M.M,m,F*PP

Symbol
Bedeutung
HHMMSS
oder
HHMMSS.SSS
Zeit (UTC)
A Status (A für OK, V bei Warnungen)
BBBB.BBBB Breitengrad
b Ausrichtung (N für North, nördlich; S für South, südlich)
LLLLL.LLLL L ängengrad
l Ausrichtung (E für East, östlich; W für West, westlich)
GG.G Geschwindigkeit über Grund in Knoten
RR.R Kurs über Grund in Grad bezogen auf geogr. Nord
DDMMYY Datum (Tag Monat Jahr)
M.M magnetische Abweichung (Ortsmissweisung)
m Vorzeichen der Abweichung (E oder W)
F Signalintegrität :
A = Autonomous mode,
D = Differential Mode,
E = Estimated (dead-reckoning) mode
M = Manual Input Mode
S = Simulated Mode
N = Data Not Valid
PP Hexadezimale Darstellung der Prüfsumme
(Die Prüfsumme ergibt sich durch eine XOR-Verknüpfung aller Daten-Bytes zwischen (jeweils exklusive) dem Dollar-Zeichen ‚$‘ und dem Stern ‚*‘.)

Um aus den selektierten Lat und Lon Daten den Dezimalgrad zu extrahieren kann folgende Pascal Funktion verwendet werden.

function GMSToDC(Str, Direction : String): String;
{Convert NMEA latitude & longitude to decimal
Here's how you convert latitude & longitude obtained from NMEA's GPGGA to decimal:
N              NMEA             Decimal
latitude       0302.78469    03 + (02.78469/60) = 3.046412
longitude     10141.82531    101 + 41.82531/60) = 101.6971
Notice that for latitude of 0302.78469,
03 ==> degress. counted as is
02.78469 ==> minutes. divide by 60 before adding to degrees above
Hence, the decimal equivalent is:
03 + (02.78469/60) = 3.046412 }
Var Grad, MinSec , DC: Extended;
begin
   if Length(Str)=10 then //BBBB.BBBBB     Breitengrad
   Begin 
      Grad:= StrToInt(Copy(Str,1,2));
      delete(Str,1,2);
   end
   else                 // LLLLL.LLLLL     Längengrad
   Begin
      Grad:= StrToInt(Copy(Str,1,3));
      delete(Str,1,3);
   end;
   while Pos('.', Str) > 0 do      // Ersetze den Punkt durch ein komma
   Str[Pos('.', Str)] := ',';
   MinSec:= StrToFloat(Str)/60;
   DC:= Grad + MinSec;
   if (Direction='S') or (Direction='W') then
      DC := -DC;
   Result:= FloatToStr(DC);
   while Pos(',', Result) > 0 do
   Result[Pos(',', Result)] := '.';
end;

  Das Zusammenbauen der KML-Datei erfolgt hier:

Procedure NMEAToKML(VarStringList:TStringList;Name:String;NMEAArray:array of TNMEA);
Var I    : Integer;
Begin
  StringList.Add(''+#13#10+'<kml xmlns="http://www.opengis.net /kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2"xmlns:atom="http://www.w3.org/2005/Atom">'+#13#10+
  '<Document><name>'+Name+'</name>'+#13#10+
  '<Style id="sn_ylw-pushpin">'+#13#10+
  '<IconStyle><scale>1.1</scale><Icon>'+#13#10+ 
  '<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png'+#13#10+
  '<hotSpot x="20" y="2" xunits="pixels" yunits="pixels"/>'+#13#10+
   '<LineStyle><color>7f0000ff</color><width>5</width>  </LineStyle>'+#13#10+
  '<PolyStyle><color>7f0000ff</color></PolyStyle></Style>'+#13#10+
  '<StyleMap id="msn_ylw-pushpin"><Pair><key>normal</key>  <styleUrl>#sn_ylw-pushpin</styleUrl></Pair>'+#13#10+
  '<Pair><key>highlight</key><styleUrl>#sh_ylw-pushpin</styleUrl></Pair></StyleMap>'+#13#10+
  '<Placemark><name>'+FStopWatch.VeranstaltungsInfo+'#msn_ylw-pushpin1'+#13#10+
  '<tessellate>1</tessellate><altitudeMode>relativeToGround</altitudeMode><coordinates>');
  For I:= Low(NMEAArray) to High(NMEAArray) do
  StringList.Add(GMSToDC(NMEAArray[I].Lon, NMEAArray[I].NS)+ ',' +
  GMSToDC(NMEAArray[I].Lat, NMEAArray[I].EW) + ',10');
  StringList.Add(''+#13#10+
  '</LineString>'+#13#10+
  '</Placemark>'+#13#10+
  '</Document>'+#13#10+
  '</kml>');
end;

1. Cadolzburger Kettcar Rennen

1. Cadolzburger Kettcar Rennen Gesamtwertung

1. Cadolzburger Kettcar Rennen Urkunden

Am 27.12.2015 war es endlich so weit, meine beiden Söhne wollten schon seit längerem mit ihren Freunden ein Kettcar Rennen veranstalten und die anhaltend milde Witterung gestatte es uns dies auch noch im Dezember zu tun.

So wurden kurzerhand mit der Urkunden Druckerei der StopWatch Software Plakate erstellt und in der gerammten Nachbarschaft verteilt, damit auch möglichst viele Teilnehmer dabei sein konnten.

20151227_1. Cadolzburger Kettcar Rennen Flyer

Am Sonntag Vormittag begannen dann endlich die Vorbereitungen. Es wurde eine Leutze Laserlichtschranke installiert und mit der neu entwickelten Interface Platine an den Zeitmess PC angeschlossen.

20151227_Kettcar Rennen Cadolzburg (5)

Auch eine DMX Ampel und ein zweiter Monitor durfte nicht fehlen, die den Teilnehmern das Startsignal und den Zuschauern die entsprechenden Renninformationen lieferten.

20151227_Kettcar Rennen Cadolzburg (9)

Zu guter letzt organisierte mein großer Sohn noch eine aktive Lautsprecherbox mit einem USB Stick und der passenden Musik, sowie ein Mikrofon für Durchsagen und die geplante Siegerehrung.

Das Rennen begann wie geplant mit den Kettcars und jeder fuhr mehrere Runden um sein Bestzeit zu toppen.
Nach einer Stärkung mit Getränken und Kuchen ging es in die nächsten Runden, nach dem Kettcar wurde so ziemlich alles gefahren was Räder hatte bis am Ende die Stecke noch im Dauerlauf absolviert wurde.

20151227_Kettcar Rennen Cadolzburg (11)

Die Kids waren voll in ihrem Element, leider war die anschließende Auswertung dann umso schwieriger.
Deshalb hatten wir beschlossen die Ergebnisse in Altersgruppen ein zu teilen und egal wie die Bestzeit entstanden ist diese zu werten.

Es gab drei Gewinner, die bei der Preisverleihung alle einen kleinen Pokal und eine Urkunde erhielten.

20151227_Kettcar Rennen Cadolzburg (16)

Das Resümee war äußerst positiv, alle hatten einen Heiden Spaß bei der Sache und wahren mit sehr viel Motivation dabei.
Das wichtigste war aber, dass es auf jeden Fall nächstes Jahr wieder Rennen geben sollte.