Wemos D1 mini Battery Shield

Den WeMos D1 mini mit ESP8266 Mikrocontroller hatte ich ja bereits vorgestellt. Damit der geplante Wireless Sensor später auch autark lauffähig ist, geht es in diesem Beitrag um das WeMos D1 mini Battery Shield (Affiliate-Link) und was man damit noch machen kann.

Wemos D1 mini Battery Shield

Wird das WeMos D1 mini Battery Shield (Affiliate-Link) über USB mit Strom versorgt, wird der angeschlossene 3,7V (LiPo / Li-Ionen) Akku wahlweise mit 500mA oder 1000mA geladen. Wenn keine externe Stromversorgung vorhanden ist, wird auf dem Akku zurückgegriffen und daraus eine 5 Volt Spannung mit max. 1 Ampere erzeugt. Auf dem Wemos D1 mini wird diese für den ESP8266 Chip wieder zurück auf 3,3 Volt gewandelt, etwas ineffizient, dafür steht aber auch eine 5 Volt Spannung zur Verfügung. Der Zustand vom Battery Shield wird per LED Anzeige visualisiert. Die rote LED signalisiert den Ladeprozess und die grüne LED einen voll geladenen Akku.

Akku

Als Energiequelle habe ich diesmal einen Panasonic 18650 Lithium Ionen Akku (Affiliate-Link) mit 3400 mAh ausprobiert. Er ist auch unter der Bezeichnung NCR18650B zu finden. Andere Akkus wie ich sie z. B. bei der Raspberry Pi USV eingesetzt habe, sollten auch gut funktionieren. Der Akku muss eine Ladespannung von mindestens 500mA erlauben. Der TP5410 Chip besitzt laut Datenblatt eine Schutzschaltung, daher müssen die Akkus keine eigene eingebaut haben.

Wemos D1 mini Battery Shield - 18650 LiPo Akku

Um den (LiPo / Li-Ionen) Akku an das WeMos D1 mini Battery Shield anzuschließen, wird ein JST XH2.54 Stecker mit Kabel (Affiliate-Link) benötigt. Achtet darauf das viele Akkus einen anderen JST Stecker haben. Achtung! Auf der Platine sind plus und minus zwar richtig aufgedruckt, aber die Stecker sind normalerweise anders gepolt. Zitat aus einem Forum: Die Platine hat einen Verpolungsschutz, der Entwickler scheinbar nicht. 😉 Die Kabel am JST XH2.54 Stecker lassen sich aber mit einem Schraubenzieher tauschen.

Akku überwachen

Wenn der analoge Eingang nicht für das eigentliche Projekt benötigt wird, kann mit einer kleinen Modifikation die Spannung vom Akku über den analogen Eingang gemessen werden. Dazu wird ein 180k Ohm Widerstand zwischen +Vbat und A0 gelötet. Um den Teiler auszurechnen, wird der Sensorwert durch die mit einem Multimeter gemessene Spannung geteilt. Zum Beispiel: 700 (sensorValue) / 3,562 (Volt) = 196,5 (grob gerundet)

void setup()
{
Serial.begin(115200);
}
void loop()
{ int sensorValue = analogRead(A0);
float voltage = sensorValue / 196.5;
Serial.print("Voltage: ");
Serial.print(voltage);
Serial.print(" | ");
Serial.print("Sensor: ");
Serial.println(sensorValue);
delay(1000);
}

Laufzeit bei Akkubetrieb

Ich habe den Akku über das Battery Shield voll geladen (~4.15 Volt) und dann mit aktivem OLED Display Shield über den 18650 Akku laufen lassen. Das OLED Display wurde während des Tests alle 30 Sekunden aktualisiert und war dabei dauerhaft aktiv. Es wurde während der Laufzueit keine WLAN Verbindung aufgebaut, keine externe Spannungsquelle (USB / Solar Panel) angeschlossen und kein Deep Sleep verwendet. Nach 24 Stunden lag die Akku Spannung bei ~3.8 Volt. Weitere Tests der Laufzeit mit anderen Komponenten, WLAN, Solar Panel und Deep Sleep folgen später.

