dimanche 24 novembre 2019

Thermomètre InfraRouge



Thermomètre Infrarouge


Lorsque j'ai acheté mon thermomètre infrarouge il y a quelques mois j'en étais très satisfait. Pour la modique somme de 23€ je pouvais enfin mesurer la température de composants et dissipateurs :

PEAKMETER PM6530C

1. Le besoin

Peu à peu, certains inconvénients se sont fait ressentir.

La mesure d'une température de composants ne se fait pas en cinq secondes et il est souvent nécessaire de procéder à différents tests sous diverses conditions afin de pouvoir juger si la température d'un composant se trouve dans une plage acceptable. Il est également intéressant de pouvoir apprécier le temps de montée ou de descente de la température.

Avec un thermomètre infrarouge classique l'obligation d'appuyer sur la gâchette pour effectuer la mesure n'est pas très pratique pour surveiller la température d'un composant pendant de longues minutes. Une possibilité de fixation sur un support serait également appréciée. Il n'y a pas non plus de sortie USB pour relever une courbe de température.

Pour résumer mon besoin se situe plus dans un thermomètre d'établi sur pied, connecté en USB, et éventuellement détachable (donc équipé d'une batterie) pour des mesures ponctuelles.

Entre acheter un thermomètre USB à 150€ et réaliser moi-même un thermomètre strictement adapté à mon besoin, le choix fut rapide.

J'avais déjà connaissance de ce composant, le MLX90614 :

MELEXIS MLX90614ESF-BAA

MELEXIS MLX90614ESF-ACF
C'est un composant thermomètre infrarouge I2C. Il permet de mesurer des températures entre -70 et +380°C.
Il existe en plusieurs versions :
  • tension d'alimentation 5V ou 3V
  • cône de vision étroit 10° ou large 30°
  • boîtier TO39 ou autre
En fonction du boîtier choisi il coûte entre 5€ et 20€.
J'ai choisi un MLX90614ESF-ACF (5V, 10°).

Je pense que l'on peut aussi utiliser un MLX90614ESF-BAA si on l'équipe d'un petit tube noir de ⌀8mm x 15mm afin de réduire son cône de vision, et d'un régulateur 3V ou 3.3V.
Le MLX90614ESF-BAA, moins cher, n'aura pas de possibilité de réglage d'émissivité, mais pour mesurer des températures de composants, généralement noirs, cela ne devrait pas poser de problème.

J'ai testé également ce module :
Module MLX90614ESF-BAA
Il est équipé d'un régulateur de tension 3V pour pouvoir l'alimenter en 5V, ainsi que de quelques composants nécessaires : résistances pullup I2C, condensateur de découplage.

2. Alimentation

2.1. Alimentation USB

Le montage peut être alimenté par le cordon USB de l'ARDUINO. Il consomme au maximum 40mA pendant la mesure.

2.2. Alimentation par batterie

Il est tout à fait envisageable d'alimenter le thermomètre par batterie ou alimentation externe. Un connecteur est prévu à cet effet.
L'alimentation par batterie doit fournir 5V. Plusieurs solutions sont possibles :
  • 1 batterie LITHIUM-ION + convertisseur stepup
  • 3 batteries NI-MH + convertisseur stepup
  • 1 bloc secteur
Une carte d'alimentation est prévue avec un batterie 18650 ou 16340 et un convertisseur stepup.
1 batterie 18650 de 2000mAH devrait avoir une autonomie de 60 heures, une batterie 16340 de 500mAH 4 fois moins.

Le mode LOW-POWER de l'ARDUINO est utilisé entre deux mesures afin de ne pas provoquer de surconsommation.

2.3. Chargeur

Un chargeur TP4056 peut être intégré à la carte alimentation pour une utilisation intensive. Pour une utilisation occasionnelle on rechargera la batterie sur un chargeur de table classique.

3. Le matériel

J'ai utilisé le matériel suivant :
  • Un ARDUINO NANO
  • un MLX90614ESF-ACF
  • un afficheur OLED SSD1306 0.96 pouces 128x64
  • un bouton-poussoir 12mm 
  • deux boutons-poussoir 6mm verticaux
  • une ou deux diodes laser 5V 5mW
  • une résistance de 100Ω 
  • un connecteur 6 broches femelle coudé au pas de 2.54mm
  • pour un choix du mode °C ou °F par cavalier :
    • un connecteur 3 broches coudé + un cavalier au pas de 2.54mm
  • ou
    • un interrupteur à glissière à 90°
  • ou
    • aucun des deux si l'on désire un affichage en °C uniquement
