====== Wemos Battery Shield + Fuel Gauge ======
===== Battery Shield =====
Afin de rendre le wemos un peu autonome j'ai commandé quelques shields sur aliexpress de ce type :
|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:wemos_battery_shield.jpg?direct&200x200 }}|{{:electronique:micro_controleurs:esp8266:wemos_battery_shield:wemos_battery_shield_schematic.jpg?direct&600x449}}|
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 :
|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:20160811_220058.jpg?direct&300x300 }}|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:20160811_220106.jpg?direct&300x300 }}|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:20160811_220130.jpg?direct&300x300 }}|
Simple et pratique !
\\
===== 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 :
|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:shield_max17043.png?nolink&200x170 }} \\ \\ \\ {{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:shield_max17043_back.png?nolink&200x165 }}|{{ :electronique:micro_controleurs:esp8266:wemos_battery_shield:simplified_circuit.png?nolink&550x364 }}|
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 [[electronique:analogique:sources_energie:li_ion_lipo|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 MAX17043^PIN Wemos|
|SDA|D1|
|SCL|D2|
Avec arduino, on peut toujours changer l'attribution de pins I2C avec ''Wire.begin([SDA], [SCL])''
Une photo pour illustrer tout ça :\\
{{http://doku.floriantales.fr//lib/plugins/ckgedit/fckeditor/userfiles/image/electronique/micro_controleurs/esp8266/wemos_battery_shield/20160829_221558.jpg?direct&250x250|20160829_221558.jpg}}
==== Code Arduino avec Blynk ====
Un bibliothèque arduino est disponible pour ce composant : [[http://www.lucadentella.it/en/max17043-libreria-per-arduino/|Lucadentella]]\\
Pour le teste j'ai utilisé le code suivant :
#include
#include
// 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:
^Charge^Décharge|
|{{:electronique:micro_controleurs:esp8266:wemos_battery_shield:img_1134.png?nolink&300x532}}|{{http://doku.floriantales.fr//lib/plugins/ckgedit/fckeditor/userfiles/image/electronique/micro_controleurs/esp8266/wemos_battery_shield/img_1135.png?nolink&300x532}}|
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 ..
\\
~~socialite~~