Nous continuons notre série d’article de présentation des Shields (cartes d’extension) pour l’ESP8266 Wemos D1 Mini. Un Shield essentiel à la réalisation d’objets connectés, de modèles réduits ou de micro-robotique, c’est le Shield Battery.
Vendu moins de 3€ en direct de chine, il permet d’alimenter la Wemos D1 Mini à l’aide d’une batterie LiPo rechargeable et de gérer le rechargement de celle-ci.
Déballage du Shield Battery pour Wemos D1 Mini
Le Shield Battery LiPo est livré dans une pochette anti-statique avec un jeu de connecteurs (3 types différents). Le circuit de charge est construit autour du chargeur TP5410 adapté à la recharge des batteries LiPo. La carte est équipée de deux connecteurs. Le premier connecteur est de type micro-USB (OTG). Il permet de recharger la batterie à partir d’une alimentation 5 Volts. On pourra utiliser un chargeur ou la prise USB d’un ordinateur. L’autre connecteur est de type JST XH2-2.54mm. Il permet de brancher une batterie LiPo (de 3,3V à 4,2V) La carte est également équipée d’un convertisseur permettant d’augmenter la tension de 3,7V délivrée par la batterie jusqu’à 5 Volts.
Caractéristiques techniques :
- Tension de charge : nominale 5V (max. 10V)
- Courant de charge : 0,5A par défaut. Souder le jumper J1 pour augmenter à 1A (attention, vérifier la compatibilité avec la batterie avant toute modification)
- Batterie Lithium supportées : 3,3 à 4,2V
- Convertisseur de tension jusqu’à 5V (1A max.)
- Connecteur de batterie au format JST XH2-2.54mm
- Connecteur micro-USB (OTG) pour recharge (5V, max. 10V)
- Led verte : allumée lorsque la charge est terminée
- Led rouge : allumée durant la recharge
- Jumper J1 : permet d’augmenter le courant de charge de 0.5A à 1A
Si la batterie LiPo que vous avez acheté n’est pas équipée du bon connecteur, il faudra le remplacer. On trouve assez facilement sur Aliexpress ou Amazon des lots de câbles avec le connecteur JST XH2-2.54mm.
Soudage et ajustement de la longueur des connecteurs
Libre à chacun d’optimiser l’empilage des shields sur la Wemos D1 Mini. Ici j’ai soudé un connecteur long permettant d’ajouter d’autres Shields par dessus le Shield Battery.
Pour souder correctement les connecteurs, je vous conseille de positionnement les connecteurs sur une breadboard le temps de la soudure.
En fonction du fabricant (vendeur), les connecteurs peuvent vraiment être beaucoup trop long. Pour que les shields ne soient pas trop espacés (ce qui serait dommage), le mieux est de découper les pattes des connecteurs. Pour avoir une découpe précise, vous pouvez fabriquer un petit guide avec une feuille de papier. Marquez avec un stylo ineffaçable la partie à découper avant de couper avec une pince coupante chaque broche. Ici, les broches mesurent 8mm.
On obtient ainsi un empilage propre et compact.
Mesurer la tension et le niveau de charge de la batterie LiPo
Lorsqu’on développe des objets connectés fonctionnant sur batterie, il est pratique de connaître le niveau restant afin de prévoir le rechargement (ou le remplacement) de cette dernière. La Wemos D1 Mini étant basée sur un ESP8266 (modèle ESP-12x), elle dispose donc d’une entrée analogique qui peut nous servir à suivre le niveau de charge de la batterie. Dans le tutoriel précédent, nous avons vu comment calculer théoriquement la tension de la batterie à l’aide d’un pont diviseur. Ici, nous allons utiliser une méthode plus simple.
On va juste devoir diminuer la tension délivrée par la batterie pour ne pas dépasser le 3,3V admissible par le convertisseur A/N. Pour cela vous pouvez par exemple utiliser une résistance de 1,5MΩ. Soudez la résistance entre la broche positive du connecteur de batterie et la broche A0 du Shield Battery.
Faites ensuite plusieurs relevés de tension avec un multimètre en récupérant le niveau du convertisseur A/N. Voici par exemple le relevé que j’ai fait pour une batterie LiPo 3.7V ayant une capacité de 1100 mAh.
En général, une batterie va se décharger de manière linéaire dans des conditions normales de température et d’utilisation. Le plus facile est donc d’utiliser la fonction map qui permet de relier le niveau du convertisseur A/N à la grandeur physique associée. Petit point de détail, la fonction map ne prend pas en charge les nombres décimaux. On va contourner le problème très facilement en multipliant les tensions par 100, puis en divisant par 100 la tension retournée par la fonction map.
float getVoltage(){ float raw = analogRead(A0); float volt = map(raw, 140, 227, 338, 511); // Avec une résistance 1M5 - With a 1M5 resistor volt = volt / 100; Serial.print("A0 "); Serial.println(raw); Serial.print("Voltage "); Serial.println(volt); return volt; }
Il est tout aussi simple de déterminer le niveau de charge de la batterie. Vous pouvez très facilement déterminer le seuil de batterie qui correspond à une charge de 100% en fonction de la batterie utilisée. Vous remarquerez certainement une hausse de la tension durant la recharge la recharge. Il faut donc faire un peu de nettoyage si le niveau dépasse 100%.
float getLevel(){ float raw = analogRead(A0); int level = map(raw, 140, 227, 0, 100); // Avec une résistance 1M5 - With a 1M5 resistor if ( level < 0 ) { level = 0; } if ( level > 100 ) { level = 100; } Serial.print("Level: "); Serial.println(level); return level; }
Cette méthode vous donnera une assez bonne idée du niveau de charge de la batterie. Attention, ça reste plus un indicateur qu’une mesure précise.
Deux remarques judicieuses publiées par Rob sur la version anglaise de l’article 🙂
- La tension maximale absolue d’une cellule de batterie LiPo est de 4,20 volts. N’allez pas plus haut que ça. Assurez-vous que vous pouvez mesurer avec une précision de 1%. L’espérance de vie de la batterie sera réduite si vous dépassez la limite.
- La tension de décharge d’une batterie n’est pas du tout linéaire par rapport à son état de charge. Mais si vous ne vous intéressez qu’aux états «plein» et «presque vide», l’approche suffira.
Bonjour. Savez vous si le shield battery permet de gérer la mise en parallèle de 4 batteries identique svp ? Je découvre le principe de mettre des batteries en parallèle et n’arrive pas à trouver cette information (et j’ai un peu peur de me lancer, vu qu’on parle de batteries et de charge…)
Bonjour,
Petite question : je travaille sur un projet et compte utilise ce shield avec une batterie 18650 (3.6v – 3000mah) et un D1 Mini
Est-ce qu’il supporte la charge et l’alimentation d’un D1 en simultané ?
Concernant la mesure de tension possible via A0, et les dernières version 1.2.0 et 1.3.0 est-ce que la résistance de 130K suffit ? Ou il vaut mieux en rajouter une comme sur votre guide ?
Merci d’avance
Bonjour Florent. Oui, il est possible de recharger la batterie et d’alimenter la d1 simultanément. Oui, la résistance est suffisante, le tuto avait été rédigé avant la commercialisation de la v1.2. Bonne journée
Bonjour,
une fois de plus, excellent article.
Je ne possède pas encore de Wemos D1 Mini qui pourtant m’intéresse sérieusement.
Ayant également vu que ce shield existe, je n’ai pu m’empêcher de penser à quoi bon disposer d’un shield qui nécessite de devoir recharger une batterie. Autant disposer d’une batterie qui se recharge par le soleil puisque cette mini carte consommé si peu.
https://github.com/TheAustrian/Wemos-D1-Mini-BME280-Weather-Station
https://s-media-cache-ak0.pinimg.com/736x/1f/c1/66/1fc166bf7c8c6a9e613a8ca2354c583b.jpg
D’où une demande perso, en étant bien conscient que cela va dépendre des shields connectées et de l’ensoleillement dispo dans nos contrées (Belgique centre), quelle devrait être la batterie solaire (en mAh) permettant une lecture régulière de cette Wemos D1 Mini pour un usage extérieur avec : un SHT30 (si suporté par la 4M sinon avec un DHT22), un HC-SR04 (pour detection mouvement), un (FC28 ou similaire) pour la detection d’humidité du sol (afin de déclencher l’arrosage) et un relais (activant ou non l’ouverture de l’arrosage).
Merci.
Ces données étant envoyées par WiFi (MQTT) : 3 lectures T°+H° par jour (Matin/midi/soir), 1 lecture d’humidité du sol à 0500.
Bonjour Migui. Merci beaucoup. C’est toujours une question à laquelle il est très difficile de répondre. En plus de la complexité du programme, de la fréquence des connexions WiFi (consommatrice en énergie), la température extérieure va réduire l’autonomie. Les batteries n’aiment pas le froid. Le shield battery intègre un régulateur de charge, gère la charge de la batterie et protège la Wemos. C’est un shield qui est bien adapté pour faire du modélisme par exemple (RC en WiFi). Dans ton cas, tu as parfaitement raison, un batterie solaire est un excellent choix. En gérant les interruptions (réveil sur mouvement) et en réveillant 4 fois par jour la Wemos, une batterie de 5000 ou 8000mAH devrait faire l’affaire. On en trouve à moins de 10€ http://bit.ly/2o5pCeL. En tout cas, n’hésite pas à partager ton expérience sur le sujet. A très bientôt
La possibilité de recharger la batterie par un panneau solaire m’intéresse fortement.
Mais dans ce cas, sur quelles broches doit-on fixer le panneau solaire ?
Ou faut-il bidouiller une prise micro-USB avec juste deux fils ?
Merci.
Pour l’instant, je creuse les idées et j’ai acquis une
batterie solaire de 5000 mAh me disant que j’essayerais pour voir si ça
suffirait.
Une fois que j’achèterais le Wemos D1 Mini, je pourrais alors avancer dans les idées d’exploitation domotique.
A+