Infrarot Thermometer GY-906 MLX90614

Aus HSHL Mechatronik
Zur Navigation springen Zur Suche springen
Abb. 1: Infrarot Thermometer GY-906 MLX90614
Autor: Johann Kismann
Studiengang: Business and Systems Engineering
Modul: BSE-M-2-1.03, Hausarbeit in Angewandte Informatik gehalten von Prof. Dr.-Ing. Schneider
Semester: Sommersemester 2024
Abgabetermin: 28.07.2024

Einführung

Das Infrarot-Thermometer GY-906 MLX90614 ist ein fortschrittlicher Sensor, der zur präzisen und berührungslosen Temperaturmessung entwickelt wurde. Es nutzt die Infrarotstrahlung, die von Objekten emittiert wird, um deren Temperatur genau zu bestimmen. Diese Eigenschaft macht es besonders nützlich in Anwendungen, bei denen herkömmliche Thermometer aufgrund von Kontaminationsrisiken, Zugangsproblemen oder der Notwendigkeit einer schnellen Messung nicht geeignet sind.

In der Industrie wird der Sensor häufig zur Überwachung von Produktionsprozessen eingesetzt, um sicherzustellen, dass Maschinen und Materialien die richtigen Temperaturen haben. Im Automobilbereich kann er zur Überwachung von Motor- und Abgastemperaturen verwendet werden, was zur Verbesserung der Effizienz und Sicherheit beiträgt. In der Medizintechnik ermöglicht der Sensor die berührungslose Messung der Körpertemperatur, was besonders in Zeiten von Infektionskrankheiten von Vorteil ist.

Dieser Artikel bietet einen detaillierten Überblick über die Funktionsweise und die technischen Spezifikationen des GY-906 MLX90614. Darüber hinaus werden praktische Beispiele und Anwendungsfälle vorgestellt, um den Leserinnen und Lesern eine fundierte Grundlage für die Integration dieses Sensors in ihre eigenen Projekte zu bieten. Das Ziel ist es, die vielfältigen Einsatzmöglichkeiten und die einfache Implementierung des GY-906 MLX90614 zu veranschaulichen und so dessen Potenzial voll auszuschöpfen.

Aufgabenstellung

Messen Sie die Temperatur mit dem Infrarot Thermometer (Pyrometer).

  • Thema/Fragestellung: Messung der Entfernung mit dem Sensor Sharp GP2-0430K
  • Hypothese: Die Entfernung lässt sich im Bereich von 4 cm bis 50 cm fehlerfrei messen.
  • Einordnung in den Lehrplan Der Infrarot-Sensor GY-906 MLX90614 spielt eine wichtige Rolle bei der berührungslosen Temperaturmessung in der Informatik und Technik. Diese Technologie findet breite Anwendung in industriellen Prozessen, der Automobiltechnik und der Medizintechnik. In der Lehrveranstaltung "Angewandte Informatik" werden anhand dieses Beispiels verschiedene Lernziele verfolgt. Die Studierenden lernen, nachhaltige Quelltextverwaltung mit SVN durchzuführen, Programmierstandards einzuhalten und Konflikte zu lösen. Zusätzlich wird die mathematisch orientierte Programmierung in MATLAB® vermittelt, einschließlich der Arbeit mit Vektoren, Matrizen und Funktionen. Darüber hinaus erwerben sie Kenntnisse in der modellbasierten Programmierung mit der Arduino-Plattform und Simulink, um den Sensor auszulesen, Daten zu visualisieren und Aktoren zu steuern.

Projektbeschreibung

Tabelle 2: Materialliste
# Anzahl Material
1 1 Arduino Uno R3
2 1 Infrarot-Thermometer GY-906 MLX90614
3 1 LCD Modul 16x02 I2C
4 1 PC mit MATLAB/Simulink R2023b
5 1 Streckbrett
6 5 Jumper Kabel, männlich/männlich, 20 cm
7 1 Buzzer

