Fabriquer un thermomètre infrarouge sans contact avec le capteur de température IR MLX90614

IR Thermometer using Arduino and Infrared Temperature Sensor

Fabriquer un thermometre infrarouge sans contact avec le capteur de

Lors du débogage d’un circuit électronique ou du test d’une nouvelle conception matérielle, j’ai souvent tendance à vérifier si les composants de la carte chauffent anormalement en les touchant. Et si quelque chose est gâché (ce qui se produit généralement au premier essai), ces composants peuvent devenir chauds jusqu’à 80°C ou plus, brûlant non seulement le composant mais aussi mon doigt avec lui. Après m’être brûlé les doigts plus de fois que je ne m’en souviens, j’ai décidé de construire le mien Pistolet de température utilisant Arduino et un capteur de température infrarouge. Ce pistolet thermique sera construit à l’aide d’un capteur de température sans contact appelé MLX90614; par conséquent, il peut non seulement être utilisé pour mesurer la température des composants, mais peut également être utilisé pour mesurer la température corporelle, la température de surface, la ventilation thermique et bien plus encore. Bien sûr, ces pistolets thermiques sont facilement disponibles sur le marché auprès de fabricants renommés comme Fluke, Flir, etc. Mais ils ne sont pas légers dans vos poches et en plus, quoi de plus amusant que de construire vos propres gadgets. Alors commençons…

Matériel requis

  • Arduino Pro Mini
  • Capteur de température infrarouge MLX90614
  • Écran OLED – SSD1306
  • Diode laser
  • Pile 9V
  • Bouton poussoir
  • Clip de batterie
  • Fils de connexion

Thermomètre infrarouge MLX90614

Avant de poursuivre le tutoriel, il est important de savoir comment fonctionne le capteur MLX90614. Il existe de nombreux capteurs de température disponibles sur le marché et nous utilisons largement le capteur DHT11 et le LM35 pour de nombreuses applications où l’humidité ou la température atmosphérique doivent être mesurées. Vous pouvez trouver certains des Thermomètres DIY ci-dessous:

Mais ici, pour un pistolet thermique, nous avons besoin d’un capteur capable de détecter la température d’un objet particulier (non ambiante) sans entrer directement en contact avec l’objet. A cet effet nous avons contacter moins de capteurs de température qui utilise le laser ou l’IR pour calculer la température d’un objet. Le MLX90614 est l’un de ces capteurs qui utilise l’énergie infrarouge pour détecter la température d’un objet. Pour en savoir plus sur le circuit des capteurs infrarouges et IR, suivez le lien.

1772094688 886 Fabriquer un thermometre infrarouge sans contact avec le capteur de

MLX90614 Le capteur est fabriqué par le système intégré Melexis Microelectronics, il contient deux dispositifs intégrés, l’un est le détecteur à thermopile infrarouge (unité de détection) et l’autre est un dispositif DSP de conditionnement de signal (unité informatique). Cela fonctionne sur la base de Loi de Stefan-Boltzmann qui stipule que tous les objets émettent de l’énergie IR et que l’intensité de cette énergie sera directement proportionnelle à la température de cet objet. L’unité de détection du capteur mesure la quantité d’énergie IR émise par un objet ciblé et l’unité de calcul la convertit en valeur de température à l’aide d’un CAN intégré de 17 bits et transmet les données via Communication I2C protocole. Le capteur mesure à la fois la température de l’objet et la température ambiante pour calibrer la valeur de température de l’objet. Les caractéristiques du capteur MLX90614 sont indiquées ci-dessous. Pour plus de détails, reportez-vous à la fiche technique MLX90614.

Caractéristiques du capteur de température infrarouge MLX90614 :

  • Tension de fonctionnement : 3,6 V à 5 V
  • Plage de température de l’objet : -70 °C à 382,2 °C
  • Plage de température ambiante : -40°C à 125°C
  • Résolution/Précision : 0,02°C

Quelle doit être la distance entre le capteur et l’objet ?

Une question à laquelle la fiche technique ne répond pas directement est la distance de mesure entre le capteur et l’objet. La valeur de cette distance est donnée par le terme Champ de vision (FOV)pour notre capteur le champ de vision est d’environ 80°.

Fabriquer un thermometre infrarouge sans contact avec le capteur de

Vous pouvez considérer la plage de détection comme étant de forme conique à partir de la pointe du capteur, comme indiqué ci-dessus. Ainsi, à mesure que nous nous éloignons de l’objet à mesurer, la zone de détection augmente de deux fois. Cela signifie que pour chaque centimètre que nous nous éloignons de l’objet, la zone de détection augmente de 2 cm. Dans notre pistolet thermique nous avons placé une diode laser au-dessus du capteur pour savoir où pointe actuellement la zone de détection du capteur. J’ai trouvé que les valeurs étaient fiables si le pistolet est pointé à 2 cm de l’objet et que la précision diminue à mesure qu’on s’éloigne.

