Тепловизор на связке STM32 и инфракрасного сенсора MLX90640 способен показывать картину температур в реальном времени — при этом стоимость компонентов заметно ниже готового прибора. Основная сложность проекта — не схемотехника, а обработка данных: сенсор выдаёт сырой массив значений, который нужно скомпенсировать, отмасштабировать и превратить в цветное изображение на дисплее.
В этом руководстве разберём выбор ИК-матрицы и микроконтроллера, схему подключения по I2C, структуру прошивки и типичные ошибки начинающих. Материал ориентирован на тех, кто уже держал в руках паяльник и программировал STM32 хотя бы в среде STM32CubeIDE или Arduino IDE.
Как устроен самодельный тепловизор
Принцип работы прост: ИК-сенсор измеряет тепловое излучение объектов в поле зрения и формирует двумерный массив температур. Микроконтроллер считывает этот массив, применяет калибровочные коэффициенты из памяти датчика и интерполирует низкое разрешение до размера экрана. Каждому диапазону температур назначается цвет — так получается привычная «тепловая» картинка.
Ключевое отличие от фотоаппарата — здесь нет оптики в привычном смысле. Сенсор имеет фиксированный угол обзора и низкое разрешение, поэтому детальность ограничена физикой устройства. Даже лучший самодельный тепловизор на MLX90640 не заменит промышленный прибор для точных измерений — но для поиска перегрева на плате, утечек тепла или неисправных компонентов его достаточно.
Частота обновления картинки зависит от возможностей сенсора и скорости шины: у MLX90640 она настраивается программно, у более простого AMG8833 ограничена жёстко. Для комфортного наблюдения желательно получить хотя бы несколько кадров в секунду.
Выбор ИК-сенсора и микроконтроллера
От сенсора зависит почти всё: разрешение, точность, цена и сложность прошивки. Два самых популярных варианта в DIY-сообществе — MLX90640 от Melexis и AMG8833 (Grid-EYE) от Panasonic. Первый даёт бо́льшее разрешение и требует сложной математики компенсации, второй проще в освоении, но картинка грубее.
По микроконтроллеру: для обработки массива температур и вывода на цветной дисплей нужен чип с достаточным объёмом ОЗУ и желательно с аппаратным FPU. Хорошо подходят STM32F103 (для простых вариантов), STM32F401/F411 (оптимум цены и мощности) или STM32F407, если планируется интерполяция высокого порядка.
| Параметр | MLX90640 | AMG8833 |
|---|---|---|
| Встроенное разрешение | 32×24 пикселя | 8×8 пикселей |
| Интерфейс | I2C | I2C |
| Сложность прошивки | Высокая (калибровка по данным EEPROM) | Низкая (готовые значения температуры) |
| Требования к MCU | Желателен FPU и больше RAM | Хватит базового STM32F1 |
| Типичное применение | Детальная картина, поиск точек перегрева | Обучение, простое обнаружение тепла |
⚠️ Внимание: модули с MLX90640 выпускаются в версиях на разное напряжение питания и с разными полями зрения. Перед заказом сверьтесь с datasheet конкретного модуля — подача неверного питания может вывести сенсор из строя, а сенсор стоит заметно дороже остальных компонентов.📊 Какой ИК-сенсор вы планируете использовать?