Pour une version alimentée par batterie ou alimentation externe (option) :
  • un connecteur 3 broches tulipe ou DUPONT au pas de 2.54mm
  • une résistance de 1MΩ film métallique 1%
  • une résistance de 330KΩ film métallique 1%
  • une diode 1N5817
Voici le modèle de connecteur 6 points que j'ai utilisé :
pin header 6 points coudé
La carte d'alimentation par batterie est équipée comme suit :
  • un boîtier de batterie 18650 ou 16340 
  • un interrupteur à glissière
  • un convertisseur stepup
    • MT3608 + inductance 1mH + condensateur 470µF
  • ou
    • POLULU U1V11F5 + résistance 100KΩ
  • option chargeur intégré
    • un chargeur TP4056
  • ou
    • une diode 1N5817 
    • un connecteur 3 broches mâle au pas de 2.54mm
Si l'on a choisi un connecteur d'alimentation 3 broches tulipe pour la carte thermomètre, les trois broches mâles de la carte alimentation pourront être de simples broches de faible diamètre (des pattes de LEDs par exemple).
Si on a choisi un connecteur DUPONT femelle, un connecteur DUPONT mâle sera plus adapté, mais l'écartement entre les deux cartes sera supérieur de 2mm.

Qu'il s'agisse de la carte thermomètre ou de la carte alimentation, on peut facilement acheter tous les composants chez AliExpress ou ailleurs.

4. Les Schémas

Les schémas sont réalisés à l'aide de KICAD.

Pour récupérer le projet voir plus bas :  11. Téléchargements.

4.1. Carte thermomètre

La carte thermomètre
Le connecteur P1 reçoit le capteur de température et la diode laser.

Le jumper et l'inverseur MODE jouent le même rôle : permettre l'affichage de la température en °C ou °F. On peut choisir l'une ou l'autre des solutions suivant que l'on souhaite changer souvent le mode d'affichage on non. Par défaut l'affichage se fait en °C (si l'entrée D5 est en l'air).

Le bouton-poussoir SHOOT active la diode laser en direct sans passer pas le microcontrôleur.

La diode D1 protège le montage en cas d'inversion de l'alimentation.
Le pont de résistances  R1 + R2 permet de mesurer la tension de la batterie.

4.2. Carte alimentation

La carte alimentation
Deux types de batterie sont prévus, ainsi que deux modèles de convertisseurs. Il faudra faire des choix en fonction de l'autonomie désirée et du prix (un convertisseur U1V11F5 est plus cher qu'un MT3608 mais offre une meilleure qualité de régulation).

Le convertisseur MT3608 est assez bruyant et je remarque que le montage est assez sensible à ce bruit. La sortie de ce convertisseur doit être filtrée (inductance L1 + condensateur C1). Le convertisseur POLULU U1V11F5 n'aura pas besoin de ces composants.
Voir cet article :  https://riton-duino.blogspot.com/2019/11/convertisseurs-stepup-stepdown.html

Dans le cas où un chargeur TP4056 est utilisé il n'y a pas de diode de protection contre l'inversion de polarité de la batterie, car il faudrait placer cette diode entre la batterie et le chargeur TP4056, ce qui empêcherait la charge de celle-ci.
Comme la batterie est censée rester en place, il suffit de la placer dans le bon sens lors du montage.

Si par contre si le chargeur TP4056 n'est pas implanté, comme la batterie est censée être démontée pour être rechargée, il serait dommage de la réintroduire accidentellement dans le mauvais sens.
Mettre en place la diode D1 1N5817 permet d'éviter les accidents (comme précisé sur le schéma ci-dessus).

4.3. Carte capteur

On peut ajouter une petite carte optionnelle regroupant le capteur et la ou les LEDs, venant s'enficher sur le connecteur 6 points de la carte thermomètre.
En fonction du capteur choisi (module MLX90614ESF-BAA ou MLX90614ESF-ACF) elle aura besoin de composants différents :
  • MLX90614ESF-ACF ou MLX90614ESF-BAA : deux résistances pullup
  • MLX90614ESF-BAA : régulateur 3.3V
  • module MLX90614ESF-BAA : rien

