MicroPython : Lecture de la température avec un capteur infrarouge sans contact

Bonjour à tous,
Ceux qui suivent nos aventures sur Facebook ( fb.mchobby.be ) savent que nous avons publié un pilote pour le capteur de température MLX90164 de Melexis.
J'ai été tellement bluffé par ses caractéristique que j'ai décidé d'écrire un petit article de fond. 
MOD-IR-TEMP d'Olimex équipé d'un MLX90164
Pour commencer, le MLX90164 existe en deux versions supportant respectivement 3V ou 5V. Olimex produisant des systèmes 3.3V, c'est tout naturellement un capteur 3.3v que nous avons, idéal pour l'exploration MicroPython.

Ce capteur à de nombreuses application
  • Mesure de température de précision (sans contact).
  • Mesure de température dans le monde médical, mesure de température corporel.
  • Capteur pour système d'air conditionné mobile.
  • Mesure de température pour installation d'air conditionné dans les surfaces commerciales, industriels, résidentielles.
  • Détection de la buée sur parebrise
  • Surveillance de denrées
  • Contrôle de température dans les imprimantes et copieurs. 
  • Alerte thermique.
Comment ça marche ?

Le MLX90164 utilise un système thermopile qui enchaîne les thermocouples (en parallèle ou série) pour la mesure de chaleur. Un thermopile produit donc une tension de sortie de quelques dizaines a quelques centaines de millivolts.

Source: FluxTeq - Own work, CC BY-SA 4.0, Link - complété par Domeu.

Le MLX90164 dispose donc d'un convertisseur ADC (Analogique/Numerique) et traitement de signal (DSP), ce qui permet au MLX90164 d'offrir une excellente précision et fiabilité.


Les mesures sont effectuées en captant le flux de chaleur émis par l'objet (émission infrarouge). Cela signifie aussi que le capteur est sensible à un paramètre qui s'appelle émissivité (abordé plus loin).

Pilotes I2C pour Arduino et MicroPython
Comme il s'agit d'un capteur I2C, celui-ci est très facile à exploiter.
Pour ceux que cela intéresse:

tester le capteur MLX90614 avec MicroPython Pyboard

Pas de contact = large gamme de température
Le MLX90164 est un capteur de température SANS CONTACT, ce qui permet de mesurer des températures très élevées (pour autant que le boîtier n'est pas exposé à une température excessive). Cela est possible à l'aide d'une mesure par Infrarouge.

Le MLX90164 est capable de mesurer des températures de -70°C à +380°C ! Rien que cela!
Bon, il y a quand même une conséquence, c'est que la précision n'est pas homogène sur tout la plage de température.
Cette résolution dépend à la fois de la température mesurée (To) sur l'objet et de la température ambiante (Ta). En effet, l'air ambiant fait chauffer le capteur qui le soumet à des contraintes de dilatation mécanique.

On notera également que le capteur doit être utilisé dans un environnement avec une gamme de gamme de température de -40°C à +125°C.
Les mesure de température "extrêmes" doivent donc se faire l'intermédiaire d'ouvertures !!! Ouvertures qui peuvent être obturer pour maintenir une température ambiante acceptable pour le capteur.

Précision de 0.5°C
Dans la gamme de température 0 à 50°C, le capteur offre une résolution de 0.5 °C ! Déjà pas si mal.

Précision de 0.1 à 0.2°C
Le capteur MLX90164 placé sur la carte MOD-IR-TEMP est un MLX90164BAA également destiné aux applications médicales. Dans ce cas, la précision est encore meilleure dans les gammes de température corporelle.
Pour rappel:
  • Ta est la température ambiante (celle à laquelle le capteur est exposé)
  • To est la température de l'objet dont on veut mesurer la température. 
Travailler avec un capteur infrarouge se fait avec circonspection

Attention au placement dans un boîtier ou sur un tableau de bord
Tout objet dans le champs de mesure est susceptible de produire des signaux infrarouges ou perturber les signaux infrarouge. Un simple fente peut être la source de perturbation dans les mesures.
Il ne faut donc pas s'étonner d'avoir une erreur significative apparaissant au montage sur un boîtier ou tableau de bord.
Attention donc à l'environnement de test et environnement final!

L'émissivité est un paramètre important
L'émissivité est le flux de radiation thermique (émission Infrarouge) par un élément de surface à une température donnée. L'émissivité est un nombre inférieure où égale à 1.

Par exemple, de l'aluminium poli à une faible émissivité (de l'ordre de 0.30) alors qu'il à une très forte réflectivité et renvoie alors des rayons infrarouge en provenance d'autres sources "parasites".

Dans le cas de l'aluminium poli Il est donc difficile pour le capteur de faire la différence entre l'infrarouge émis par l'objet et l'infrarouge réfléchi par l'environnement.
 
Comme l'aluminium poli à une faible émissivité (même grossièrement poli), ce dernier n'émet une quantité d'infrarouge en relation avec sa température. Par conséquent, il peut y avoir des "erreurs" de mesure pour certaines matières.

Le package du capteur peut devenir une source d'erreur
Il faut garder à l'esprit que le package du capteur peut aussi émettre des infrarouges vers l'élément sensible du capteur et ainsi induire une erreur de mesure.

Un flux d'air chaud en direction du capteur échauffera la structure de celui-ci. Et dans pareil cas, le capteur émettra des infrarouge vers la partie sensible à l'intérieur du capteur lui-même.

Le mesure de la température du corps ne produit pas 37°C!
La température mesurée par le capteur est celle de la "surface". Il ne faut pas oublier que les tissus ont pour but de retenir la chaleur... et d'augmenter la température à la surface de la peau. Ensuite, en hiver, il n'est pas rare d'avoir les mains plus froide que le restant du corps. Donc oui, la température pourrait être différente de 37°C.

Pour effectuer une mesure fiable sur le corps, il est préférable d'opter pour un emplacement non exposé mais pas couvert. Par exemple, le méat acoustique (le trou de l'oreille).

La lumière du soleil peut perturber le capteur
En effet, la lumière du soleil contient des infrarouges qui peuvent, selon les circonstances perturber le capteur.
Ceci étant, les vitres sont connue pour filtrer la quasi totalité du rayonnement infrarouge. Il est également possible d'utiliser un filter NIR (Near IR) pour filtrer la lumière proche de l'infrarouge de sorte que le capteur ne peut pas être influencé par une source infrarouge externe.

Capteur à distance d'autre éléments
Le capteur Infrarouge est toujours placé à distance de la carte et des autres composants. C'est justement pour éviter l'échauffement du package du capteur... qui deviendrait alors une source d'infrarouge pour l'élément sensible à l'intérieur du MLX.



Aucun commentaire