The benefits of cost-effective infrared imaging include the ability to measure temperature changes in a patterned way without using high-temperature resolution bolometers. In addition, it allows for remote measurement and processing. However, the full benefit of infrared imaging will not occur until after many years. Therefore, a low-cost, single-board IoT thermal imaging prototype was designed as a first step toward lower-cost, less-complex infrared sensors. The thermal image sensor selected was the 32 x 24 pixel far-infrared array MLX90640. It sends its measurements via I2C to a small microcontroller (ESP32) that then computes and displays the results either on a screen connected directly to the microcontroller or on a web page that uses HTTP requests to get the data.
In this article, four development versions of the sensor are described. Version one used direct color mapping of the temperature values. Version two added temporal exponential smoothing. Version three smoothed both temporally and spatially using a 3x3 filter. Finally, Version four included all features previously mentioned in addition to a minimum span scaler that normalized each frame to have a total span of 100°C, extracted hotspots based upon the standard deviation of temperature across the entire frame, and provided a choice of whether to send the data to a web server remotely, or if the user would like to save the data to a file locally.
Version four demonstrated a minimum temperature value of 30.07 °C, maximum temperature value of 35.77 °C, and temperature value of 34.99 °C which clearly indicated where the hotspot existed. These numbers also demonstrate a 5.7 °C frame span, 4.92 °C hotspot contrast relative to the minimum, and a normalized hotspot value of 0.863. The author's subjective estimate of how stable the system would operate increased from 3 out of ten in Version one to 9 out of ten in Version four. The analytical portion of the article explores the trade-offs that allowed for such improvements. Specifically, the authors discuss how reducing the weighting applied to older time stamps (using a 0.75 weighting) reduces noise by applying a Temporal Smoothing Filter with an ideal RMS reduction value of 0.378 compared to 0.333 if only a simple averaging filter were applied over 3x3 pixels. If the noise were truly independent, then both filters could be combined to achieve an even better noise-reduction factor of 0.126. Additionally, as the size of the averaging filter increases so too does the number of frames required to settle back to within 10 % of a step, providing a demonstrable stability response tradeoff....