Kontaktlose Temperaturmessung bis 370°C mit Arduino

Mit dem hier vorgestellte Infrarot Sensor GY-906 wird zeigt, wie einfach ein Temperaturmessgerät zur kontaktlosen Messung erstellt werden kann.

Der Messbereich der Umgebung ist von minus -40°C bis plus 125°C
und die des zu messenden Objektes von minus -70°C bis plus 370°C Grad Celsius möglich.

Somit kann das Steak auf dem Gasgrill, der Druckkopf eines 3D Druckers, das Gefriergut im Kühlschrank oder etwa Körpertemperatur an der Stirn zuverlässig gemessen werden.

Aber wie kann ich mit Infrarotlicht Temperaturen messen?

Alle Objekte mit einer Temperatur über dem absoluten Nullpunkt (-273,15°C oder 0 Kelvin) strahlen Infrarotstrahlung ab. Die Intensität und das Spektrum dieser Strahlung hängen von der Temperatur des Objekts ab. Je höher die Temperatur, desto intensiver ist die abgestrahlte Infrarotstrahlung.

Dieser Sensor basiert auf dem MLX90614-Chip von Melexis und kann Infrarotstrahlung im Bereich von etwa 5,5 bis 14 Mikrometer (μm) erfassen. Die thermoelektrischen Sensoren in diesem Chip nutzen den sogenannten „Seebeck-Effekt“, um Temperaturunterschiede in elektrische Spannungen umzuwandeln. Die erfassten Spannungen werden dann in Temperaturwerte umgerechnet und dann auf dem LCD angezeigt.

Benötigt wird ein Microcontroller Arduino Uno, Nano oder andere kompatible Boards. Zur Darstellung der Umgebungstemperatur und des gemessenen Objektes wird eine Flüssigkristallanzeige mit zwei Zeilen und 16 Zeichen angeschlossen.
Eine 9 Volt Blockbatterie versorgt die Messstation mit Strom.

Hier noch der erste Prototyp mit Fischertechnik zusammen gehalten

Verwendete Hardware:
Infrarot Sensor GY-906
Microcontroller Nano
Flüssigkristallanzeige LCD 1602
I2C Adapter LCM1602

Der Infrarot Sensor sowie die Flüssigkristallanzeige werden über den I²C – Bus angesprochen.
Ein Master, in unserem Fall der Arduino Nano, benötigt lediglich zwei Serielle Leitungen um mit bis zu 127 Aktoren oder Sensoren kommunizieren zu können.
Beide Module benötigen 5 Volt und GND.
SDA ist Serial-Data und ist für die Datenübermittlung zuständig und kommt an den Arduino an A4.
SCL ist der Taktgeber und kommt an den PIN A5

Quellcode:

//Temperaturmessung mit IR
//prilchen.de
#include <Adafruit_MLX90614.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

// I2C Bus ist bei Entwicklungsboard Arduino UNO SCL=A5 SDA=A4 

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

LiquidCrystal_I2C lcd(0x27, 16, 2);  //LCD Display  (I2C-Adresse/Zeichen pro Zeile/Anzahl Zeilen)

void setup() {
  lcd.init(); //Im Setup wird das LCD gestartet
  lcd.backlight(); //Hintergrundbeleuchtung von LCD einschalten (0 schaltet die Beleuchtung aus).
  mlx.begin();
}

void loop() {
  lcd.setCursor(0, 0); //Der folgende Text soll beim LCD beim ersten Zeichen in der ersten Zeile beginnen.
  lcd.print("Umgebung"); 
  lcd.setCursor(9, 0);//Ausgabe in der ersten Zeile beim 9ten Zeichen
  lcd.print(mlx.readAmbientTempC());
  lcd.setCursor(15, 0); //Der folgende Text soll beim LCD beim 15ten Zeichen in der ersten Zeile beginnen.
  lcd.print("C");
  lcd.setCursor(0, 1); //Der folgende Text soll beim LCD beim ersten Zeichen in der zweiten Zeile beginnen.
  lcd.print("Objekt"); 
  lcd.setCursor(9, 1);//Ausgabe in der zweiten Zeile beim 9ten Zeichen
  lcd.print(mlx.readObjectTempC());
  lcd.setCursor(15, 1); //Der folgende Text soll beim LCD beim 15ten Zeichen in der zeiten Zeile beginnen.
  lcd.print("C");
  delay(1000);
}

Hier geht es zu einem passenden Gehäuse: https://prilchen.de/kontaktlose-temperaturmessung-teil-2-erstellung-und-3d-druck-des-gehaeuses

, , , ,