Carte MLX90614ESF-BAA ou MLX90614ESF-ACF

Carte pour module MLX90614ESF-BAA
Une ou deux diodes laser peuvent être implantées.

Je n'ai pas prévu de carte pour le MLX90614ESF-BAA seul, avec régulateur 3.3V, car le module MLX90614ESF-BAA est moins cher en général, et comporte déjà les composants nécessaires.

On peut se passer de cette carte si l'on préfère fixer le capteur et les diodes sur un support et faire le raccordement pas des fils. Dans ce cas il vaudra mieux éviter le métal, car le boîtier des diodes est relié au fil bleu, ou alors il faudra prévoir un isolant.

5. La réalisation

5.1. Version USB seul

Si le thermomètre doit être utilisé exclusivement sur USB, le connecteur P2 3 broches peut être omis, ainsi que la diode D1 et la résistance R1.

5.2. Version autonome

Si le thermomètre doit être autonome, la carte alimentation par batterie est nécessaire.
En fonction de la batterie choisie, souder un support de batterie 18650 ou 16340. Attention au sens (le pôle + est en haut si la carte est vue batterie à gauche : voir photos plus bas).

En fonction du convertisseur choisi :
  • MT3608 : ajouter l'inductance L1 de 1mH et le condensateur C1 de 470µF
  • U1V11F5 : ajouter la résistance R1 de 100KΩ et remplacer l'inductance L1 par un strap