Beschreibung Funktionsweise der verwendeten Hard- und Software

  • Arduino Uno R3: Der Arduino Uno R3 ist eine vielseitige Mikrocontroller-Platine, die auf dem ATmega328P-Prozessor basiert. Sie verfügt über 14 digitale Ein- und Ausgänge sowie 6 analoge Eingänge, was sie ideal für die Steuerung einer Vielzahl von Sensoren und Aktoren macht. Die Platine ist mit einem 16 MHz Quarzoszillator, einer USB-Schnittstelle zur Programmierung und Stromversorgung, einer Strombuchse für externe Stromquellen, einem ICSP-Header für die Programmierung des Mikrocontrollers und einem Reset-Button ausgestattet. Die Programmierung erfolgt über die benutzerfreundliche Arduino IDE, die eine breite Palette von Bibliotheken und Beispielen bietet, um den Einstieg zu erleichtern.
  • Infrarot-Thermometer GY-906 MLX90614: Das GY-906 MLX90614 ist ein hochpräziser Infrarot-Sensor, der zur berührungslosen Temperaturmessung verwendet wird. Er misst die von einem Objekt emittierte Infrarotstrahlung und wandelt diese in Temperaturwerte um. Der Sensor kann Temperaturen im Bereich von -70°C bis +380°C mit einer Genauigkeit von ±0,5°C messen. Er kommuniziert über die I2C-Schnittstelle, wodurch er leicht in bestehende Mikrocontroller-Systeme wie den Arduino integriert werden kann. Dank seiner schnellen Reaktionszeit und hohen Empfindlichkeit ist er ideal für Anwendungen in der Medizin, Industrie und Automobiltechnik.
  • LCD Modul 16x02 I2C: Das LCD Modul 16x02 I2C ist ein alphanumerisches Display, das 16 Zeichen pro Zeile und zwei Zeilen anzeigen kann. Es verwendet die I2C-Kommunikationsschnittstelle, was die Anzahl der benötigten Verbindungsleitungen reduziert und die Integration mit Mikrocontrollern vereinfacht. Dieses Display eignet sich hervorragend für die Darstellung von Textinformationen wie Temperaturmessungen, Statusmeldungen und anderen wichtigen Daten in Echtzeit. Die Hintergrundbeleuchtung und Kontraststeuerung sind anpassbar, um die Lesbarkeit in verschiedenen Lichtverhältnissen zu verbessern
  • PC mit MATLAB/Simulink R2023b: Ein Computer, auf dem MATLAB/Simulink R2023b installiert ist, bietet eine leistungsstarke Umgebung für die grafische Modellierung, Simulation und Analyse dynamischer Systeme. MATLAB ist eine Programmiersprache und Umgebung, die speziell für numerische Berechnungen und Datenanalyse entwickelt wurde, während Simulink eine grafische Oberfläche für die Erstellung von Modellen und die Simulation von Systemen bietet. Diese Kombination ermöglicht es, komplexe Algorithmen zu entwickeln, zu testen und zu optimieren, was insbesondere in der Forschung und Entwicklung von Vorteil ist.
  • Steckbrett: Ein Steckbrett, auch Breadboard genannt, ist ein unverzichtbares Werkzeug für das Prototyping elektronischer Schaltungen. Es besteht aus einer Vielzahl von Löchern, in die elektronische Bauteile und Verbindungsdrähte gesteckt werden können, ohne dass Löten erforderlich ist. Dies erleichtert das schnelle und flexible Zusammenstellen und Ändern von Schaltungen. Das Steckbrett ermöglicht es Entwicklern, verschiedene Konfigurationen zu testen und Fehler schnell zu beheben, bevor sie eine dauerhafte Platine erstellen.
  • Jumper Kabel, männlich/männlich, 20 cm: Diese Jumper-Kabel sind 20 cm lange, flexible Verbindungsdrähte mit Stiftsteckern an beiden Enden. Sie werden verwendet, um elektrische Verbindungen zwischen Komponenten auf einem Steckbrett oder zwischen verschiedenen Modulen herzustellen. Die männlich/männlich-Konfiguration bedeutet, dass beide Enden des Kabels in Buchsen gesteckt werden können, was die Verdrahtung und Umverdrahtung in Prototypen und Experimenten vereinfacht.
  • Buzzer: Ein Buzzer ist ein kleines elektromechanisches Bauteil, das zur Erzeugung von Tönen verwendet wird. Er kann über einen digitalen Ausgang eines Mikrocontrollers angesteuert werden, um akustische Signale zu erzeugen. Buzzers werden häufig in Projekten eingesetzt, um Alarme, Benachrichtigungen oder Bestätigungstöne auszugeben. Sie sind in der Lage, eine Vielzahl von Tönen zu erzeugen, die in Frequenz und Lautstärke variieren können, je nach den Anforderungen der Anwendung.