Wemos D1 mini Battery Shield - OLED LiPo Voltage

Versogung über Solar Panel

Da der verbaute TP5410 Chip mit einer maximalen Eingangsspannung von 10V umgehen kann, habe ich zum Test ein 6V Mini Solar Panel (Affiliate-Link) mit bis zu 3,5 Watt Leistung am USB-Port des Battery Shields angeschlossen. Wenn ich den Schaltplan richtig gelesen habe, ist der USB-Port leider die einzige Möglichkeit um das Battery Shield mit Strom zu versorgen. Daher benötigt ihr ein USB Kabel mit offenen Enden oder ihr schneidet eins durch.

ACHTUNG! Wie in den Kommentaren zu lesen ist, können 6 Volt den Wemos D1 zerstören! Dies bezieht sich mindestens auf die Version 1.0 vom Battery Shield, spätere Versionen haben eine andere Schaltung, bei der laut Wemos auch maximal 10 Volt möglich sein sollen. Die empfohlene Spannung beträgt aber weiterhin 5 Volt!

wemos-d1-mini-battery-shield-solar-panel-6v

Erste Tests waren soweit erfolgreich, daher geht es jetzt in die nächste Runde. Nächstes Jahr soll schließlich der Wireless Sensor im Garten installiert werden! Neben Wemos D1 mini, Battery Shield und Solar Panel kommt noch ein DHT22 Shield dazu. Zur Datenerfassung wird dann auch eine WLAN Verbindung aufgebaut. Um eine möglichst lange Akkulaufzeit zu bekommen, soll auch noch ein Deep Sleep integriert werden.

