Temperatur messen mit dem Infrarot-Temperatursensor MLX90614

Inhaltsverzeichnis

Für dieses Projekt benötigst du

MLX90614 Infrarot-Sensor an einem Mikrocontroller verwenden

Obwohl sie für das menschliche Auge nicht sichtbar sind, strahlen alle Objekte Infrarotlicht aus, wobei die Konzentration je nach Temperatur unterschiedlich ist. Die erfassten Infrarot-Strahlen werden in elektrische Impulse umgewandelt. Der MLX90614 arbeitet nach diesem Prinzip.

Infrarot-Thermometer finden im privaten Bereich und in der Industrie Anwendung:

Die Hardware

Der MLX90614 ist ein berührungsloser Temperatursensor. Er misst die Infrarotstrahlung und gibt zwei Messwerte aus: die Umgebungstemperatur und die Temperatur des Objektes in seiner Nähe.

Objekttemperatur: -70° C bis 382.2°C
Umgebungstemperatur:
-40° C bis 125°C
Genauigkeit:
0,02°C
Abstand zwischen Objekt und Sensor: 2 cm bis 5 cm

Quelle: https://www.sparkfun.com/datasheets/Sensors/Temperature/MLX90614_rev001.pdf

Aufgabenstellung

Die Messdaten sollen im Seriellen Monitor angezeigt werden.
Zunächst wird ein Glas mit heißem Wasser dem Sensor angenähert. Anschließend wird ein Glas mit einem Eiswürfel in die Nähe gebracht.

Anschluss am Mikrokontroller

Arduino UNO
VIN
(rot) -> 5V
GND (schwarz) -> GND
SCL (gelb) -> A5
SDA (grün) -> A4

ESP32-Wroom
VIN
(rot) -> 5V
GND (schwarz) -> GND
SCL (gelb) -> 21
SDA (grün) -> 22

NodeMCU/Wemos D1 Mini
VIN
(rot) -> 3.3V
GND (schwarz) -> GND
SCL (gelb) -> D1
SDA (grün) -> D2

Bibliothek installieren

Nachdem du die Bibliothek ausgewählt hast installiere im zweiten Schritte die benötigten Abhängigkeiten.

Der Quellcode

#include „Adafruit_MLX90614.h“

// Sensor MLX90614 als mlx initialisieren

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup()

{

  /// Seriellen Monitor starten

  Serial.begin(9600);

  // auf serielle Verbindung warten

  while (!Serial);

  delay(1000);

  Serial.println(„Adafruit MLX90614 Test“);

  // Sensor starten

  if (!mlx.begin())

  {

    Serial.println(„Keine Verbindung zum MLX90614.“);

    // Programm anhalten

    while (1);

  };

}

void loop()

{

  // Umgebungstemperatur lesen

  String TemperaturUmgebung = String(mlx.readAmbientTempC());

  // . in , umwandeln

  TemperaturUmgebung.replace(„.“, „,“);

  // Objekttemperatur lesen

  String TemperaturObjekt = String(mlx.readObjectTempC());

  // . in , umwandeln

  TemperaturObjekt.replace(„.“, „,“);

  // Daten im Seriellen Monitor anzeigen

  Serial.print(„Temperatur Umgebung:t „);

  Serial.println(TemperaturUmgebung + „°C“);

  Serial.print(„Temperatur Objekt:t „);

  Serial.println(TemperaturObjekt + „°C“);

  Serial.println(„——————————-„);

  // Wartezeit bis zur nächsten Messung

  delay(3000);

}

Erweiterung des Programms: Messdaten auf einem LCD anzeigen

Das Programm im Film

Der Schaltplan

Zusätzlich benötigte Bibliothek

Der Quellcode

#include „LCDIC2.h“

#include „Adafruit_MLX90614.h“

// 4-zeiliges LCD

LCDIC2 lcd(0x27, 20, 4);

// Sensor MLX90614 als mlx initialisieren

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup()

{

  // LCD starten

  lcd.begin();

  // Cursor „verstecken“

  lcd.setCursor(false);

  Serial.begin(9600);

  // auf serielle Verbindung warten

  while (!Serial);

  delay(1000);

  Serial.println(„Adafruit MLX90614 Test“);

  if (!mlx.begin())

  {

    Serial.println(„Keine Verbindung zum MLX90614.“);

    // Programm anhalten

    while (1);

  };

}

void loop()

{

  // Umgebungstemperatur lesen

  String TemperaturUmgebung = String(mlx.readAmbientTempC());

  // . in , umwandeln

  TemperaturUmgebung.replace(„.“, „,“);

  // Objekttemperatur lesen

  String TemperaturObjekt = String(mlx.readObjectTempC());

  // . in , umwandeln

  TemperaturObjekt.replace(„.“, „,“);

  // Daten im Seriellen Monitor anzeigen

  Serial.print(„Temperatur Umgebung:t „);

  Serial.println(TemperaturUmgebung + „°C“);

  Serial.print(„Temperatur Objekt:t „);

  Serial.println(TemperaturObjekt + „°C“);

  Serial.println(„——————————-„);

  // Daten auf dem LCD anzeigen

  lcd.clear();

  lcd.setCursor(0, 0);

  lcd.print(„Temperatur Umgebung:“);

  lcd.setCursor(0, 1);

  lcd.print(TemperaturUmgebung + “ 337C“);

  lcd.setCursor(0, 2);

  lcd.print(„Temperatur Objekt“);

  lcd.setCursor(0, 3);

  lcd.print(TemperaturObjekt + “ 337C“);

  // Wartezeit bis zur nächsten Messung

  delay(3000);

}

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft bis zu 10 % Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 4.000 Artikel sofort verfügbar!
  • Mehr als 10 Jahre Erfahrung mit Arduino, 3D-Druck und co.
SALE
Benötigst du Unterstützung bei deinem Projekt?

Alle Modelle der hier gezeigten Modelle sind hier zum Download  in einer kompakten Zip Datei verfügbar.