20.3. Calibration des senseurs
Votre module Yocto-Meteo est équipé d'un capteur numérique calibré en usine. Les valeurs qu'il
renvoie sont censées être raisonnablement justes dans la majorité des cas. Il existe cependant des
situations où des conditions extérieures peuvent avoir une influence sur les mesures.
L'API Yoctopuce offre le moyen de re-calibrer les valeurs mesurées par votre Yocto-Meteo. Il ne
n'agit pas de modifier les réglages hardware du module, mais plutôt d'effectuer une transformation a
posteriori des mesures effectuées par le capteur. Cette transformation est pilotée par des
paramètres qui seront stockés dans la mémoire flash du module, la rendant ainsi spécifique à
chaque module. Cette re-calibration est donc entièrement software et reste parfaitement réversible.
Avant de décider de vous lancer dans la re-calibration de votre module Yocto-Meteo, assurez vous
d'avoir bien compris les phénomènes qui influent sur les mesures de votre module, et que la
différence en les valeurs vraies et les valeurs lues ne résultent pas d'une mauvaise utilisation ou d'un
positionnement inadéquat.
Les modules Yoctopuce supportent deux types de calibration. D'une part une interpolation linéaire
basée sur 1 à 5 points de référence, qui peut être effectuée directement à l'intérieur du Yocto-Meteo.
D'autre part l'API supporte une calibration arbitraire externe, implémentée à l'aide de callbacks.
Interpolation linéaire 1 à 5 points
Ces transformations sont effectuées directement dans le Yocto-Meteo ce qui signifie que vous
n'avez qu'à enregistrer les points de calibration dans la mémoire flash du module, et tous les calculs
de
correction
seront
get_currentValue()
get_currentRawValue()
Les points de calibration sont simplement des couples (Valeur_lue, Valeur_corrigée). Voyons
l'influence du nombre de points de corrections sur les corrections.
Correction 1 point
La correction par 1 point ne fait qu'ajouter un décalage aux mesures. Par exemple, si vous
fournissez le point de calibration (a,b), toutes les valeurs mesurées seront corrigées en leur ajoutant
b-a, de sorte à ce que quand la valeur lue sur le capteur est a, la fonction temperature retournera b.
La mise en pratique est des plus simples: il suffit d'appeler la méthode calibrateFromPoints() de la
fonction que l'on désire corriger. Le code suivant applique la correction illustrée sur le graphique ci-
dessus à la première fonction temperature trouvée. Notez l'appel à la méthode saveToFlash du
module hébergeant la fonction, de manière à ce que le module n'oublie pas la calibration dès qu'il
sera débranché.
www.yoctopuce.com
effectués
de
manière
renverra
la
continuera de renvoyer la valeur avant correction.
Correction de mesures avec 1 point de calibration, ici (5,10)
totalement
valeur
corrigée,
20. Programmation avancée
transparente:
La
fonction
alors
que
la
fonction
145