Outils pour utilisateurs

Outils du site


electronique:micro_controleurs:esp8266:wemos_battery_shield

Ceci est une ancienne révision du document !


Wemos Battery Shield & Fuel Gauge

Afin de rendre le wemos un peu autonome j'ai commandé quelques shields sur aliexpress de ce type :

wemos_battery_shield.jpgwemos_battery_shield_schematic.jpg

On plug une batterie lithium et on la charge via usb.
J'ai un peu retouché le shield en lui collant une petite batterie de C=150mAh avec un interrupteur à glissière.
La résistance R3 est ajustée en conséquence de la batterie, le jumper J1 courcircuité.
L'idée est de charger avec un courant d'environ 0,7*C soit environ 100mA. J'ai donc positionné R3 à 7,5kΩ d'après la datasheet du TP5410.

Quelques photos pour finir :

20160811_220058.jpg20160811_220106.jpg20160811_220130.jpg

Simple et pratique !

Add-On MAX17043 - LIPO Fuel Gauge

Présentation

Étant bien parti sur ma lancée et suite à la commande du MAX17043 de Maxim, je décide d'ajouter la fonction “Fuel Gauge” à ce petit shield.
En plus d'avoir une batterie, on va savoir ce qu'il reste dedans.
Le MAX17043 ressemble à cela sur son shield vendu chez nos amis de l'est :




En gros il arrive à calculer ce qu'il reste dans la batterie en fonction du temps et de la tension à ses bornes.
Maxim doit utiliser des abaques génériques bien que chaque lipo doit avoir ses propres courbes de décharge. Au besoin Maxim fait du sur-mesure, mais il faut les contacter.
En tout cas, pour une estimation, c'est déjà pas mal et rapidement exploitable avec sa connexion I2C.
Il propose même de signaler à notre uC si il est temps de passer en mode “je sauvegarde et je m'arrête” avant la panne d'électricité.

\\
==== Câblage ====

Pour utiliser ce joujou, rien de plus simple, on le colle sur le flan de notre batterie et on câble le tout tel que :

Pin I2C MAX17043PIN Wemos
SDAD1
SDLD2

Avec arduino, on peut toujours changer l'attribution de pins I2C avec Wire.begin([SDA], [SCL])

Une photo pour illustrer tout ça :
floriantales.hd.free.fr_lib_plugins_ckgedit_fckeditor_userfiles_image_electronique_micro_controleurs_esp8266_wemos_battery_shield_20160829_221558.jpg

Code Arduino avec Blynk

Un bibliothèque arduino est disponible pour ce composant : Lucadentella
Pour le teste j'ai utilisé le code suivant :

blynk_battery_monitor.ino

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>
 
// Fuel Gauge
#include "MAX17043.h"
#include "Wire.h"
 
// ####   VARIABLES   ####
// Blink
char auth[] = "*****************************************";  // Put your Auth Token here. (see Step 3 above)
// Fuel Gauge
MAX17043 batteryMonitor;
 
void setup() {
 
  // Run Blynk
  Blynk.begin(auth, "mon_ssid", "mon_mot_de_passe");
  while (Blynk.connect() == false) {
     //Wait until connected
  }
 
  Wire.begin();
  //batteryMonitor.reset();
  //batteryMonitor.quickStart();
  delay(1000);
 
}
 
void loop() {
    Blynk.run();
    Blynk.virtualWrite(0, batteryMonitor.getVCell());
    Blynk.virtualWrite(1, batteryMonitor.getSoC());
    delay(1000);
}

Attention à bien lire la datasheet sur les fonctions reset() et quickstart().

Couplé à l'excellent Blynk (pour avoir des courbes rapidement et profiter des fonctions d'export csv) le résultat est intéressant:

ChargeDécharge

Pour la décharge j'ai joué avec quelques résistances qui expliquent la variation de tension de la batterie, le SOC reste globalement linéaire.
La dernière mesure à 0% est erronée, d'où les décroché en fin de décharge, le Wemos s'est éteint avant la décharge complète de la batterie ..


electronique/micro_controleurs/esp8266/wemos_battery_shield.1533650168.txt.gz · Dernière modification : 2025/01/14 11:19 (modification externe)