Technische Daten

Im Folgenden sind die technischen Daten des Infrarot-Thermometers aufgelistet:

Tabelle 3: Technische Daten des Primärsensors
Modell MLX90614
Messbereich Temperatur (Objekt) -70 °C .. +380 °C
Messbereich Temperatur (Umgebung) -40 °C .. +125 °C
Genauigkeit ±0,5 °C (0 °C .. +50 °C)
Auflösung 0,02 °C
Reaktionszeit 0,5 s
Kommunikationsschnittstelle I2C
Betriebsspannung 3,6 V .. 5 V DC
Stromverbrauch 1,5 mA
Emissionsgrad 0,1 .. 1,0 (einstellbar)
Sichtfeld 35 ° (Standard)
Gehäuse TO-39
Kalibrierung Kalibriert für weite Temperaturbereiche
Abmessungen 7,2 mm Durchmesser, 5,6 mm Höhe (exklusive Pins)

Pinbelegung

In diesem Kapitel wird die Pinbelegung des GY-906 MLX90614 anhand Tabelle 4 genauer beschrieben:

Tabelle 4: Pinbelegung des GY-906 MLX90614
Pin Beschreibung
VDD Versorgungsspannung (3,6 V .. 5 V DC)
VSS Masse (GND)
SCL I2C-Taktleitung (Clock)
SDA I2C-Datenleitung (Data)

Funktionsweise Primärsensor

Abbildung 2 zeigt die Funktionsweise des Primärsensors in Form eines Blockschaltbildes.

Abb. 2: Blockschaltbild des GY-906 MLX90614

Der MLX90614 nutzt eine Kombination aus Thermopile-Detektor, Operationsverstärker, ADC und DSP, gesteuert von einer State Machine, um präzise und zuverlässige Temperaturmessungen durchzuführen und diese Daten über eine PWM-Ausgabe zur Verfügung zu stellen. Ein interner Spannungsregler stellt die notwendige Stabilität für den Betrieb sicher. Diese strukturierte Verarbeitungskette ermöglicht es dem Sensor, genaue Temperaturmessungen ohne direkten Kontakt durchzuführen.

  • Thermopile Detektor (81101): Der Sensor beginnt mit einem Thermopile-Detektor, der die einfallende Infrarotstrahlung in eine elektrische Spannung umwandelt. Diese Strahlung stammt von der Wärme des zu messenden Objekts.
  • Operationsverstärker (OPA): Diese Spannung wird dann durch einen Operationsverstärker verstärkt, um das Signal für die weitere Verarbeitung vorzubereiten.
  • Analog-Digital-Wandler (ADC): Nach der Verstärkung wird das analoge Signal vom ADC in digitale Daten umgewandelt. Dieser Schritt ist entscheidend, um die Daten für die digitale Verarbeitung nutzbar zu machen.
  • Digitaler Signalprozessor (DSP): Die digitalisierten Daten werden an einen digitalen Signalprozessor weitergeleitet, der die Rohdaten analysiert und die tatsächliche Temperatur berechnet. Der DSP nutzt spezifische Algorithmen, um die Genauigkeit der Messung zu gewährleisten.
  • PWM-Ausgabe: Die verarbeiteten Temperaturdaten können als PWM-Signal (Pulsweitenmodulation) ausgegeben werden, das als Schnittstelle zur Übertragung der Temperaturdaten an andere Systeme dient.
  • State Machine: Eine interne State Machine steuert den gesamten Prozess, vom Einlesen der Infrarotstrahlung über die Signalverstärkung und -wandlung bis zur Ausgabe der Temperaturdaten. Sie koordiniert die verschiedenen Schritte und stellt sicher, dass der Sensor korrekt funktioniert.
  • Spannungsregler: Schließlich sorgt ein interner Spannungsregler dafür, dass alle Komponenten des Sensors mit einer stabilen Betriebsspannung versorgt werden, was für die zuverlässige Funktion des Sensors unerlässlich ist.

