surveillance pile sur noeud mySensor

Bonjour,

je vous propose un petit retour sur mes expérimentations faites sur la façon de remonter la tension d’une pile (ou batterie) d’un noeud mySensor alimenté (bien évidemment) par pile.


Mon matériel :
– une jeedom mini (DIY Raspberry pi B+ avec Jeedom dernière version installée en stable, et le plugin mySensors dernière version du Market
– le Gateway : Arduino nano + un module radio NRF24L01+, branché sur le PI
– un node : Arduino Pro Mini 3,3V + un module radio NRF24L01+ avec un capteur quelconque, le tout alimenté par deux piles alcalines AA (aerocell pour ne pas les citer)

Je voulais absolument surveiller la tension de mes piles et les remonter dans le dashboard de Jeedom.

Premiers essais

avec deux resistances montées en pont diviseur, entre le +VCC de mes piles et la masse, le point commun étant relié à une entrée analogique du Pro mini pour faire une conversion A/N. (branchements expliqués sur le site mySensors.org) : http://mysensors.org/build/battery

Capture d’écran 2014-10-20 à 20.23.03.png

Adaptation du sketch pour pouvoir exploiter l’information et la remonter vers le Gateway. Ca marche plutôt bien.
L’inconvénient de cette solution est que les résistances connectées en permanence vont drainer continuellement les piles et donc l’autonomie va s’en ressentir, même si la consommation est très faible avec les résistances choisies (quelques micro-ampères).

Finalement

J’ai donc cherché une autre solution, et après être tombé sur un post fort intéressant : http://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/, on peut se passer des résistances et avec une astuce bien pratique, uniquement logiciellement, en manipulant les registres du ATMega328, faire la mesure sans autre composant externe. De plus une bibliothèque a été développée sur ce principe, lien : https://github.com/Yveaux/Arduino_Vcc.

J’ai intégré ce principe dans mon sketch, et comparé à la première méthode, celle-ci est vraiment beaucoup plus facile à mettre en oeuvre. On choisit la tension mini et maxi attendues, c’est-à-dire la tension des piles neuves et la tension que l’on considère minimale, ça peut être la tension mini de fonctionnement du capteur qu’on utilise, ou de l’ATMega (en fonction de sa fréquence d’hotloge), etc. Pour ma part j’ai pris 3,25 v maxi et 1,8 v mini (je fais tourner mon PRO Mini à 1Mhz pour consommer moins). Ensuite mesurer la tension réelle des piles, système en marche, et l’introduire comme paramètre dans le sketch. Le sketch va s’auto-calibrer lui-même en calculant un facteur de correction entre la vraie tension relevée à l’instant et la valeur calculée par le CAN. La précision finale devient donc très bonne. Il n’y a plus qu’à déclarer cette variable ‘tension pile’ et éventuellement aussi une variable ‘% de charge’ dans mySensors, et les infos remontent vers le Gateway :

Capture d’écran 2014-10-20 à 20.16.59.png

Voici les sketches permettant la surveillance des piles et la remontée dans mySensors.
Le sketch 1/2 est à lancer en premier, il permet de calibrer la conversion :

Le deuxième sketch est le modèle utilisable ensuite pour intégrer vos capteurs (T°, pression, …etc) :

Nota : vous remarquerez, à la fin de ce sketch, les quelques lignes permettant de basculer l’horloge en 1MHz avant de basculer en mode sommeil, pour économiser encore un peu plus ces chères piles.
la bibliothèque Vcc.h se trouve à : https://github.com/Yveaux/Arduino_Vcc

Laisser un commentaire