Тепловизор на связке STM32 и инфракрасного сенсора MLX90640 способен показывать картину температур в реальном времени — при этом стоимость компонентов заметно ниже готового прибора. Основная сложность проекта — не схемотехника, а обработка данных: сенсор выдаёт сырой массив значений, который нужно скомпенсировать, отмасштабировать и превратить в цветное изображение на дисплее.

В этом руководстве разберём выбор ИК-матрицы и микроконтроллера, схему подключения по I2C, структуру прошивки и типичные ошибки начинающих. Материал ориентирован на тех, кто уже держал в руках паяльник и программировал STM32 хотя бы в среде STM32CubeIDE или Arduino IDE.

Как устроен самодельный тепловизор

Принцип работы прост: ИК-сенсор измеряет тепловое излучение объектов в поле зрения и формирует двумерный массив температур. Микроконтроллер считывает этот массив, применяет калибровочные коэффициенты из памяти датчика и интерполирует низкое разрешение до размера экрана. Каждому диапазону температур назначается цвет — так получается привычная «тепловая» картинка.

Ключевое отличие от фотоаппарата — здесь нет оптики в привычном смысле. Сенсор имеет фиксированный угол обзора и низкое разрешение, поэтому детальность ограничена физикой устройства. Даже лучший самодельный тепловизор на MLX90640 не заменит промышленный прибор для точных измерений — но для поиска перегрева на плате, утечек тепла или неисправных компонентов его достаточно.

Частота обновления картинки зависит от возможностей сенсора и скорости шины: у MLX90640 она настраивается программно, у более простого AMG8833 ограничена жёстко. Для комфортного наблюдения желательно получить хотя бы несколько кадров в секунду.

Выбор ИК-сенсора и микроконтроллера

От сенсора зависит почти всё: разрешение, точность, цена и сложность прошивки. Два самых популярных варианта в DIY-сообществе — MLX90640 от Melexis и AMG8833 (Grid-EYE) от Panasonic. Первый даёт бо́льшее разрешение и требует сложной математики компенсации, второй проще в освоении, но картинка грубее.

По микроконтроллеру: для обработки массива температур и вывода на цветной дисплей нужен чип с достаточным объёмом ОЗУ и желательно с аппаратным FPU. Хорошо подходят STM32F103 (для простых вариантов), STM32F401/F411 (оптимум цены и мощности) или STM32F407, если планируется интерполяция высокого порядка.

ПараметрMLX90640AMG8833
Встроенное разрешение32×24 пикселя8×8 пикселей
ИнтерфейсI2CI2C
Сложность прошивкиВысокая (калибровка по данным EEPROM)Низкая (готовые значения температуры)
Требования к MCUЖелателен FPU и больше RAMХватит базового STM32F1
Типичное применениеДетальная картина, поиск точек перегреваОбучение, простое обнаружение тепла
⚠️ Внимание: модули с MLX90640 выпускаются в версиях на разное напряжение питания и с разными полями зрения. Перед заказом сверьтесь с datasheet конкретного модуля — подача неверного питания может вывести сенсор из строя, а сенсор стоит заметно дороже остальных компонентов.
📊 Какой ИК-сенсор вы планируете использовать?