Les cartes ESP32 sont des cartes très polyvalentes orientées IOT. Elles intègrent la gestion du wifi, du Bluetooth, du « touch » et une gestion des LiPo sur certaines cartes.
Pour cet article, « module » désignera le petit circuit, et « carte » le circuit imprimé sur lequel le module est fixé.
Installation #
Pour utiliser la carte avec Arduino IDE ajoutez sa librairie : « https://dl.espressif.com/dl/package_esp32_index.json » et installez « ESP32 Arduino ».
Plus d’infos sur l’installation d’une nouvelle carte ici
Pinout #
Voici les PINs du module ESP32, qui est principalement utilisé sur une carte intégrant un adaptateur USB et un régulateur de tension.
Privilégiez l’utilisation de la documentation du modèle précis de carte que vous utilisez.
Dans le cas d’une carte mal documentée, ce schéma permet de déterminer l’adresse des pins exposés sur votre carte (normalement « A0 » sera le pin 36, vous pouvez vérifier avec un multimètre en mode test de continuité).
Le module possède :
– 2 ADC : « Analog to Digital Converter ». Les pins marqués « ADC1 » ou « ADC2 » peuvent donc être utilisés pour la commande analogRead. Mais l’ADC2 est utilisé par le Wi-Fi, il est donc indisponible à partir du moment où la puce Wi-Fi est démarrée.
– Le module possède un capteur à effet hall bipolaire intégré, pour l’utiliser laissez libre les GPIO 36 et 39. La mesure effectuée est assez bruitée, corrigez cela en moyennant plusieurs acquisitions.
– 2 pins DAC : « digital to analog converter » : permet de sortie une tension entre 0 et 3.3v REF
– 2 port série en plus de celui utilisé pour l’USB REF
Choix de la carte #
Comme pour tous circuits Open Source, il existe une grande quantité de variantes, listé sur cette page wiki.
La quantité de mémoire flash varie entre 4 et 16 mo. Sur VSC PlatformIO il peut être nécessaire de définir la mémoire en ajoutant au fichier platformio.ini « board_build.partitions = default_8MB.csv ».
Lors du choix de la carte vérifiez bien qu’il existe suffisamment de documentations sur ce modèle. Une carte trop « exotique » peut être difficile à utiliser, et risque aussi de ne pas rester compatible avec les mises à jour futures.
Gestion de l’énergie #
Modes Sleep #
Le mode veille permet de réduire grandement la consommation de votre carte, ce qui est vitale sur une utilisation sur batterie.
L’efficacité de la veille dépend de votre carte : les cartes qui intègrent la gestion des batteries ont tendance à être plus économes en veille car elles n’ont notamment pas de LED allumé en permanence.
Pour donner un ordre de grande : en mode Deep Sleep (la carte est prête a démarrer à n’importe quel moment, sur pression d’un bouton) il est possible en théorie de faire tourner la carte plus de 3 mois sur une petite batterie de 250mAh. La consommation de la carte va donc venir principalement de son activité éveillée.
Choisir une batterie #
L’utilisation d’une batterie nécessite de passer par un contrôleur de charge (BMS) pour ne pas endommager la batterie. Le plus simple est de se procurer une carte intégrant déjà ce composant comme une Feather ESP32 ou une FireBeetle ESP32.
Attention évitez d’utiliser une batterie de capacité inférieure à 250 mAh. La vitesse de décharge classique des batteries est de 1 C, ce qui veut dire que le courant de décharge maximum est égal à la capacité de la batterie (il en est de même pour le courant de charge maximum). Sachant qu’une carte ESP32 consomme dans les 150 Mah en fonctionnement (Wi-Fi/bluetooth) et jusqu’à 250 Mah, une batterie de capacité inférieure à 250 mAh risquerait d’être endommagée par une décharge trop rapide.
Et une Li-Po endommagé, ca perd de la durée de vie et ça a la fâcheuse tendance à prendre feu…
Le mieux est de mesurer la consommation réel de votre carte en fonctionnement.
A défaut, prenez les valeurs suivantes de consommation (estimation haute, carte hors composants branchés dessus. Assurez vous de pouvoir piloter la mise hors tension de ces périphériques si nécessaire, et ajoutez le courant de fuite au calcul si non négligeable) :
Fonctionnement « lourd » (avec Wi-Fi et ou Bluetooth) : 200mA
Fonctionnement « léger » (sans Wi-Fi ni Bluetooth) : 100mA
Veille légère : 10mA
Veille profonde : 0.02mA
Exemple de calcul :
20mn de fonctionnement par jour (200 * 20/60 = 67mAh) puis de la veille profonde (24h * 0.02 = 0.5mAh).
Autonomie pour une 18650 (Dimensions : ⌀18mm x L 65mm) de 2500mAh : 2500/68 = 36 jours.
Format le plus classique, facile à récupérer : batterie d’ordinateurs, batterie externe…
Autonomie pour une L503040 (Dimensions: 42,5 x 31 x 5,5 mm) de 550mAh : 550/68 = 8 jours.
Batterie de format proche de la taille de la carte.
Autonomie pour une L601730 (Dimensions : 30,5 x 17,5 x 6,5 mm) de 250mAh : 250/68 = 3,6 jours.
Plus petite batterie utilisable.