Einbrecheralarm mit Infrarot-Sensorfeld MLX90642

1. Einleitung

Wie so viele andere Großstadtbewohner wurde auch ich schon Opfer von Fahrraddiebstahl und ähnlichen Eigentumsdelikten, daher war ein naheliegendes Selbstbau-Elektronikprojekt ein Einbrecheralarm für die eigenen vier Wände.

Es gibt eine Unmenge an technischen Lösungen für diesen Anwendungsfall, sei es mit Kameras, Ultraschallsystemen oder auch mit Radar.

Da mich das physikalische Prinzip interessierte, entschied ich mich für den Bau mit einem 32×24 Infrarot-Sensorfeld MLX90642 (im Folgenden Sensor genannt) des Herstellers Melexis welches auf Körperwärme reagiert.

Zur Steuerung nutze ich ein Raspberry Pi Pico W Mikrocontroller Board (im Folgenden kurz Pico W genannt). Somit kann ein Prototyp später auch Bestandteil einer größeren IoT-Infrastruktur für die Hausüberwachung sein.

2. Projekt Einbrecheralarm

2.1 Der Sensor

Im Datenblatt des Sensors, der Stand September 2025 etwas unter 20 Euro kostete, finden sich alle essentiellen Informationen.

Verdrahteter MLX90642 Sensor aus der Nähe
Verdrahteter MLX90642 Sensor aus der Nähe

Bevor mir jedoch klar war wie Messdaten sinnvoll abzugreifen sind verbrachte ich einige Zeit mit Experimenten und Recherche – der Sensor ist in Selbstbauprojekten nicht sehr verbreitet und Codebeispiele waren nicht einfach zu durchdringen, es war für mich damit eine Entwicklung “auf der grünen Wiese”.

Die Auflösung des Sensors scheint üppig: 24 Zeilen und 32 Spalten, was 768 kleine FIR (Fern-Infrarot) Pixel ergibt, jeder einzelne über 2-Byte Adressen ansprechbar. Die Pixel liefern ihrerseits wiederum 2-Byte an Mess- und Rohdaten, welche sich durch einfache Formeln in Temperaturen umrechnen lassen.

Angegeben ist ein darstellbarer Temperaturbereich von -40°C bis 85°C. Die Versorgungsspannung von 3,3V und die Bereitstellung der Daten über den I2C-Bus eignen sich gut für eine Verschaltung mit gängigen Mikrocontrollern.

2.2 Aufbau der Versuchsschaltung

Auch wenn es auf dem unteren Bild vielleicht den Eindruck erweckt, ist es schaltungstechnisch nicht sonderlich kompliziert.

Versuchsaufbau mit allen I2C-Komponenten
Versuchsaufbau mit allen I2C-Komponenten

Der Datenaustausch erfolgt wie oben erwähnt über den I2C-Bus. Neben dem Sensor selbst hängen

  • OLED-Display 0,96 Zoll mit SSD1306 Controller
  • TSL25911 Lichtsensor als Referenz und zur Nachtaktivierung

als I2C-Slaves wie in einer “daisy-chain” an zwei GPIO Pins des Pico W, hier Pin 4 (SDA) und Pin 5 (SCL), was die Vielzahl an Kabeln erklärt (siehe auch die Hinweise zum I2C-Bus in diesem Artikel sowie im Datenblatt Abschnitt 4.2). Der Pico W ist der I2C-Master.

Das kompilierte C-File (eine .elf-Datei) wird über Serial-Wire-Debug (SWD) in den Speicher des Pico W geschrieben. Zum eigentlichen Debuggen sende ich Daten über die serielle Schnittstelle (UART) zum Raspberry Pi, diese Verbindung ist aber für die Funktion selbst nicht erforderlich.

Mit einem DIP-Schalter (im Bild verdeckt) bringe ich ein wenig Flexibilität in den Aufbau (Veränderung Temperaturschwellen), ein Buzzer schlägt Alarm bei Detektierung einer in der Nähe befindlichen Person (nur für Präsentationszwecke).  

2.3 Entwicklung des Programmcodes

Für das OLED-Display und den Lichtsensor kann man auf fertige Bibliotheken und vorgefertigten Code zurückgreifen.

Auf dem Display lassen sich auf unkomplizierte Art und Weise 60 Zeichen darstellen, daher traf ich eine Auswahl darzustellender Pixel 60 aus 768 (4 Reihen à 15 Pixel), zwei Temperaturschwellen sorgen für eine qualitative Darstellung in Hell und Dunkel.

Eine wirkliche Initialisierung des Sensors ist für den Betrieb als einfacher Einbrecheralarm nicht notwendig, Timing und Synchronisationsverhalten sind beim Aufstarten der Schaltung nicht von Bedeutung.

Defaultwerte die sich im Speicher des Sensors befinden sind a priori verwendbar, es wird kontinuierlich mit einer “Refresh Rate” von 8 Hertz gemessen, wobei nur darauf zu achten ist, dass diese zur Taktfrequenz des I2C-Busses passt.

Eine simple Logik stellt fest, ob eine Person länger in der Nähe verweilt, und löst entsprechend das Summen des Buzzers per PWM aus.

Beispielcode findet sich in meinem Github-Repository.

3. Prototyp

Die Versuchsschaltung wird im folgenden Video vorgeführt.

Sinnvollerweise wird ein System in der Praxis an versteckter Position angebracht.

Die Alarmaktivierung erfolgt bei ausgereifteren Protoypen besser lautlos innerhalb der IoT-Infrastruktur als Teil eines umfassenden Überwachungskonzeptes.

4. Verbesserungen und Ausblick

Den Einbrecheralarm IoT-fähig zu machen war von Vornherein eine Hauptüberlegung. Das Raspberry Pi Pico C/C++ SDK stellt alle notwendigen Bibliotheken und Werkzeuge zum Bauen von Webservern bereit.

Auf dem Screenshot ist eine ad-hoc Implementierung veranschaulicht. Zur reinen Demo sind im Webbrowser die Temperaturwerte derselben Pixel angezeigt, die qualitativ auf dem OLED-Display dargestellt sind (siehe weiter oben).

Darstellung von Temperaturdaten im Webbrowser auf dem Smartphone
Darstellung von Temperaturdaten im Webbrowser auf dem Smartphone

Man kann nun natürlich statt einer Auswahl jeden einzelnen Pixel auslesen und damit ein mehr oder minder hochauflösendes thermisches Bild der Umgebung auf dem Smartphone oder Rechner generieren.

Etwas weiter gedacht, kann ein Machine Learning Algorithmus mit Messdaten trainiert werden um festzustellen, ob sich unerlaubt Personen in der Nähe aufhalten. Wichtig dabei ist die Vermeidung von falschem Alarm (“False Positives”).

Für eine Verteilung an einen größeren Benutzerkreis und den produktiven Einsatz sind auf dem Server Sicherheitsmechanismen (SSL/TLS) für die verschlüsselte HTTPS-Verbindung unumgänglich. Dies ist ressourcenintensiv und wird an der Stelle nicht weiter thematisiert.

5. Weiterführende Informationen

5.1 Datenblätter

Pico-series Microcontrollers

MLX90642 Infrarot-Sensorfeld

5.2 Literatur

1. Programming the Raspberry Pi Pico in C – Harry Fairhead, I/O Press; ISBN 9781871962680 (First Edition)

2. Master the Raspberry Pi Pico in C: WiFi with lwIP & mbedtls – Harry Fairhead, I/O Press; ISBN 9781871962819 (First Edition)

5.3 Online-Ressourcen

hackaday.io Projektseite (englisch) Einbrecheralarm