Versuchsaufbau und Durchführung

Versuchsaufbau

Der Versuchsaufbau wird durch einen Schaltplan (Abb. 3), Anschlussplan (Abb. 4) und Foto des Aufbaus (Abb. 5) dokumentiert.

Abb. 3: Schaltplan
Abb. 4: Anschlussplan


Abb. 5: Foto des Versuchsaufbaus

Verkabelung des GY-906 MLX90614 mit Arduino und LCD

1. LCD-Display:

  • VCC und GND: Sind mit 5V und GND des Arduino verbunden.
  • SDA und SCL: Sind mit den Pins A4 und A5 des Arduino verbunden (I2C-Kommunikation).

2. GY-906 MLX90614 Sensor:

  • VCC und GND: Sind mit 5V und GND des Arduino verbunden.
  • SDA und SCL: Sind mit den Pins A4 und A5 des Arduino verbunden.

3. Buzzer:

  • Positiver Anschluss: Ist mit dem digitalen Pin D13 des Arduino verbunden.
  • Negativer Anschluss: Ist mit GND verbunden.

Funktionsweise

1. Temperaturmessung:

  • Der GY-906 MLX90614 misst die Temperatur des Objekts berührungslos und gibt die Daten über I2C an den Arduino weiter.

2. Datenverarbeitung mit Simulink:

  • Die vom Sensor erfassten Temperaturdaten werden vom Arduino an Simulink übertragen. Simulink filtert die Daten und überprüft ihre Stabilität.

3. Anzeige auf dem LCD:

  • Die berechnete Temperatur wird vom Arduino an das LCD-Display gesendet und angezeigt.

4. Buzzer:

  • Wenn die Temperaturwerte über einen bestimmten Zeitraum stabil bleiben, wird der Buzzer aktiviert und gibt einen Ton aus.

Detaillierter Anschlussplan

1. GY-906 MLX90614:

  • VCC (Sensor) → 5V (Arduino)
  • GND (Sensor) → GND (Arduino)
  • SDA (Sensor) → A4 (Arduino)
  • SCL (Sensor) → A5 (Arduino)

2. LCD Display:

  • VCC (LCD) → 5V (Arduino)
  • GND (LCD) → GND (Arduino)
  • SDA (LCD) → A4 (Arduino)
  • SCL (LCD) → A5 (Arduino)

3. Buzzer:

  • Positiver Anschluss (Buzzer) → D13 (Arduino)
  • Negativer Anschluss (Buzzer) → GND (Arduino)

Implementierung in Simulink

Abb. 6: Simulink-Modell zur Sensorverarbeitung [1]

In der Abbildung ist das Simulink-Modell dargestellt, welches die Temperaturmessung mithilfe des GY-906_MLX90614 Sensors über ein Arduino-Board beschreibt. Der Prozess beginnt mit dem Einlesen der Temperaturdaten über die I2C-Schnittstelle, wandelt die Daten in lesbare Temperaturwerte um, filtert und speichert die Daten und gibt sie schließlich aus. Nachfolgend wird der Aufbau und die Funktionsweise des Modells detailliert erläutert.

Einlesen der Temperatur über die I2C-Schnittstelle

