0. Outline
The underlying physical principle is radiation. Every warm body radiates heat, and every creature radiates in the infrared spectrum.
The infrared sensor cost about fifteen Euros (September '25). With the other components, the expenses for a prototype amounted to forty-odd Euros.
1. Prototypes
The prototypes are built around a Raspberry Pi Pico W, components are connected thru the I2C bus (see farther below).
I am using a Raspberry Pi for program development, obviously (the actual SW is written in C language) and for checking raw data on the serial port (debugging). A Raspberry Pi is also on the receiving end of thermal data (IoT prototype).
IoT Prototype
Reading web data provided by the Pico W by means of a Python program. An ML algorithm is trained with data, and capable of detecting a person within the angle of the sensor's vision.
non IoT / display Prototype
A first smoke test with the prototype, OLED display is intended for demo purposes. Displayed are 60 FIR pixels (out of 768), because that was easy to implement.
2. I2C bus components
The Raspberry Pi Pico W is, by default, the I2C bus master. Fast mode operates with 400 Kb/s baud rate, what entails an IR array refresh rate of 16 Hz, or lower.
Slaves:
* MLX90642 IR array (the actual sensor)
Optional:
* OLED display 0,96'' w/ SSD1306 controller (merely for experimenting / presentation)
* TSL25911 ambient light sensor (for night activation or error correction if applicable)
The Raspberry Pi is not part of this network. The components are just "daisy-chained" on two GPIO pins of the Pico W (SDA on Pin 4, and SCL on Pin 5), so normally I wouldn't bother with a schematic but I attached one anyway here in the file section.
3. InfraRed (IR) array details
The MLX90642 IR array consists of (32x24=) 768 FIR pixels/sensors, each individual IR pixel delivering 2 Byte of thermal data to be acquired via I2C commands i. e. registers. Simple math formulas have to be applied on the data to get object temperatures.
Temperatures in the range -40°C to 85°C can be measured, values can be acquired continuously or step-wise. I2C clock speed has to be high enough to be able to deal with the array refresh rate to avoid glitches.
Emissivity of the object could be modified too, but that's not necessary in the project context: human skin has an emissivity of approximately 1 what is the default value anyway.
4. IoT
Many options for realizing an IoT device, but as mentioned I am using a Raspberry Pi Pico W and the home WiFi.
Analysis, rendering and display of thermal data on a computer makes more sense than on the IoT-platform itself, or on any attached off-the-shelf display for that matter.
Implementation where all 768 pixels are read and temperatures are just shown in a web browser (just a simple http connection, no certificates implemented).

The thermal data can automatically be imported via MS Excel web interface, or crawled and visualized via Python scripts.
This "webcrawling" is rather cumbersome, there exist faster and more elegant solutions such as MQTT I will not dive into here.
5. Challenges
There are many challenges along the way until I have a useable home intrusion system that does not boast with too many false positives. To mention a few:
* adapting to differing environmental conditions (bright sunlight is a particular challenge)
* recognizing movement
* interpolation, extrapolation and presentation of values
* sensor fusion to get a higher resolution image (two IR arrays), or combining the array with a normal camera
Perceiving and visualizing a moving object in a couple of meters distance outdoors (perpetually changing temperature and light conditions) is the most difficult UseCase and needs a tricky implementation, preferable with an ML program.
Florian Wilhelm Dirnberger
Brenda Armour
Katarina Zvarova