Zum Inhalt springen →

esp8266 Battery Low Notification

low-battery-notification

Klingt vermutlich etwas übertrieben, aber was währe, wenn sich der ESP2866 im Falle einer leeren Batterie einfach meldet und sagt „Bitte Batterie aufladen.“? Ich finde die Idee sehr genial und habe mir dazu mal Gedanken gemacht.

Die Lösung ist ganz einfach.

1. Der ESP8266 misst in regelmäßigen Abständen die Spannung der Batterie mit dem nodemcu Kommando adc.readvdd33().

2. Der Wert wird per HTTP an thingspeak.com gesendet. Dank onboard WIFI ist das auch in ein paar Zeilen erledigt.

Folgendes Beispiel zeigt den Code für einen HTTP Client, der die www.nodemcu.com Homepage aufruft.

-- A simple http client
conn=net.createConnection(net.TCP, false) 
conn:on("receive", function(conn, pl) print(pl) end)
conn:connect(80,"121.41.33.127")
conn:send("GET / HTTP/1.1\r\nHost: www.nodemcu.com\r\n"
    .."Connection: keep-alive\r\nAccept: */*\r\n\r\n")

3. Unter Thingspeak.com gibt es die Möglichkeit eine „React“ App einzurichten, die dann im Falle einer Unterschreitung des Schwellwertes (z.B. 3 Volt) einen HTTP Request sendet. Z.B. http://www.pushbullet.com/…

4. Pushbullet kann dann auf diesen Request reagieren und eine Nachricht an alle verbundenen Geräte senden. Das können z.B. Handys, Tablett-PCs, Smartwatches oder auch der Browser sein. In meinem konkreten Anwendungsfall sieht das dann wie folgt aus …

Dafür hat Pushbullet eine simples API mit dem man Nachrichten an die verbundenen Geräte senden kann. Dafür muss nur die Browser-Extension bzw. die Android/iOS/… App auf dem Gerät installiert sein.

image

Nun kann nichts mehr passieren. Sollte dem ESP8266 an meinem Sensor mal der Saft ausgehen, kann er sich jederzeit bei mir melden.

Später werde ich noch eine weitere Funktion ergänzen, die den esp8266 in den deep-sleep versetzt, sobald die Mindestspannung unterschritten ist. Das ist sinnvoll, da ich meinen esp8266 mit einem LiPo Akku betreibe, der auf keinen Fall tief-entladen werden darf.

Sobald der Schwellwert für die Batteriespannung unterschritten ist, wird über thingspeak und pushbullet eine Notification gesendet, der esp8266 geht in den deep-sleep mode und bleibt auch in diesem Zustand, bis der Akku wieder geladen wurde. Im Deep-Sleep mode ist der Stromverbrauch nur noch wenige Mikroampere groß und ich kann mir Zeit lassen, den Akku aufzuladen, ohne Angst haben zu müssen, dass der Akku in wenigen Stunden kaputt ist.

Veröffentlicht in Allgemein IoT iPhone Programmierung