Das Modell liest die Temperaturdaten von einem Arduino-Board ein, das über die I2C-Schnittstelle mit dem GY-906_MLX90614 Sensor verbunden ist. Hierfür wird der `I2C Controller Read` Block verwendet, der speziell für die Kommunikation mit I2C-Geräten konzipiert ist. Die Peripherieadresse des Sensors ist auf 0x5A festgelegt. Die eingelesenen Daten werden als `double`-Werte weitergegeben und stellen die Rohwerte dar, die noch umgerechnet werden müssen.

Umrechnung der Sensorwerte in die Temperatur in °C

Der MLX90614-Sensor von Melexis liefert Temperaturmessungen in Form von Rohdatenwerten, die in einem speziellen Format kodiert sind. Laut den Datenblatt-Spezifikationen:

  • Die Rohdaten werden als 16-Bit-Wert übertragen.
  • Diese Rohdaten repräsentieren die Temperatur in Kelvin multipliziert mit einem Faktor von 50.

Formel aus dem Datenblatt:

Die Formel zur Umrechnung der Rohdaten in Kelvin lautet:


Die Temperatur in Kelvin wird dann in Celsius umgerechnet, indem man den absoluten Nullpunkt (273.15 K) subtrahiert:


Zusammengesetzte Formel:

Kombiniert ergibt sich die direkte Formel zur Umrechnung der Rohdaten in Grad Celsius:


Zusammenfassung:

Die Verwendung der Zahl 50 in der Umrechnungsformel für den MLX90614-Sensor basiert auf den Spezifikationen des Sensors und dient dazu, die Genauigkeit und Auflösung der Temperaturmessungen zu erhöhen. Dies ist eine designbedingte Entscheidung des Sensorherstellers, die in den technischen Dokumentationen und Datenblättern des Sensors beschrieben wird. Durch diese Umrechnung wird sichergestellt, dass die Sensorwerte in eine physikalisch sinnvolle Einheit überführt werden, die für die weitere Verarbeitung genutzt werden kann.

Filterung der Messwerte durch einen Median-Filter

Um die Messwerte zu glätten und potenzielle Ausreißer zu minimieren, wird ein Median-Filter verwendet. Der Median-Filter berechnet für jedes Datenfenster den Medianwert, der weniger empfindlich auf extreme Werte reagiert. Dadurch entsteht ein stabileres und verlässlicheres Signal. Im Modell wird der gefilterte Wert als „gefiltertes Signal“ bezeichnet und für nachfolgende Berechnungen sowie die Speicherung genutzt.

Mittelwert der letzten 5 Werte

Um eine zusätzliche Glättung und Stabilisierung der Daten zu erreichen, wird der Mittelwert der letzten fünf gemessenen Werte berechnet. Dies geschieht, indem die letzten fünf Werte summiert und anschließend durch fünf geteilt werden. Diese Mittelwertbildung trägt dazu bei, kurzfristige Schwankungen zu reduzieren und eine genauere Repräsentation der Temperatur über einen kleinen Zeitraum zu geben.

Buzzer-Steuerung

Eine wichtige Komponente des Modells ist die Buzzer-Steuerung. Diese Funktion wird aktiviert, wenn die Differenz zwischen dem gefilterten Signal und dem Mittelwert der letzten fünf Werte einen bestimmten Schwellwert überschreitet. Die genaue Logik ist wie folgt: 1. Differenzbildung: Die Differenz zwischen dem gefilterten Signal und dem Mittelwert wird berechnet. 2. Absolutwert und Vergleich: Der Absolutwert dieser Differenz wird mit dem Schwellwert (0.5) verglichen. 3. Aktivierung des Buzzers: Wenn der Absolutwert der Differenz größer als 0.5 ist, wird ein Signal an den Pin 13 des Arduino-Boards gesendet, wodurch der Buzzer aktiviert wird. Andernfalls bleibt der Buzzer inaktiv.

Diese Funktion dient als akustische Benachrichtigung, wenn erhebliche Temperaturabweichungen festgestellt werden, und kann als Alarm- oder Warnsystem genutzt werden.

