Misurare la temperatura con il sensore di temperatura a infrarossi MLX90614
Temperaturen berührungslos messen – im Seriellen Monitor und auf dem LCD
Scegli il microcontrollore
Pin, schema elettrico e sketch nei passaggi di lavoro cambiano in base alla tua selezione. La selezione rimane salvata.
Material
Was der Sensor misst
Anschluss am Mikrocontroller
Assegnazione dei pin Arduino UNO
Beim Arduino UNO schreibst du die Pin-Nummer direkt in den Sketch, also 5 und 7 ohne Zusatz.
Scheda nell'IDE ArduinoArduino Uno
Ein zusätzliches Board-Paket brauchst du dafür nicht. Der UNO ist in der Arduino IDE ab Werk dabei.
Assegnazione dei pin ESP32-Wroom
Beim ESP32 schreibst du die GPIO-Nummer direkt in den Sketch, also 26 und 27 ohne D davor.
Scheda nell'IDE ArduinoESP32 Dev Module
Dafür muss die ESP32-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Assegnazione dei pin Wemos D1 Mini
Den Pin-Nummern muss das D vorangestellt werden. Du schreibst also D6 und D7 in den Sketch, nicht 6 und 7.
Scheda nell'IDE ArduinoLOLIN(WEMOS) D1 R2 & mini
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Assegnazione dei pin NodeMCU
Auch beim NodeMCU steht vor der Pin-Nummer ein D. D1 entspricht GPIO 5, D2 entspricht GPIO 4.
Scheda nell'IDE ArduinoNodeMCU 1.0 (ESP-12E Module)
Dafür muss die ESP8266-Boardverwaltung installiert sein. Du fügst sie einmalig über die Einstellungen der Arduino IDE hinzu.
Bibliothek installieren
Temperaturen im Seriellen Monitor anzeigen
#include "Adafruit_MLX90614.h"
// Sensor MLX90614 als mlx initialisieren
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup()
{
// Seriellen Monitor starten
Serial.begin(9600);
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());
// Punkt in Komma umwandeln
TemperaturUmgebung.replace(".", ",");
// Objekttemperatur lesen
String TemperaturObjekt = String(mlx.readObjectTempC());
// Punkt in Komma umwandeln
TemperaturObjekt.replace(".", ",");
// Daten im Seriellen Monitor anzeigen
Serial.print("Temperatur Umgebung:\t");
Serial.println(TemperaturUmgebung + " Grad C");
Serial.print("Temperatur Objekt:\t");
Serial.println(TemperaturObjekt + " Grad C");
Serial.println("-----------------------");
// Wartezeit bis zur naechsten Messung
delay(3000);
}Erweiterung: Messwerte auf einem LCD anzeigen
#include "LCDIC2.h"
#include "Adafruit_MLX90614.h"
// 4-zeiliges LCD mit 20 Zeichen je Zeile an der I2C-Adresse 0x27
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);
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());
// Punkt in Komma umwandeln
TemperaturUmgebung.replace(".", ",");
// Objekttemperatur lesen
String TemperaturObjekt = String(mlx.readObjectTempC());
// Punkt in Komma umwandeln
TemperaturObjekt.replace(".", ",");
// Daten im Seriellen Monitor anzeigen
Serial.print("Temperatur Umgebung:\t");
Serial.println(TemperaturUmgebung + " Grad C");
Serial.print("Temperatur Objekt:\t");
Serial.println(TemperaturObjekt + " Grad C");
Serial.println("-----------------------");
// Daten auf dem LCD anzeigen. \337 ist das Gradzeichen im Zeichensatz des Displays.
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 naechsten Messung
delay(3000);
}