Schéma de circuit du thermomètre Arduino MLX90614

Le schéma de circuit pour Thermomètre infrarouge est assez simple. Le circuit complet est présenté ci-dessous, il a été créé à l’aide du logiciel Fritzing.

1772094688 282 Fabriquer un thermometre infrarouge sans contact avec le capteur de

Étant donné que le logiciel Fritzing ne prend pas en charge une pièce pour le capteur MLX90614, nous avons utilisé une note pour mentionner ses connexions comme indiqué ci-dessus. Nous avons également utilisé une LED de couleur rouge à la place d’une diode laser. L’ensemble du circuit est alimenté par la pile 9V grâce à un bouton poussoir. Lorsque le bouton-poussoir est enfoncé, la pile 9 V est connectée à la broche RAW de l’Arduino qui est ensuite régulée à 5 V à l’aide du régulateur de tension intégré. Ce 5V est ensuite utilisé pour alimenter le module OLED, le capteur et la diode laser.

1772094688 447 Fabriquer un thermometre infrarouge sans contact avec le capteur de

Nous avons déjà appris comment interfacer le SSD1306 OLED avec Arduino, le même matériel et le même code seront utilisés ici. Vous pouvez également concevoir un circuit pilote de diode laser séparé si vous avez besoin que le faisceau laser soit plus puissant.

Conception du boîtier du pistolet thermique

Pour rendre le projet plus intéressant et pratiquement utilisable, nous avons modélisé et imprimé en 3D notre boîtier extérieur pour notre pistolet thermique. La conception comporte deux parties, l’une est la partie supérieure qui fait office de corps du pistolet abritant le contrôleur Arduino, l’OLED, le capteur et la diode laser. L’autre est la partie inférieure qui fait office de poignée du pistolet abritant la batterie et le bouton poussoir. Le bouton-poussoir fait ici office de déclencheur. Le modèle ressemble à ceci ci-dessous.

1772094689 998 Fabriquer un thermometre infrarouge sans contact avec le capteur de

Les fichiers de conception sont disponibles en téléchargement sur thingiverse ; vous pouvez télécharger le design et l’imprimer à l’aide de votre imprimante 3D ou également le modifier en fonction de vos besoins. Le lien de téléchargement est donné ci-dessous

Pistolet thermique modèle 3D

Après avoir téléchargé les fichiers, vous pouvez directement lancer l’impression 3D du design ou effectuer quelques modifications en fonction de vos besoins.

Impression 3D du boîtier :

Le modèle a ensuite été enregistré sous forme de fichier STL et converti en G-code à l’aide de Cura. J’ai utilisé mon imprimante tarentule Tevo pour imprimer mes deux pièces, puis je les ai vissées ensemble. Il est également possible d’imprimer les deux pièces en une seule pièce si votre imprimante le prend en charge. Le paramètre de découpage pour mon impression est indiqué ci-dessous

1772094689 788 Fabriquer un thermometre infrarouge sans contact avec le capteur de

Il m’a fallu près de 6 heures pour imprimer les deux pièces, une fois les connexions matérielles imprimées établies, en soudant directement les fils directement sur les broches Arduino à l’aide de connecteurs Relimate (RMC) à 7 et 4 broches pour le capteur et l’écran OLED respectivement. L’OLED a ensuite été montée dans la pièce imprimée à l’aide de vis tandis que le capteur et la diode laser ont été montés à l’aide de colle chaude. Les broches d’alimentation (Raw, Gnd) ont ensuite été glissées vers le bas à travers un fil pour la partie poignée qui comprend le bouton-poussoir et la batterie. Ces fils étaient ensuite connectés à la batterie via le bouton-poussoir. Une fois l’assemblage terminé, le pistolet thermique ressemblait à ceci ci-dessous

1772094689 346 Fabriquer un thermometre infrarouge sans contact avec le capteur de

1772094689 989 Fabriquer un thermometre infrarouge sans contact avec le capteur de

Vous pouvez procéder à la conception d’un couvercle pour la partie supérieure, mais j’ai décidé de le laisser ouvert afin de pouvoir le modifier plus tard si nécessaire.

Programmation pour le thermomètre infrarouge Arduino MLX90614

Le programme pour Arduino doit lire la valeur de température du MLX90614 et l’afficher sur l’écran OLED. Heureusement pour nous le programme sera très simple puisque Adafruit nous a fourni une bibliothèque pour lire facilement les données du MLX90614. La bibliothèque peut être téléchargée à partir du lien ci-dessous

Bibliothèque Arduino MLX90614

