Thermal Imager with Wifi Connection (using Melexis MLX90621 thermopile array)

Basic concept
wifi_ircam: The camera section (microcontroler section omitted)

Thermal imagers or IR cameras are still very expensive. After trying to buy an infrared thermometer the dealer said that the cheapo systems arent stable / reliable. So I bought a 10 EUR single channel IR thermometer chip and combined it with a 3 EUR LCD and a 3 EUR Arduino nano clone to successfully build a well working IR thermometer. Adding a 5 EUR BME280 sensor helped me to build a warning system for wall parts below the dew point by measuring temperature + relative humidity with the BME280, calculate the dew point and compare it with the IR thermometer chup readings.

Trying to find out what the company MELEXIS has in its portfolio I stumbled over their range of thermopile arrays which might be suited to observe temperature distributions and – over time – developments of temperature.

This lead to the idea to build a „poor mans IR camera“ and happily the idea came to a real product after some hard work:

The basic concept is a simple to use thermal imager which can be used as detector for the investigation of thermal properties of „things“, e.g. heat distribution on a smart phone to find the CPU location and it must be able to display the data for a larger audience.

The thermal imager has no display to make it compact, lightweight and to reduce the power consumption.

Due tu the more or less static camera position in most experiments it has no on board battery – the power is supplied via a micro USB port. Data can also be transmitted via the USB port.

To simplify positioning of the camera and to avoid installation of specialized software on the computer the data transmission to the PC is done via WiFi and the visualization is done by a simple web application. The camera acts as access point, the connected PC / Notebook / Tablet / Smartphone shows the data with 1 Hz update rate.


The imager consists of a NodeMCU D-1 Mini (itself based on an ESP8266-12F), the Melexis MLX90621 16×4 thermopile array in its 40°x10°  viewing angle variant.

Connections are straight forward: I2C to Pin 1 and Pin 2 plus GND + 3.3V for the power supply. Due to the recommended supply voltage of 2.6 volts a silicon diode with a voltage drop of ~0.7 volts reduces the microcontrolers 3.3 volts to the recommended 2.6 volts.

2.6 volts are essential to keep the fluctuations  / noise of thermal readings low, it was a dramatical improvement compared to the 3.3 volts which are safe for the chip. My idea is that the reduced power consumption of the MLX90621 lead to reduced temperature variations caused by the integrated electronics.


NodeMCU microcontrolers allow the use of a web server which is accessible by the Access Point the NodeMCU provides (other modes are possible).
INFO: Only one simultanous access of a PC/mobile phone is allowed!
wifi_ircam Web interface / display page: The image shows a 10W LED ceiling lamp. To the right a colder ceiling part can be seen: It is close to the outer wall.


The current version of the software consists of three web pages which give you access for (1) simple configuration options, (2) displaying the data and (3) run a simple calibration to homogenize the visualisation.

(1) Config:

  • Choose Colormap (cold to warm)
    – blue … red: easy to understand, safe for colorblind people
    – blue … green … red: better readable for complex temperature distributions
  • Choose Manual / Auto mode
    – Manual: The lower and upper limit of the temperature for the mapping can be set hand
    – Auto: The system uses the minimum and maximum temperature readings of the array, decreases/increases the range by one degree
    Switching from manual to auto keeps the last automatically computed temperature limits.
  • Camera / mirror mode
    – camera mode: like standard cameras
    – mirror mode: People e.g. acting in front of the imager can see the temperature patterns of their face/body like looking into a mirror

(2) Display:

Does what you expect: Shows an array of 16×4 colored patches with the temperature reading in the middle of the square shaped patches.

The status area shows additional information (config settings, etc.).

Two sliders allow setting temperature limits without switching to the Config page.

(3) Calibration:

Based on the averaged temperature reading of 5 / 10 / 20 / 50 „shots“ the pedestals can be measured to homogenize the sensor values. The imager has to be directed on an object with very good
homogenity of temperatures.

Placing the imager directly against e.g. a building wall (away from a heating or window) works well.


The housing consists of 5 parts:

  • Back cap holding the NodeMCU microcontroler
  • Housing part for the sensor with two small openings for the cables to the microcontroler. The sensor is thermally decoupled by (1) a small bridge like connection to the outer housing wall and small fins holding the sensor. (2) the pins of the sensor have their original length. (3) the sensor is insulated against the microcontroler by a heat shield consisting of alternating layers of foam like insulator sheets and metallized mylar foil.
  • Thermal side shield for the sensor insulated like (3) above + enclosed by an RF shield made from aluminum foil, grounded.
  • Front housing cap to protect the thermal shields and the sensor, it has a bajonett for the protection cap and other optional accessory (e.g. a LED to mark the viewing field).
  • Protection cap for the sensor.

Michael Bockhorst

Insert math as
Additional settings
Formula color
Text color
Type math using LaTeX
Nothing to preview