BatterySaver v1.0, le secret de jouvance de vos batteries

Rédigé par Joseph MICACCIA Aucun commentaire
Classé dans : Bon à savoir Mots clés : bonnes pratiques
BatterySaver by Joseph MICACCIA
Il existe d'innombrables d'applications ANDROID pour préserver la durée de vie des batteries, mais quasiment rien pour nos PC portables. Or, il est néfaste, pour la batterie, de laisser le chargeur branché tout le temps.

Pourtant, c'est très facile de remédier au problème, simplement... et avec des composants qu'on trouve quasiment partout. A l'instar de MacGyver, les informaticiens utilisent souvent un trombone (pour faire "reset"). Ici, j'utilise un tube d'aspirine en guise de boitier. C'est le meilleur truc que j'avais sous la main pour protéger le module électronique... quand j'avais fait la manip, un dimanche pluvieux. Ca reste simple et efficace, comme j'aime ;-)



Et pas d'inquiétude pour l'électronique ! Car on trouve facilement le module déjà tout fait, sur AMAZON par exemple : commande du relais via un port COM (USB)




Pour les non-bricoleurs, on y trouve aussi des interrupteurs programmables, de type TASMOTA , pour la commande du relais via une adresse IP. Attention, les boitiers se ressemblent beaucoup. Ici, j'ai sélectionné un de ceux qui sont compatibles "TASMOTA " (Open source firmware for ESP devices).




Commençons par le début, c'est-à-dire la description du besoin : Pour préserver la durée de vie de la batterie de l'ordinateur portable, il faudrait que ledit ordinateur ne reste pas branché en permanence à son bloc d'alimentation électrique, soit en isolant l'entrée (courant alternatif), soit en isolant la sortie (courant continu).

C'est facile à dire... mais, moi-même, je ne le fais pas. Car l'un de mes ordinateurs portables est branché 24/7/365 pour mes besoins professionnels. Et, pour alerter quant au niveau de charge de la batterie, il suffirait d'un petit programme qui enverrait un SMS automatique au niveau bas (20% : brancher le chargeur) et un autre SMS au niveau haut (80% : débrancher le chargeur). C'est très facile à faire, en quelques minutes, et ça ne coûte strictement rien du tout. C'est déjà efficace, mais pas très pratique, car il faut brancher/débrancher manuellement. Alors, pour une petite poignée d'euros, on peut facilement automatiser tout cela, afin de déclencher l'action à l'instant exact. 


Précision juridique : 

Cet article est rédigé à titre informatif. Je décline toute responsabilité quant à sa mise en oeuvre. Car la réalisation de ce qui est décrit ici peut avoir des conséquences graves, voire mortelles, si ce n'est pas fait dans les règles de l'art. Les enfants doivent demander l'assistance d'un adulte... "capable"... à défaut d'être électronicien, informaticien, automaticien (comme moi).


Version Relais TASMOTA

La méthode la plus simple, c'est d'utiliser un interrupteur programmable de type TASMOTA, associé à un petit logiciel qui lui envoie une impulsion d'activation ou de désactivation, en fonction du niveau de la batterie. Cela coupe l'alimentation électrique directement au niveau de la prise électrique, à l'entrée du bloc d'alimentation (courant alternatif) :
  • Principal avantage : Ca marche bien. Il n'y a rien à bricoler. Il suffit de brancher le bloc d'alimentation de l'ordinateur directement au TASMOTA, lui-même branché à une prise électrique.
  • Principal inconvénient : Le bloc d'alimentation reste branché au PC et, en cas de coupure électrique (action OFF du TASMOTA par exemple), cela peut favoriser une décharge rapide de la batterie, via le chargeur lui-même. Toutefois, les PC modernes sont protégés contre cela, normalement ;-)
Dans le même style, il y a une autre méthode : couper l'alimentation électrique... à la sortie du bloc d'alimentation (courant continu). Pour ce faire, il suffit de commander (automatiquement) un relais USB qui s'active en fonction du niveau de la batterie :
  • Principal avantage : Ca marche bien. Il suffit de brancher l'organe de commande à un port USB de l'ordinateur. Il n'y a pas besoin de réseau informatique, car cela fonctionne localement (port COM), pas avec une adresse IP via le réseau informatique. 
  • Principal inconvénient : Il y a un peu de bricolage à faire, que je vais décrire dans les lignes suivantes
On trouve toutes les infos utiles dans la doc qui est livrée avec l'appareil. Cependant, à toutes fins utiles, voici les instructions de commande pour TASMOTA :
  • Obtenir l'état actuel : http://IP_DE_VOTRE_TASMOTA/cm?cmnd=POWER
  • Activation : http://IP_DE_VOTRE_TASMOTA/cm?cmnd=Power%20On
  • Désactivation : http://IP_DE_VOTRE_TASMOTA/cm?cmnd=Power%20Off