Le lien téléchargera la bibliothèque sous forme de dossier ZIP. Après le téléchargement, ajoutez-le à l’IDE Arduino en suivant la commande Sketch -> Include Library -> Add .ZIP Library et recherchez l’emplacement de ce fichier ZIP. Assurez-vous également d’avoir suivi le didacticiel sur l’interface OLED avec Arduino afin d’avoir également installé les bibliothèques requises pour le module d’affichage OLED. Une fois les bibliothèques ajoutées, nous pouvons commencer notre programme, le le programme complet de ce projet se trouve au bas de cette page. Ici, le même programme sera expliqué en petits extraits.

Comme toujours, nous commençons le programme par ajout des fichiers de bibliothèque requis. Ici, la bibliothèque Wire (intégrée) est utilisée pour communiquer à l’aide du protocole I2C et la bibliothèque SparkFunML90614 est utilisée pour communiquer avec le capteur. Les bibliothèques SPI, GFX et SSD1306 sont utilisées pour communiquer avec le protocole SPI à 4 fils avec le module d’affichage OLED.

#include <Wire.h>
#include <SparkFunMLX90614.h>
#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Nous alors définir les broches de l’écran OLED auquel nous avons fait le lien. Puisque le module fonctionne avec SPI, nous avons utilisé les broches SPI de l’Arduino. Il existe des écrans OLED qui fonctionnent également avec le protocole I2C, mais nous ne pouvons pas les utiliser ici car les broches I2C sont déjà occupées par le capteur du thermomètre.

#define OLED_MOSI   9
#define OLED_CLK   10
#define OLED_DC    11
#define OLED_CS    12
#define OLED_RESET 13
Adafruit_SSD1306 display(OLED_MOSI, OLED_CLK, OLED_DC, OLED_RESET, OLED_CS);

À l’intérieur du configuration vide() fonction, nous initialisons le moniteur série pour le débogage ainsi que le capteur de température IR en utilisant l’objet therm que nous avons créé précédemment. Ici, en Inde, l’unité de température la plus suivie est Celsius (degré C), c’est pourquoi nous avons défini l’unité avec TEMP_C. Vous pouvez également la changer en TEMP_F si vous avez besoin que les valeurs soient en Fahrenheit (F). Enfin, nous initialisons l’écran OLED et effaçons son affichage. De plus, l’écran OLED pivote de 180 degrés pour faciliter le montage dans le boîtier.

void setup()
{
  Serial.begin(9600);
  therm.begin();
  therm.setUnit(TEMP_C);

   display.begin(SSD1306_SWITCHCAPVCC);
   display.clearDisplay();
   display.setRotation(2);
}

À l’intérieur de la fonction de bouclenous lisons la valeur de la température du capteur et la convertissons en chaîne à afficher sur l’écran OLED. Nous avons également imprimé la valeur sur le moniteur série à des fins de débogage. Nous avons également incrémenté une variable appelée runner qui produit une petite animation sur l’écran chaque fois que la valeur du capteur de température est mise à jour avec succès, cela nous aidera à savoir si la lecture est bloquée pour une raison quelconque.

  if (therm.read()) // On success, read() will return 1, on fail 0.
  {
    temperature = String(therm.object(), 2);
    Serial.print("Object: ");
    Serial.print(temperature); Serial.println("C");
    display.clearDisplay();
    runner++;
    delay(5);
  }

Test du pistolet thermique Arduino

Une fois que le code Arduino est prêt, nous pouvons le télécharger sur notre matériel à l’aide d’un programmeur TTL externe ou d’une carte FTDI puisque le pro mini n’en a pas à bord. Ensuite, appuyez simplement sur le bouton poussoir pour déclencher le pistolet thermique et vous remarquerez que le faisceau laser tombe sur l’objet et que la température de l’objet s’affiche sur l’écran OLED comme indiqué ci-dessous. Ici, je l’ai utilisé pour mesurer la température d’un composant pointé par le faisceau laser.

Fabriquer un thermometre infrarouge sans contact avec le capteur de

Le pistolet thermique a également été testé sur un fer à souder, une buse d’imprimante 3D, des glaçons, etc. et un résultat satisfaisant a été observé. Le le fonctionnement complet du pistolet thermique peut être trouvé dans la vidéo au bas de cette page. J’espère que vous avez apprécié le projet et appris quelque chose d’utile lors de sa construction. Si vous avez des questions, laissez-les dans la section commentaires ci-dessous ou utilisez nos forums pour des questions plus techniques.

Code de projet complet

/***********************************
Code for Arduino MLX90614

Balises vidéo Vous avez des questions concernant cet article ?

Démarrer une discussion sur :

Commentaires

Ajouter un nouveau commentaire

  • Connectez-vous ou inscrivez-vous pour poster des commentaires

Retrouvez l’histoire de Raspberry Pi dans cette vidéo :

Youtube video