33 Gedanken zu „Wemos D1 mini Battery Shield“

  1. Hallo Stefan, ich probiere auch gerade ein bisschen mit dem D1 mini herum und da ist das Battery Shield eine schöne Ergänzung. Ich bin noch auf der Suche nach einem passenden Batteriehalter für den von dir vorgeschlagenen Akku. Welchen benutzt du?

    1. Hallo Michael,

      wenn du nicht so lange warten möchtest, würde ich dir bei eBay z. B. diesen 18650 Halter (Affiliate-Link) empfehlen. Der kommt zwar aus Holland, ist aber schnell da. Bei Aliexpress (wo ich ihn her habe) würdest du gleich 5 Stück für den gleichen Preis bekommen, musst aber auch mindestens bis zum nächsten Jahr auf die Lieferung warten?! Da es gefühlt nur eine Fabrik gibt, die diese Teile herstellt, kannst du eigentlich bei jedem Angebot zugreifen das so aussieht 🙂 .

      Wohnst du in der Nähe? Dann könntest du dir einen abholen … 😉

      Viele Grüße
      Stefan

      1. Hallo Stefan,

        vielen Dank für deine Antwort und dein Angebot. Ich wohne zwar auch in Norddeutschland, aber in der Kieler gegen, dass ist für so ein Stück Plastik doch ein wenig weit 🙂 Ich habe mir jetzt welche bei Amazon bestellt…

        Vlt. kannst du mir noch bei einer anderen Sache helfen: Warum benötige ich einen 180k Widerstand zwischen +Vbat und A0?

        Grüße,
        Michael

          1. Hallo Stefan,

            super Erklärung, vielen Dank. Ich hätte gedacht das 180 kOhm nicht reichen, da ich hinter dem Widerstand noch 3,5V gemessen habe.

            Ich habe auf einer Steckplatine das ganze nun mal zu einem Sensor bestehend aus Battery Shield, Wemos D1 Mini und DHT22 zusammengefügt. Dieser überwacht nun Luftfeuchte, Temperatur und Batteriespannung und schickt die Werte an eine DB. Deep Sleep habe ich auch integriert. Ich bin gespannt, wie lange die Batterie im Praxisbetrieb durchhält.

            Grüße,
            Michael

          2. Hallo Michael,

            das habe ich für nächstes Jahr auch auf dem Plan. Zusätzlich noch ein SHT10 Sensor für die Bodenfeuchtigkeit der hier auch noch rumliegt und dann soll alles in das Gewächshaus. Würde mich freuen wenn du deine Erfahrungen hier kurz teilst!

            Viele Grüße
            Stefan

  2. Hi,

    gerade auf Deinen Artikel gestoßen, weil die nächste HW Revision meiner Bienenstockwaage auch auf dem Wemos laufen soll.
    Die Software dieser Waage kannst Du fast 1:1 auf den Wemos bringen und nur leicht für Deine Sensoren anpassen.

    Features:
    – DeepSleep mit ~ 30 uA
    – Solarbetrieb
    – Telemetrie via MQTT
    – Over the Air Updates der Firmware via MQTT
    – Over the Air Updates der Konfiguration via MQTT
    – HandyApp/WebApp und config-File als Konfigurationsmöglichkeit
    – Existierende Management Anwendungen Homie-OTA, openHAB1 und check_mk

    Einführungsartikel (allerdings die strombetriebene Variante)
    https://community.hiveeyes.org/t/inbetriebnahme-von-node-wifi-mqtt-homie-mit-hiveeyes-anbindung/185
    https://imker-nettetal.de

    Code der Batterie-Variante mit dem Deep Sleep:
    https://github.com/hiveeyes/arduino/tree/master/node-wifi-mqtt-homie-battery (Changes.rst ist nicht aktuell, der Battery Alarm / Deep Sleep ist bereits implemntiert)

    Grüße
    Alex

    1. Hallo Alex,

      sehr interessantes Projekt und vielen Dank für die Infos! Ich bin leider noch nicht weiter … 🙁

      Viele Grüße
      Stefan

  3. Hallo,

    zwischen Solar-Panel und Battery shield solltest du noch eine Diode schalten. Der TP5410 verträgt zwar 10V, der Spannungswandler auf dem Wemos-Board aber nicht. Der kann max. 5.5V ab.
    Die Ladespannung wird nur über eine Shottky-Diode auf das Wemos-Board weiter gegeben. Das kann evtl. zu vile werden. Der Spannungsabfall an der Diode verschiebt die Ladespannung in einen sicheren Bereich

    Viele Grüße
    Ulli
    http://ullisroboterseite.de

    1. Hallo Ulli,

      danke für deinen Hinweis, ich beschäftige mich auch gerade wieder mit dem Thema. Im Test lieferte die Solarzelle nie so viel, daher hatte ich scheinbar Glück. Hinweis im Beitrag ist auch hinzugefügt!

      Ich habe gerade das Battery Shield in der Version 1.2 bestellt. Hier wurde die Schaltung geändert und es werden andere Bauteile verbaut. Jetzt sollen maximal 10 Volt möglich sein?! Ob das wirklich so ist, kann ich nicht sagen, dafür sind meine Kenntnisse leider nicht ausreichend. Zudem kann man jetzt über eine Brücke VBAT+ und A0 über einen 130k Widerstand miteinander verbinden.

      Viele Grüße
      Stefan

      P.S. Sehr interessante Projekte auf deiner Seite!

      1. Danke für die Blumen!

        Ich befürchte, die Version 1.2 macht’s nicht besser. Dort ist zwar auf andere Weise der Rückfluss auf den USB-Port geregelt: mit einem P-Kanal-MOSFET anstatt der Schottky-Diode. Dessen Body-Diode ist allerdings in Durchlassrichtung geschaltet, wenn VUSB, also die Ladespannung, größer als 5V ist 🙁

        Nun muss ich gestehen, dass ich die MOSFET-Schaltung nicht genau durchblicke. Kann sein, dass ich unrecht habe … Ich würde aber trotzdem auf Nummer sicher gehen und bei einem 6V-Solar-Panel eine Silizium-Diode (0.7V Spannungsabfall) in Durlassrichtung zwischenschalten.

        Der Angabe “Charging Voltage: max: 10V” würde ich nicht trauen. Die gab’s auch schon bei der Version 1.1 mit der Shottky-Diode: https://wiki.wemos.cc/products:retired:battery_shield_v1.1.0

        Ich hatte übrigens unabhängig von dir die gleiche Idee. Kleine solarbetriebene Sensoren für den Garten mit WLAN-Anschluss. Wemos D1 mini (6€) + Battery Shield mit Batterie (13€) + 6V-Solarpanel (2 Stück für 13,59€) + Diode! Insgesamt etwa 25€. Aktuell läuft seit zwei Tagen ein Test. Der ESP läuft im WIFI_LIGHT_SLEEP-Modus und sendet alle 5 Sekunden eine Meldung per UDP-Multicast ins WLAN (http://bienonline.magix.net/public/esp8266-udpserial.html) + OTA. Der Stromverbrauch dürfte bei knapp 15 mA liegen (http://bienonline.magix.net/public/esp8266-faq.html?topic=strom).

        Beim Suchen bin ich dann auf deine Seite gestoßen.

        Heute war wenig Sonnenschein, läuft aber immer noch. Mal schauen, wie lange er durchhält …

    1. Hallo Uwe,

      danke für deinen Hinweis! Das kommt davon, wenn man kurz vor Beitragsende noch etwas anpasst und nicht mehr testet … ist jetzt korrigiert! 😉

      Viele Grüße
      Stefan

  4. Vielen Dank für den lesenswerten Beitrag und die ebenso guten Kommentare.
    Ich stelle mir die Frage, inwiefern es ein Sicherheitsrisiko darstellt den WEMOS D1 mit dem Battery Shield und den bspw. verlinkten Panasonic Li-Ion-Akkus im Freien zu betreiben (bspw. in einer wassergeschützten Box).
    Wie ist hier Eure Einschätzung hinsichtlich thermischer Belastung (ggf. keine direkte Sonneneinstrahlung, aber zumindest die üblichen Temperaturspektren zwischen -10°C und +40°C)?
    Sicherheit vor Tiefenentladung, Überladung und ggf. Verpolung bei Nutzung des WEMOS Battery Shields?

    Ich würde gerne den Wasserstand eines Behälters mittels eines angeschlossenen, wasserdichten Ultraschallsensors messen und per MQTT versenden wollen und habe doch etwas Respekt davor die Schaltung in der Nähe der Hauswand zu betreiben.
    Natürlich gibt es auch Respekt vor Verpolung beim Aufbau & Test der Schaltung im Hause…

    Viele Grüße,
    Stefan

    1. Hallo Berndt,

      der TP5410 Chip besitzt laut Datenblatt auch eine Ladeabschaltung. Aber Achtung mit der Solarzelle, wie bereits im Kommentar von Ulli angemerkt, kann eine Spannung größer 5,5V auf der Eingangsseite zu einem Problem werden!

      Viele Grüße
      Stefan

  5. Zitat: “Achtet darauf das viele LiPo Akkus einen anderen JST Stecker haben.”
    Gilt das für die JST Stecker bei den Batteriehaltern? Oder wie darf man das verstehen?

    1. Hallo Carl,

      das Wemos Battery Modul das ich im Artikel vorgestellt habe, hatte in der Version 1.1 noch eine JST-XH2 Buchse. Die meisten LiPo-Akkus haben aber einen JST-PH2 Stecker. In der Version 1.2 wurde jetzt eine JST-PH2 Buchse verbaut und ist somit zu vielen LiPo-Akkus kompatibel.

      Viele Grüße
      Stefan

  6. Gibt das Batteryshield eine möglichkeit auszulesen ob gerade geladen wird ? Mit der Solarzelle könnte man ggf. davon sprechen ob dann Tag (Sonne) oder Nacht ist.

    1. Hallo Berndt,

      man könnte anstelle des LiPo-Akkus auch die Solarzelle über einen Spannungsteiler am Analogeingang A0 anschließen. Es gibt bereits Projekte die in die Richtung gehen. Diese nutzen z. B. eine ganz kleine Solarzelle an einem DS2438 1-Wire Sensor zur Vergleichsmessung mit einer PV-Anlage.

      Viele Grüße
      Stefan

  7. Hallo Stefan,
    toller Artikel. Ein paar Anmerkungen habe ich. Du schreibst immer Li-Po, beim 18650 handelt es sich um einen Li-Ionen Akku, das ist ein kleiner Unterschied. Siehe: https://patona.de/blog/rating/blogArticle/60#blog–comments-start

    Mit dem Battery Shield habe ich schon schlechte Erfahrungen gemacht. Es hat mir schon ein paar 18650er Tiefentladen! Es dürfen nur protected 18650er verwendet werden. Der Grund ist im Schaltplan zu finden.

  8. Hallo, vielen Dank für diese Anleitung. Sie hat mir dabei geholfen eine akkubetriebene Füllstandsanzeige für Regentonnen zu bauen. Mit Deepsleep und einem entsprechend großen Akku kann ich den Wemos über Monate laufen lassen. Sobald ich aber die Sensoren anschließe ist der Akku nach einem Tag leer. Die Sensoren benötigen 5V und werden durch den 5V-Pin des Wemos gespeist. Leider auch während er im Deepsleep ist. Hat dafür schon jemand eine Lösung gefunden? Der 5V-Pin ist leider nicht schaltbar.

    Viele Grüße
    WaTho

    1. Hallo WaTho,

      auf die Schnelle hätte ich es mit einer einfachen Schaltung mit NPN Transistor als “Schalter” probiert. Nur wenn auf der Basis Strom fließt, schaltet er auf Ground.

      Kannst du eventuell noch ein paar Details zu deinem Sensor nennen? Was für einen Sensor verwendest du, kannst du sagen wieviel dieser ungefähr verbraucht und ggf. eine Vorlaufzeit benötigt?

      Melde dich einfach wenn du noch Fragen hast.

      Viele Grüße
      Stefan

  9. Hallo Stefan,

    der Sensor ist ein HC-SR04 bzw. als wasserdichte Variante SN-SR04T. Der Stromverbrauch liegt bei 5-10mA. Im Idealfall sollen zwei Sensoren von einem Wemos ausgelesen werden.

    Als Transistor habe ich mir jetzt den IRLZ44N besorgt, weil der bei 3,3V schon gut funktionieren soll. Ich schau mal, ob ich damit etwas aufgebaut bekomme. Transistorschaltungen sind dann doch noch einmal ein andere Hausnummer als das was ich bisher so gemacht habe.

    Viele Grüße
    Thomas

    1. Hallo Thomas,
      ich habe das gleiche Setup mit einem D1, Battery Shield und SN-SR04T. Messung alle 15 Minuten. Ich habe gemessen, mein Sensor braucht nicht mal 1mA wenn nicht gemessen wird. Die eine Li-Zelle hält mind. 2 Wochen. Die 5-10mA sollte er nur brauchen wenn gemessen wird.

      Gruss Bernd

      1. Hallo,
        vielen Dank für den Artikel. Eine Frage habe ich zum 180k Ohm Widerstand zwischen +Vbat und A0:
        Ist es auch möglich einen höherohmigen Widerstand
        bei 3,6 / 3,7 V zu verwenden?

        Viele Grüße,
        Daniel.

  10. Hello,

    I am writing this in English because my german is not that good. I am working on a project where I am required to control the battery charging via ESP8266, the idea of the project is to charge the battery with solar panel and control it via ESP8266 like at certain charging level ESP8266 should stop charging and at certain charging level, it should start charging again. I am using this battery shield (https://www.berrybase.de/raspberry-pi-co/esp8266-esp32/battery/lipo-shield-f-252-r-d1-mini ). I figured out how to check the battery level by using voltage divider from your discussions but I am still confused about how to switch the battery shield with ESP8266. Any suggestions or ideas will be highly appreciated.

    Thanks in Advance

    Regards,
    waris

  11. Hi, wollte mich jetzt auch mit dem Thema Wemos D1 mit Akku und Akku Monitoring beschäftigen. Macht es Sinn das noch mit dem Wemos D1 Batterie Shield zu machen?

  12. Ich habe das Battery Shield V1.2.0, das scheint leider mit diversen Solarzellen nicht wirklich klar zu kommen. Eine davon sieht dem Bild recht ähnlich. Es brummt und pfeift, wenn ich eine Solarzelle anstecke und scheint auch nicht zu laden.

    Stattdessen benutze ich jetzt zum Laden des Akkus ein TP4056-Modul.
    https://www.amazon.de/AZDelivery-⭐⭐⭐⭐⭐-TP4056-Laderegler-Lithium/dp/B07D2G345P
    Hat keinen 5V-Output, taugt also nur zum Laden des Akkus.
    Gibts aber auch mit 5V-Output wie beim Battery Shield, so kann man den D1 auch direkt versorgen:
    https://www.amazon.de/ZHITING-TP4056-Lademodul-Lithium-Batterieladekarte-Schutzlademodul/dp/B0859WJBPQ

    Leider ist in beiden Fällen kein Spannungsteiler eingebaut über den man die Akkuspannung mit dem D1 direkt überwachen kann.

    1. Habe mit dem Battery Shield V1.2.0. auch das Problem mit dem Brummen und Pfeifen beobachtet, vor allem wenn die Solarzelle an bedeckten Tagen wenig Strom liefert. Einige ICs auf dem Shield werden dabei übrigens schlagartig sehr heißt. Denke das Board ist nach wenigen Sekunden hinüber wenn man nicht schnell wieder den Stecker zieht.

      Interessanterweise tritt das Phänomen nicht auf wenn der Akku gut geladen ist, bei 3.9V gabs keine Probleme. Kann es evtl. sein das die CV Ladung funktioniert aber bei CC Ladung die Spannung der Solarzelle zusammenbricht oder ähnliches? Kenn mich leider wenig mit Ladeschaltungen aus. Falls jemand eine Idee hat wie man das Problem umgehen kann wär ich sehr dankbar.

    2. Ich muss korrigieren. Der TP4056 mit Output liefert dort keine 5V, sondern reicht die Akkuspannung direkt durch. Das funktioniert also lediglich als Tiefentladeschutz… theoretisch. Praktisch ist das komplett unbrauchbar, weil am Output (mit einem angeschlossenem Verbraucher) permanent 12mA fließen. Mein 1400mAh-Akku war damit nach 4 Tagen leer.

      Die 5V braucht man aber gar nicht. Der D1 hat am 5V-Anschluss einen Spannungsregler verbaut. Der ist zwar nicht gerade der effizienteste, aber man kann somit den Akku auch direkt an den 5V-Pin hängen. Das lief bei mir bis der Akku auf ca. 3V runter war. Mit dem Battery-Shield konnte ich den Akku bis auf 2,8V entladen, allerdings waren es von 3V bis 2,8V nichtmal ein Tag.
      Die Wandlerei durch das BatteryShield scheint hochgradig ineffizient. Mit Batteryshield sank die Akkuspannung bei mir um ca. 0,05V pro Tag. Entsprechend zeigte auch der Praxistest eine Laufzeit von ~18 Tagen.
      Mit Akku direkt am 5V-Pin (und selbst gebautem Spannungsteiler zum Messen) verliere ich bisher nur ca. 0,015V pro Tag, es dürfte also eine etwa 3,5-fache Laufzeit erreicht werden! Langzeittest bis der Akku wirklich leer ist, läuft aber noch.

      Also wesentlich mehr erreicht man, wenn man den Akku direkt an den 5V-Pin hängt und parallel dazu am Akku ein TP4056-Laderegler zum Laden (mit USB oder Solarpanel) verwendet und auf das BatteryShield ganz verzichtet.
      Da der D1 über meinen Spannungsteiler sowieso die Spannung des Akkus ausliest, funktioniert auch ein Tiefentladeschutz relativ einfach: Misst der D1 eine Spannung kleiner 3V (oder 3,1V), schickt er sich selbst für immer in den Deepsleep. Bis der Akku dann wirklich kritisch entladen wäre, vergeht noch fast ein halbes Jahr.
      Je nach eigentlichem Einsatzzweck schickt der D1 bei mir vorher per MQTT noch ein “Tschüss, Akku leer”.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert