Une nouvelle façon de mesurer la consommation d’énergie d’un matériel à très faible consommation d’énergie (pour les logiciels)

Actualités de de l'Intelligence Artificielle - Machine Learning - Objets connectés

Une nouvelle façon de mesurer la consommation d’énergie d’un matériel à très faible consommation d’énergie (pour les logiciels)


Nous avons récemment obtenu un nouvel outil chez Thingsquare, qui nous permet de garantir une consommation électrique extrêmement faible de notre logiciel: le boîtier de mesure de courant et de tension Otii Arc, de Qoitech. Cette petite boîte nous permet rapidement – un groupe de logiciels – de mesurer et de comprendre la consommation électrique des logiciels que nous exécutons sur notre matériel basse consommation.

Aujourd’hui, nous l’utilisons pour construire un variateur sans fil et le rendre extrêmement faible consommation: nous voulons le faire fonctionner sur une seule pile bouton.

(Nous n’avons aucune affiliation avec les créateurs de l’Otii Arc, nous sommes juste tombés sur leur produit et en sommes tombés amoureux!)

Mesure de la consommation d’énergie – ancien vs nouveau

La durée de vie d’un appareil IoT est déterminée par sa consommation d’énergie, mais la mesure de la consommation d’énergie a toujours été délicate.

La manière traditionnelle de mesurer la consommation électrique d’un appareil consiste à connecter des multimètres, des oscilloscopes ou des analyseurs de puissance spécialisés au matériel à tester. Ces outils sont lents, difficiles à mettre en place et rendent difficile la mesure de la consommation électrique pendant plus de quelques secondes. En outre, ils nécessitent généralement une bonne expérience de l’électronique et de l’électrotechnique.

La nouvelle méthode, activée par des outils comme le boîtier d’alimentation Otii, consiste à brancher quelques câbles et à voir immédiatement les résultats à l’écran – simple!

Un gradateur sans fil à très faible puissance

Pour tester nos nouveaux équipements, nous construisons un variateur sans fil pour nos lampes industrielles au bureau.

Notre objectif est de faire fonctionner le variateur sans fil avec une consommation d’énergie extrêmement faible. Nous aimerions pouvoir le faire fonctionner avec une pile bouton.

Nous construisons notre variateur avec une carte Launchpad, un potentiomètre à curseur et une pile bouton. Nous chargeons la carte Launchpad avec une application personnalisée, illustrée ci-dessous, qui lit périodiquement le curseur et envoie un signal aux lumières du même réseau sans fil qui leur indique de diminuer la valeur donnée par le curseur.

Pour mesurer la consommation d’énergie de l’installation, il suffit de déconnecter la pile bouton et de connecter les broches d’alimentation au boîtier d’alimentation Otii.

Le défi matériel: le coût énergétique du curseur

Notre variateur sans fil utilise un curseur permettant à l’utilisateur de régler le niveau de luminosité des lampes. Bien que nous ayons une bonne compréhension de la puissance consommée par le System-on-a-Chip sans fil et les périphériques embarqués (en savoir plus à ce sujet dans cet article), nous ne savons pas combien d’énergie notre matériel de curseur utilise, ni combien une puissance supplémentaire est nécessaire pour échantillonner périodiquement la valeur du curseur.

Heureusement, nous pouvons mesurer cela avec notre nouvel outil.

Nous programmons l’appareil avec notre programme personnalisé et le laissons fonctionner pendant un certain temps pour lui permettre de s’installer avec le réseau sans fil et d’entrer dans son mode de consommation d’énergie le plus faible.

Nous le laissons ensuite fonctionner pendant un certain temps pour obtenir une bonne moyenne représentative de sa consommation électrique.

Mesure de la consommation électrique en régime permanent du matériel. C’est le coût d’exister simplement et sera toujours là. Cela se compose principalement de courants de veille pour le système sur puce (SoC) et les périphériques et le curseur. Nous voyons un courant moyen d’environ 7,6 uA.

Le défi logiciel: le coût énergétique du meilleur effort par rapport à des rapports fiables

Nous utilisons le boîtier d’alimentation Otii pour étudier la différence entre deux versions du code avec un très petit changement: dans une version du code, l’application envoie la valeur du curseur sans s’assurer que la valeur a été reçue. Dans l’autre version, le système s’assure que la valeur est reçue.

Au niveau du code, un petit changement. En termes de comportement, une différence fondamentale. En termes de consommation d’énergie – découvrons-le!

Il s’agit d’un très petit changement dans le code, mais le changement modifie le comportement du système car le périphérique devra faire plus de travail pour s’assurer que la nouvelle valeur a été reçue. En particulier, l’appareil devra être éveillé pour entendre que le backend a envoyé un paquet d’accusé de réception pour convaincre l’appareil que la valeur a été reçue.

Fiable

thsq_sset_printf_important("slider", "%d", value);
thsq_push();

Meilleur effort

thsq_sset_printf("slider", "%d", value);
thsq_push();

Meilleur effort

Fiable

Le boîtier au meilleur effort consomme moins d’énergie que le boîtier fiable.

Nous pouvons maintenant quantifier l’effet de notre code: nous voyons que le coût de la transmission dans le cas du meilleur effort consomme environ 0,71 uWh alors que la version fiable en consomme environ 2,74 uWh.

Nous pouvons également voir pourquoi le boîtier fiable coûte plus cher: le rapport fiable nécessite que la radio soit allumée lors de l’écoute de l’acquittement depuis le backend. De plus, si cet accusé de réception n’est pas reçu, l’appareil devra renvoyer les données, jusqu’à ce que l’accusé de réception soit reçu. Cela consommera inévitablement plus d’énergie.

Les détails: le code réel

Le système Thingsquare possède plusieurs fonctionnalités pratiques pour les applications d’éclairage. Il est très facile de créer un variateur de faible puissance qui peut contrôler les réglages d’éclairage pour un groupe de lampes. Le code de ce gradateur se trouve ci-dessous (lien direct ici). Il lit périodiquement la position d’un potentiomètre et s’il a changé, il l’envoie au réseau afin que les lampes puissent réagir en conséquence.

Le code (cliquez pour ouvrir)