C'est la version la plus facile, au vu de la taille de ce paragraphe ;-)

Mais jetez quand même un coup d’œil au paragraphe suivant concernant la version "Relais USB", car fort intéressante sur le plan didactique.


Version Relais USB

C'est la version "avec" bricolage : à faire avec l'assistance d'une personne qui maitrise les risques électriques 

Pour faire ce travail avec succès du premier coup, il faut connaître l'utilisation d'un multimètre et savoir deux ou trois trucs utiles. D'abord, voici ce qu'est un relais électronique :


Nous, on choisira de brancher le contact "Normalement fermé" ("NF"), sinon jamais on ne rechargera une machine qui est complètement déchargée ;-)

Et on activera donc le relais (ouverture du contact "NF") quand la batterie aura atteint le seuil haut ("stop !... plus faim ; la batterie en a assez.")

A toutes fins utiles, je précise que la notion "Normalement fermé" veut dire "fermé au repos", c'est-à-dire quand le relais n'est pas activé.

Les seuils de déclenchement, sur base des données actuelles fournies par les constructeurs de batteries sont :
  • Seuil bas : 20% de charge
  • Seuil haut : 80% de charge
Il faut noter, ici, qu'il faut charger la batterie à 100% de temps en temps, comme cela est recommandé aussi pour les smartphones. Cette fonction automatique est facile à intégrer dans le logiciel : par exemple, tous les 10 cycles, monter à 100% au lieu de 80%.

Voici les photos du tube "recyclé" (légèrement raccourcis), qui reçoit le module USB : impeccable ! On dirait que le tube a été fait pour ça, avec le support pour maintenir le bloc dans le bouchon ;-)


La LED rouge du module électronique transparait au travers du boitier : parfaitement parfait ;-)

Bricolage du dimanche... mais très propre... et fonctionnel, en toute sécurité

Le module électronique tient tout seul, dans le capuchon : pas besoin de vis pour le fixer... impec !

Zoom sur le connecteur du relais




Petite précision : il faut faire quelques minuscules trous d'aération dans le tube, pour l'évacuation thermique, car l'électronique chauffe toujours un peu, ici aussi.

Je rappelle : ATTENTION DANGER ! Ne faites pas n'importe quoi et surtout pas quand c'est sous tension : NE RIEN FAIRE QUAND C'EST SOUS TENSION !

On remarque qu'il a fallu faire une épissure dans le câble d'origine, proprement, et protégée par une gaine thermorétractable. Il y a aussi la possibilité de ne pas modifier le câble d'origine. 

Dans ce cas, il faut faire un petit câble d'adaptation :
  • D'une part, une prise femelle qui reçoit la prise mâle du bloc d'alimentation
  • D'autre part, la prise mâle qui va vers la prise femelle du PC
  • Avec les contacts du relais, en intermédiaire
Ainsi, ce sera encore plus propre ! Je suis convaincu que tout le monde a compris, mais j'ajouterai quand même une photo du petit câble quand je le ferai.

Pour commander le relais du module USB, il faut lui envoyer les instructions suivantes :
  • Activation :        0xA0 0x01 0x01 0xA2
  • Désactivation : 0xA0 0x01 0x00 0xA1

Sur le Net, on trouve de très nombreux exemples de mise en oeuvre. En voici un qui est particulièrement clair (tout le mérite revient à son auteur) : https://github.com/tonikelope/usb_relay

Pour faire fonctionner le relais USB sous Windows, il faut le driver adéquat... qu'on peut trouver ici, notamment (et à plein d'autres endroits aussi) : https://sparks.gogo.co.nz/ch340.html

Puis, quand le driver est installé, il faut vérifier que c'est OK dans le gestionnaire de périphériques :


Ca y est : on a toutes les briques. On peut monter les murs ;-)