Speicherung der Messdaten

Das Modell sieht ebenfalls die Speicherung der relevanten Messdaten vor. Es werden drei Hauptkategorien von Daten gespeichert: 1. Mittelwert der letzten fünf Werte: Diese Daten geben einen geglätteten Überblick über die Temperaturentwicklung. 2. Gefiltertes Signal: Die durch den Median-Filter geglätteten Daten werden gespeichert, um stabile Temperaturverläufe zu dokumentieren. 3. Rohes Signal: Die ungefilterten Rohdaten werden gespeichert, um eine detaillierte Analyse der originalen Messwerte zu ermöglichen.

Die Speicherung dieser Daten ermöglicht eine nachträgliche Auswertung und Analyse der Temperaturmessungen und hilft dabei, Trends oder Anomalien zu identifizieren.

Zusammenfassung

Das Simulink-Modell für den GY-906_MLX90614 Sensor bietet eine umfassende Lösung zur Temperaturmessung und -überwachung. Es kombiniert die Datenaufnahme, Umrechnung, Filterung, Mittelwertbildung und eine Buzzer-Steuerung, um präzise und zuverlässige Temperaturwerte zu liefern. Durch die Speicherung der Daten können diese für eine detaillierte Analyse und Weiterverarbeitung genutzt werden. Das Modell ist somit ein leistungsfähiges Werkzeug für Anwendungen, bei denen eine genaue und kontinuierliche Temperaturüberwachung erforderlich ist.

Versuchsdurchführung

Abb. 5: Simulink-Modell

Das Modell zur Datenverarbeitung wurde gemäß Abb. 5 in Simulink aufgebaut. Die Messdaten wurden aufgezeichnet. Ein Video der Versuchsdurchführung findet sich hier.

Modelleinstellungen: Arduino Uno, Solver: Fixed-step, discrete, Abtastrate: 0,01 s

Versuchsbeobachtung

Abb. 6: Darstellung des Rohsignals des IR-Entfernungssensors (rote Kurve)
Abb. 7: Darstellung von dynamischen Messwerten des IR-Entfernungssensors

Das Signal des Sensors weist alle 40 ms systematische Ausreisser auf (vgl. Abb. 6, rote Kurve).

Auswertung

Die Messhypothese wurde verworfen. Der Sensor weist systematische Messwertausreisser auf.

Die Ausreisser lassen sich mit einem Signalfilter eliminieren. Hierzu eignet sich ein Rangordnungsfilter (z. B. Median-Filter). Das Filter wird hierzu auf eine Fensterbreite von 30 Werten eingestellt. Das zufriedenstellende Filterergebnis für statische Werte zeigt Abb. 6 als blaue Kurve. Es konnte mit dynamische Werten verifiziert werden (vgl. Abb. 7). Das Datenblatt ([2, S. 6]) belegt die Messungen und bezeichnet die Messausreisser als "instabile Ausgabe" für maximal 5 ms alle 40 ms. Mit 50 Werten erhöht sich die Filterwirkung, es entsteht jedoch ein Delay von 10 ms. Mit 10 Werten ist die Filterwirkung zu gering.

Zusammenfassung und Ausblick

  • Zusammenfassung der Kapitel 1-4
  • Diskussion der Ergebnisse
  • Ausblick
  • Selbstreflexion/Lessons learned

Ergebnisvideo

Binden Sie hier Ihr Ergebnisvideo ein.

Anleitung: Videos im Wiki einbinden

Lernzielkrontrolle

Beantworten Sie in Ihrem Artikel die Lernzielkontrollfragen.

Literatur

Zitieren Sie nach DIN ISO 690:2013-10.

Anhang

  • Datenblätter
  • Simulink-Modell
  • Originaldateien (PAP, Schaltplan,... )

→ zurück zum Hauptartikel: BSE Angewandte Informatik SoSe24 | Hausarbeit SoSe24

  1. Eigenes Dokument