Was ist ein Dash Button? - Dillinger

Werbung
This page was exported from Dillinger-Engineering [ http://dillinger-engineering.de ]
Export date: Wed May 17 14:34:17 2017 / +0000 GMT
Rugged Dash Button
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 APModus, 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 definirt werdn:





SSID des lokalen WLAN Netzwerks
Password des lokalen WLAN Netzwerks
Hostname des Zielservers
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.
Deep Sleep Modus
Softwaretechnisch wird hierfür die sogenannte Deepsleep Funktion des Mikrocontrollers verwendet. In diesem
Modus hat die Schaltung eine Stromaufnahme <10uA, was eine lange Lebensdauer der Batterien im Standby
garantiert.
Bei einem Standard ESP-07 befinden sich zwei LED's direkt auf dem Modul. Wobei eine LED direkt mit der
Versorgungsspannung verbunden ist. Diese LED verursacht auch im deepsleep Modus einen schadhaften
Ruhestrom von ca. 20mA und muss deshalb entfernt werden.
Batterie Kapazität
Die Richtwerte für 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 deep sleep Modus
von mehreren Jahren entspricht.
Das Layout bietet auch die Möglichkeit den Dash Button mit einer Knopfzelle zu betreieben. Hierfür muss
eine Litium Ionen Zelle z.B. vom Typ LIR 2032 verwendet werden, da diese Typen auch bei einer
Pulsbelastung in der für den ESP8266 definierten Spezifikation bleiben.
Eine LR2032 verhält sich bei einer Pulsbelastung anders. Hier bricht die Spannung kurzfristig auf 2,8V ein,
was deutlich auserhalb der Spezifizierten Parameter des ESP8266 liegen würde.
So wird für dieses Projekt angenommen, dass zwei in Reihe geschaltete neue AA-Batterien zum Einsatz
kommen. Diese liefern eine Spannung von 3,2 V, was einer Batteriekapazität von 100% entspäche.
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!
Hierfür wird die folgende Berechnung angewandt:
Bei einem Batteriebetrieb mit zwei AA-Zellen, wird am Kontroller maximal eine Betriebsspannung von
3,2V erreicht, was in diesem Fall einer prozentualen Batteriekapazität von 100 % entspräche.
Die minimale Betriebsspannung von 3,0V legt somit die 0% der Batteriekapazität fest.
Im folgenden Beispiel wird angenommen, dass die Batterie noch eine Spannung von 3,1V (50%) liefert:
Y = Eingangsspannung 3,1V
Y0= 3,0 V
Y100= 3,2 V
X= Ergebnis in %
X0 = 0 %
X100 = 100%
X:= ((X100 - X0) * ( Y – Y0 ) / (Y100 – Y0)) + X0;
100 * 0.1
Y = ------------- + 0 = 50%
0.2
Die Software bietet die Möglichkeit, neben der Nutzinformation (Token) auch Informationen zur aktuellen
Batteriekapazität des Dash Buttons zu liefern.
Somit kann in der Serverapplikation ein Mechanismus angestoßen werden, der den Admin rechtzeitig
informiert, wenn ein Batteriewechsel erforderlich wird.
Das Layout bietet die Möglichkeit, verschieden Batteritypen in verschiedenen Leistungsklassen und Größen zu
verwenden.
In einem Praxistest wird ermittelt, welche Variante anschließend für die Serienfertigung am geeignetsten ist. Je
nach verwendeter Batterietype ändern sich natürlich auch die Abmessung des zu verwendenden Gehäuses.
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 Antennenanschluß verwendet, muss die Verbindung zur internen (aufgelöteten) Antenne unterbrochen
werden. Hierfür ist der Null Ohm Wiederstand neben dem Antennenanschluß zu entfernen.
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.
Durch eine entsprechende Programmierung der Firmware, bestünde die Möglichkeit zukünftige Software
Updates auch direkt per WLAN aus der Entwicklungsumgebung in den Mikrocontroller zu laden.
Eine zweite Möglichkeit wäre ein automatisches Update, welches immer dann geladen würde, wenn eine
neuere Version der Firmware auf einem Server vorliegt.
Da der hier beschriebene Dash Button aber in einer Produktivumgebung eingesetzt werden soll, wird von
dieser beiden Variante jedoch Abstand genommen.
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 bedrahtete 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. Um
Fehlbedienungen zu verhindern wäre es sicherlich sinnvoll, den Tastendruck zeitlich zu überwachen, so das
eine Aktion erst dann erfolgt, wenn der Taster z.B. für drei Sekunden gedrückt gehalten wurde.
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 180 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 Microkontroller wider in den deepsleep Modus.
Weitere Ideen:




Es wäre sicherlich sinnvoll, wenn man durch ein langes drücken des Tasters (ca. 10 Sekunden) den
Konfigurationsmodus des Dash Buttons manuell aufrufen könnte bzw. die alte im Controller
gespeicherte Verbindungsdaten gelöscht würden, um diese bei Bedarf neu zu definieren.
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.
Die Batterie Kapazität sollte als weitere Parameter im HTTP PUT an den Server übermittelt werden.
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.
In diesem Fall wäre ein ein weitere Parameter nötig.
Der Parameter "token" beschriebe somit die Identifikationsnummer des Dash Buttons, der Parameter
"batt" die aktuelle Kapazität der eingebauten Batterie und der Parameter "aktion" welche aktion der
Dash Button ausführen soll.
Hierbei wäre zu bedenken, dass ein zyklisches Verbinden mit dem lokalen WLAN und das Senden der
Statusinformation die Batterielebensdauer zusätzlich verkürzen würde.
HTTP PUT:
http://HOST/URL?&token=ef98c8246ef0409da5fb3a27afa4ec61&batt=92&action=order
Zusätzlich sollte dem Benutzer des Dash Buttons über ein charakteristische Blinken der Status LED ein
bevorstehender Batteriewechsel angezeigt werden. (z.B. mehrmaliges kurzes aufblitzen der LED, bevor der
Controller wieder in den deepsleep Modus wechselt.)
Post date: 2017-04-24 12:55:57
Post date GMT: 2017-04-24 11:55:57
Post modified date: 2017-05-02 10:14:20
Post modified date GMT: 2017-05-02 09:14:20
Powered by [ Universal Post Manager ] plugin. MS Word saving format developed by gVectors Team www.gVectors.com
Herunterladen