====== 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~~