Arduino, Tutoriels

Comment utiliser AMG8833 caméra Thermique Infrarouge 8×8 avec Arduino

Amg8833 Caméra Thermique Infrarouge 8×8 Avec Arduino

Introduction:

Les caméras thermiques infrarouges sont souvent considérées comme des équipements coûteux réservés aux professionnels. Cependant, l’avènement de modules miniatures abordables a rendu ces fonctionnalités thermiques accessibles aux amateurs d’Arduino. Dans cet article, nous allons explorer en détail le module AMG8833 Caméra Thermique Infrarouge 8×8 et découvrir comment l’intégrer avec un Arduino pour créer une unité de balayage thermique polyvalente.

Description du capteur AMG8833:

Le module AMG8833 est équipé d’une matrice infrarouge 8×8 de Panasonic, également connue sous le nom de Grid-EYE. Ce capteur est couramment utilisé dans divers appareils électroménagers, des dispositifs d’économie d’énergie aux capteurs de porte automatique. Il offre une plage de mesure de température allant de 0 à 80 °C, avec une précision de 2,5 degrés. Doté d’un angle de vue vertical et horizontal de 60 degrés, il peut détecter des objets à une distance d’environ 7 mètres. De plus, le module AMG8833 est compatible avec des tensions de fonctionnement de 3,3V à 5V, facilitant son intégration avec un Arduino Nano.

Amg8833 Camera Thermique
AMG8833 caméra Thermique Infrarouge 8×8

Dispositif de montage:

Pour faciliter l’utilisation du module AMG8833 avec un Arduino Nano, un dispositif de montage est recommandé. Celui-ci peut prendre différentes formes, allant d’un assemblage type “caméra” à un montage de type “bench” où le capteur et l’affichage sont montés côte à côte. Un support de sonde, tel que présenté dans l’article, peut être utilisé pour maintenir le module AMG8833 et l’affichage TFT dans une configuration pratique.

Composants électroniques:

Les composants nécessaires pour ce projet comprennent :

  • Module AMG8833 caméra Thermique Infrarouge 8×8
  • Arduino Nano
  • Affichage TFT de 1,3 pouces avec un contrôleur ST7789
  • Résistances de 4.7 kOhm
  • des fils de connexion M/F

Schéma de câblage:

Le schéma de câblage entre l’Arduino Nano, le module AMG8833 et l’affichage TFT est relativement simple. Il suffit de connecter les broches correspondantes du module AMG8833 (VCC, GND, SCL et SDA) aux broches appropriées de l’Arduino Nano. Les résistances de pull-up de 4,7 kΩ sont également incluses dans le schéma pour assurer une communication I2C stable.

Câblage De Amg8833 Caméra Thermique Infrarouge 8×8 Avec Arduino
Câblage de AMG8833 caméra Thermique Infrarouge 8×8 avec Arduino

Bibliothèque utilisée:

Pour interagir avec le module AMG8833, nous utiliserons la bibliothèque Adafruit_AMG88xx.h d’Adafruit Industries. Cette bibliothèque fournit les fonctions nécessaires pour initialiser le capteur, lire les valeurs de température et les afficher sur l’écran TFT.

Esquisse du programme:

Une esquisse de programme est fournie dans l’article, basée sur l’exemple “thermal_cam” de la bibliothèque Adafruit_AMG88xx.h. Cette esquisse permet de lire les valeurs de température de la matrice 8×8 du capteur AMG8833, de les afficher sur le moniteur série et de les représenter graphiquement sur l’écran TFT à l’aide d’une table de conversion en niveaux de gris.

#include <Wire.h>
#include <Adafruit_AMG88xx.h>
#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>

#define TFT_SCLK 13
#define TFT_RST  8
#define TFT_MISO 12
#define TFT_MOSI 11
#define TFT_CS   10
#define TFT_DC   9

Adafruit_AMG88xx amg;
Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST, TFT_SCLK, TFT_MISO, TFT_MOSI);

void setup() {
  Serial.begin(9600);
  tft.init(240, 240);
  tft.setRotation(1);
  
  if (!amg.begin()) {
    Serial.println("Erreur lors de l'initialisation du capteur AMG8833");
    while (1);
  }

  tft.fillScreen(ST77XX_BLACK);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(2);
  tft.setCursor(5, 5);
  tft.println("Thermal Scanner");
}

void loop() {
  float pixels[AMG88xx_PIXEL_ARRAY_SIZE];
  amg.readPixels(pixels);

  tft.setCursor(5, 40);

  for (int row = 0; row < 8; row++) {
    for (int col = 0; col < 8; col++) {
      float pixelValue = pixels[row * 8 + col];
      int colorIndex = map(pixelValue, 20, 30, 0, 63);
      uint16_t color = camColors[colorIndex];
      
      tft.fillRect(col * 30, row * 30 + 40, 30, 30, color);
    }
  }

  delay(500);
}

Résultats:

Une fois le capteur AMG8833 initialisé, il envoie un flux de lectures de température à partir de ses 64 pixels. Ces lectures sont traduites en valeurs de gris et projetées sur l’écran TFT. Avec une résolution de 240×240 pixels, chaque pixel de détection de la matrice thermique AMG8833 peut être agrandi et affiché dans un carré de 30×30 pixels, créant ainsi une matrice de 8 carrés horizontaux et 8 carrés verticaux. Les résultats obtenus permettent de visualiser les variations de température de manière claire et précise.

Conception concurrente:

L’article mentionne également un autre capteur thermique, le MLX90640, qui offre une résolution plus élevée de 32×32 pixels. Il est compatible avec Arduino et peut être une option intéressante pour ceux qui recherchent une résolution supérieure. Cependant, l’utilisation du MLX90640 peut nécessiter des cartes plus puissantes comme l’ESP8266 ou l’ESP32 pour le traitement des données et l’affichage.

Conclusion:

Grâce au module AMG8833 Caméra Thermique Infrarouge 8×8 et à l’Arduino Nano, il est maintenant possible de réaliser des projets de balayage thermique abordables et accessibles. Que vous souhaitiez créer un thermomètre infrarouge ou explorer d’autres applications intéressantes, ce module offre une solution compacte et efficace pour vos besoins de détection thermique. Avec des résultats clairs et une intégration aisée à l’aide de l’Arduino, vous pouvez maintenant ajouter des capacités thermiques à vos projets Arduino.

Video description

La fiche technique : https://cdn.sparkfun.com/assets/4/1/c/0/1/Grid-EYE_Datasheet.pdf

Pour plus d’article : https://www.moussasoft.com/tutoriels-electroniques

Twitter: Moussa Lhoussaine (@Moussasoft_com) / Twitter