Souder le connecteur P1 3 broches (j'ai utilisé 3 pattes de LEDs) à l'arrière de la carte, ainsi que le chargeur TP4056 s'il est nécessaire.

Si le chargeur TP4056 n'est pas implanté, on peut mettre en place la diode D1 1N5617 sur les pastilles prévues (voir photos plus bas).

5.3. Attention

Si le PCB est une réalisation maison (ce qui est mon cas), il est préférable de vérifier qu'il n'y ait pas de court-circuits entre pistes sur la carte alimentation, spécialement entre 3.7V et GND.
En cas de court-circuit une batterie LITHIUM-ION est tout à fait capable de faire fondre des pistes d'un millimètre de largeur, et même beaucoup plus.
Également, ne pas poser la carte équipée de sa batterie sur un bureau encombré. Fils, pattes de composants, trombones qui traînent, etc. doivent être tenus à distance.

5.4. Les diodes laser

Ces diodes sont des modèles bas de gamme amplement suffisantes pour l'application :
Elles sont composées d'un petit circuit imprimé pincé dans le boîtier. Le boîtier comporte un réglage de l'optique (les deux pièces de laiton sont vissées l'une dans l'autre).
Il est conseillé d'essayer ces diodes avant de les mettre en place, et après avoir éventuellement paufiné le réglage, il vaut mieux bloquer le filetage avec un point de colle. On peut aussi bloquer la petite carte dans le boîtier par le même moyen.

Les trous dans la carte capteur font 6mm. Il faudra coller les diodes une fois que celles-ci sont en place et que leur faisceau a été réglé. On peut effectuer le réglage facilement à l’œil, en visant une cible à quelques dizaines de centimètres.

6. IDE ARDUINO

Il vous faudra bien entendu installer les bibliothèques ARDUINO suivantes :

Dans l'IDE, dans le menu "Outils/Type de Carte" choisir "Arduino Nano". Dans le menu "Outils/Processeur" choisir "ATmega328p" ou "ATmega328p (old bootloader)".

7. Le code

Pour récupérer le projet voir plus bas : 11. Téléchargements.

Le code permet de choisir entre la librairie SparkFun et celle d'AdaFruit. La librairie AdaFruit ne permettra pas de régler l'émissivité.
Elle conviendra donc au capteur modèle MLX90614ESF-BAA.
L'option par défaut est : SPARKFUN

#define NO_SENSOR       0           // no sensor for test purpose only
#define ADAFRUIT           1           // use ADAFRUIT only when no emissivity tuning is required
#define SPARKFUN          2           // SPARKFUN : the best
#define SENSOR_LIBRARY          SPARKFUN


Il faut donc choisir ADAFRUIT si l'on utilise le capteur MLX90614ESF-BAA.

8. Utilisation

8.1. Réglage

ATTENTION : si l'on utilise la carte alimentation avec un convertisseur stepup MT3608, il faudra avant tout régler celui-ci sur 5V avant d'assembler les deux cartes.
La chute de tension de la diode de protection D1 de la carte thermomètre est négligeable (200mV).

8.2. Bouton

Le bouton SHOOT allume la diode laser. Il est utilisé uniquement pour la visée. Lorsqu'il est relâché, la mesure continue.

8.3. Émissivité

Les boutons PLUS et MINUS permettent de régler l'émissivité du matériau dont on va mesurer la température (voir ICI). Il faut maintenir le bouton appuyé pour effectuer le réglage : la valeur est incrémentée ou décrémentée toutes les 500ms.
Si le bouton est appuyé pendant plus de 5 secondes, le réglage d'émissivité passe en mode rapide : la valeur est incrémentée ou décrémentée toutes les 100ms.

L'émissivité par défaut est de 95%, ce qui correspond à la majeure partie des objets noirs que je mesure, composants électroniques en particulier.
La valeur d'émissivité choisie est stockée dans l'EEPROM de l'ARDUINO.

8.4. Mode °C °F

Le jumper ou l'inverseur MODE permet de sélectionner le mode d'affichage °C ou °F. Le petit OLED affiche la température ambiante, l'émissivité et la température de l'objet.

8.5. Indicateur de capacité

En haut à gauche de l'écran la capacité de la batterie est affichée sous forme d'un rectangle plein, plus ou moins haut (de 1 à 10 pixels). Si aucune batterie n'est présente, rien n'est affiché.

8.6. Sortie USB

La mesure est permanente et les informations sont remontées par le cordon USB vers le PC toutes les 500ms :

27.53,21.27
27.89,21.27
27.95,21.27
28.09,21.27
28.11,21.27
25.63,21.27


La première information est la température de l'objet mesuré, la deuxième est la température ambiante. Il est facile de récupérer ensuite ces valeurs avec un terminal (y compris le moniteur série ARDUINO) et de les stocker dans un fichier pour les exploiter avec un tableur ou un autre logiciel.

9. Photos

Voici quelques images du thermomètre :

En bas de droite à gauche : les deux boutons + / -, le bouton SHOOT, le connecteur MODE.
Le capteur est enfiché directement dans le connecteur, tout du moins provisoirement, pour la photo.

Comme on peut le voir, sans cavalier sur le connecteur 3 points il affiche la température en °C. Pour afficher en °F, il faudra placer un cavalier sur les deux bornes du bas.

La température ambiante est affichée sous le titre, suivie de l'émissivité, puis de la température de l'objet visé.

Vue de côté
Sur cette vue côté boutons, on voit l'afficheur fixé par deux fils rigides soudés.
On voit également en dessous le connecteur tulipe 3 points prêt à accueillir  les broches de la carte l'alimentation par batterie.
La NANO et l'afficheur sont montés sur support (ce n'est pas une obligation).

Voici la carte alimentation par batterie :

Vue de dessus
Le chargeur TP4056 est soudé en dessous.
Si l'on choisit de se passer de chargeur, souder la diode D1 1N5817 (l'emplacement est indiqué).
J'ai choisi le convertisseur POLULU U1V11F5 (l'inductance L1 est remplacée par un fil).
Si l'on choisit le MT3608 son emplacement est indiqué, ainsi que de celui de  l'inductance L1 et du condensateur C1.
Rappel : régler le MT3608 sur 5V avant de relier les deux cartes.

vue côté chargeur
Cette photo montre le chargeur TP4056, soudé sous la carte alimentation à l'aide de 6 broches (des fils rigides).
Je conseille de souder les broches sous la carte alimentation d'abord. Ensuite vérifier visuellement (ou avec un multimètre) l'absence de court-circuit à l'emplacement des soudures (il y a un plan de masse et il est facile de déborder). Mettre en place le chargeur sur les six broches et souder le module.