Maintenant, il ne reste plus qu'à construire le logiciel, dans le langage qu'il vous plaira. Accessoirement, voici un script très court (j'ai fait copier/coller sans le tester, mais ça doit fonctionner), fait en VB par un client d'AMAZON (Philippe75), grand merci à lui : 




Moi, je l'ai fait en Delphi (que je traduirai probablement en langage C ultérieurement)... un logiciel quasiment finalisé (BatterySaver V1.0) et capable de commander les deux types de relais :
  • TASMOTA : via des commandes WEB
  • USB : via des commandes "ports séries"
Pour l'instant, il fonctionne sous Windows. A terme, il fonctionnera aussi sous Linux.

A titre didactique, je pourrai publier le code source final, car il ne contient rien d'exploitable par des pirates, à priori. Dans l'immédiat, voici une représentation graphique des résultats obtenus en utilisant le relais USB (relais Tasmota désactivé dans cette démonstration) :

OFF line : le PC fonctionne grâce à la batterie... qui se décharge doucement jusqu'à 20%... puis le relais est activé...


ON line : en dessous de 20% de charge, le relais s'active et la batterie se recharge... jusqu'à atteindre 80% de charge... Puis le relais est désactivé... et ainsi de suite... automatiquement ! Maintenant, on peut laisser le chargeur branché, en permanence : il n'y a plus de risque d'usure prématurée pour la batterie.


Petite cerise sur le gâteau : icône dans la barre des tâches, qui indique l'état en temps réel (LED verte = charge)


Chacun pourra faire le programme à sa façon. Ici, on a aperçu d'une des nombreuses possibilités... un aperçu, aussi, de ce qu'on peut faire avec seulement deux chiffres, le zéro et le un (binaire = base 2). Qu'est que ce serait !... si on utilisait aussi les autres chiffres ;-)

En fait, l'informatique, ce n'est pas compliqué : il suffit d'avoir de bonnes bases et connaitre quelques trucs utiles, dont certains sont sur cette page. Enjoy!


Observations : 

1. On peut voir aisément la vitalité de la batterie : 
  • 51 minutes et 47 secondes pour le temps de charge de 20% à 80%
  • 2 heures, 45 minutes et 16 secondes pour le temps de décharge de 80% à 20%
  • Donc, en cas de panne EDF, l'ordinateur pourra tenir plusieurs heures (en fonction des tâches en cours, plus ou moins énergivores), comme démontré ici : c'est bien... pour une vieille batterie... qui ne fait pas son âge ;-)
2. Après plusieurs cycles de charge/décharge, force est de constater que la batterie se porte de mieux en mieux, car le temps de décharge est de plus en plus long... mais aura une limite quand même :-) 

Ainsi est démontrée l'utilité d'un tel système pour préserver la durée de vie de la batterie... et, même, on dépasse l'objectif initial car, au vu des différentes mesures, la batterie rajeunit... un peu ;-)

Dans votre entreprise, il y a probablement de nombreux stagiaires qui pourraient faire des manips de ce genre. Et c'est grand bénéfice pour tout le monde :
  • Pour les stagiaires : Ils auront un bon sujet de stage et, au surplus, ils apprendront (eux-mêmes) des tas de trucs pour compléter leurs connaissances techniques, en informatique et en électronique.
  • Pour l'entreprise : D'une part, elle pourra bénéficier d'outils faits "maison", efficaces et peu onéreux, pour préserver ses matériels. D'autre part, elle pourra identifier les stagiaires les plus doués, et les recruter, éventuellement... avant que d'autres le fassent. Car notre monde d'aujourd'hui, complexe, appartient probablement aux personnes ingénieuses qui savent faire, simplement, des choses qui fonctionnent parfaitement. Même si les stagiaires sont à l'aube de leur carrière, bon nombre d'entre eux sont déjà très performants. Y compris au sein d'une équipe d'ingénieurs très expérimentés, on a parfois besoin d'un plus petit que soi ;-)

Nota Bene : 
  • J'avais fait cela à l'arrache, un dimanche pluvieux, avec un boitier de récup, qui trainait dans un tiroir. Mais ça reste propre et fonctionnel, fait dans les règles de l'art, notamment pour la partie électronique.
  • Les stagiaires qui seraient bloqués pendant la réalisation du logiciel peuvent "appeler un ami" : je reste à l'écoute en cas de besoin.
  • Toutefois, généralement, je donne une canne à pêche, avec plaisir... rarement le poisson cuit ;-)
  • Car, quand j'étais moi-même étudiant, j'ai eu la chance de connaître quelques rares enseignants qui appliquaient ce principe, très formateur : guider/accompagner/encourager l'étudiant avec bienveillance. Et, j'ai grand plaisir à transmettre mes modestes connaissances avec le même principe.

Bonne vacances, à bientôt,



*******************************************************************************

2026.07.20 Breaking news : serais-je un influenceur... malgré moi ?

Je suis le premier étonné de l'immense succès de cet article, et ça me touche : merci

Toutefois, cela a un impact sur le matériel car, depuis la parution dudit article (14 juillet)... les prix ont explosé ! 

C'est peut-être dû à la loi de l'offre et de la demande ou, plus probablement, juste une coïncidence. De toute façon, comme le prix du pétrole... ça redescendra certainement ;-)

Je me dois de préciser que je ne suis pas actionnaire chez ce constructeur. Par ailleurs, il n'y a même pas de pub sur ce site, et les liens vers AMAZON ne sont pas sponsorisés... pour l'instant ;-)




Joseph MICACCIA, RSSI & concepteur de SENTINELLA CyberProtection
Expert réseaux certifié & hacker éthique 
Initialement conçu pour détecter le trafic informatique suspect, SENTINELLA est un outil de 
sécurité informatique permettant aussi l’identification des preuves lors d'analyses forensiques.

Les commentaires sont fermés.

Cyber Protection