Vue de côté
Cette image montre la liaison entre les deux cartes : 3 broches (des pattes de LEDs) sont soudées sous la carte alimentation et viennent s'enficher dans le connecteur 3 boches de la carte thermomètre.
Attention : si le connecteur 3 boches de la carte thermomètre est du type tulipe, ne pas utiliser de broches du type connecteur DUPONT mâle, elles n'entreraient pas dans le connecteur tulipe. Si l'on utilise un connecteur femelle DUPONT ce sera plus facile.
Si la carte thermomètre est réalisée en simple couche (PCB maison, ce qui est mon cas), un connecteur DUPONT femelle sera difficile à souder sous la carte à moins de le surélever de 2mm ou 3mm. Avec un PCB industriel à trous métallisés ce sera plus facile (soudure côté composants).
Les 4 colonnettes sont des modèles 2.5mm x 10mm. Avec un connecteur 3 broches DUPONT des colonnettes de 12mm (PCB à trous métalisés) ou 15mm (PCB simple face) seront préférables.

La batterie en charge
Voici le TP4056 en action. La LED rouge est allumée, la bleue s'allumera en fin de charge.

La carte capteur MLX90614ESF-BAA + diodes laser :


La carte en place sur le connecteur 6 points :



10. Essais

Lorsque le capteur est dirigé vers ma jambe (photo N°1 ci-dessus) il est normal qu'il affiche seulement 28.67°C, je ne suis pas en short !

Si je place la paume de la main devant le capteur il affiche 29°. C'est normal aussi, les mains sont plus froides que le reste du corps.

Le thermomètre PEAKMETER PM6530C affiche les mêmes valeurs, à quelques dixièmes de degrés près.

11. Téléchargements

Pour télécharger le projet :
https://bitbucket.org/henri_bachetti/infrared-thermometer.git

Cette page vous donne toutes les informations nécessaires :
https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

12. Conclusion

Voici un petit thermomètre sur pied bien pratique pour faire des mesures précises. Il permet de surveiller la température d'un objet tout en conservant les mains libres, et éventuellement de faire des relevés de courbes.


Cordialement
Henri


13. Mises à jour

10/12/2019 :  5.4. Les diodes laser

12 commentaires:

  1. est ce que ce thermomètre peut être utilisé pour mesurer la température corporelle à distance
    merci beaucoup <3

    RépondreSupprimer
  2. est ce que ce thermomètre peut il mesurer la temperature corporelle

    RépondreSupprimer
  3. Bonjour,
    Où avez vous acheté le MLX90614ESF-ACF?

    RépondreSupprimer
  4. Je l'avais acheté chez TME, mais ils ne le distribuent plus, sauf sous forme de module DFROBOT, hors de prix.
    On le trouve aussi sur AliExpress :
    https://fr.aliexpress.com/wholesale?catId=0&initiative_id=SB_20211114054135&origin=y&SearchText=MLX90614
    Attention le modèle MLX90614ESF DCI fonctionne sous 3V, mais les modules intègrent un régulateur.

    RépondreSupprimer
    Réponses
    1. Merci beaucoup, sur aliexpress je n'ai trouvé que des BAA; DCI et GY, est ce que les DCI ou GY permettent le réglage de l'émissivité? (c'est ce qui m'intéresserai, c'est pour cela que je cherche un ACF)

      Supprimer
    2. https://www.sparkfun.com/datasheets/Sensors/Temperature/SEN-09570-datasheet-3901090614M005.pdf
      D'après la datasheet :
      ACF veut dire 5V, gradient compensated, 10° angle de mesure
      DCI veut dire 3V, gradient compensated, I
      Je ne vois pas à quoi correspond I mais si les photos sont exactes il s'agit probablement de la version longue, angle de mesure 10°.
      L'essentiel pour vous est que la deuxième lettre soit C (gradient compensated).

      Supprimer
  5. J'ai trouvé un DCI, merci beaucoup pour vos réponses

    RépondreSupprimer
  6. svp j'ai besoins de votre aide j'ai déjà faisait un thermomètre pour mon projet de fin d'étude mais j'ai utilisé un capteur infrarouge au lieu de laser ms je vois que les valeurs de la temperature sont bizarres et je savait pas comment résolu ce problème je veux une réponse svp.

    RépondreSupprimer
    Réponses
    1. Bonjour. Il serait plus pratique de poser vos questions sur le forum ARDUINO : https://forum.arduino.cc/c/international/francais/49
      On pourrait échanger plus facilement, publier du code, des images, etc.

      Supprimer