DIY термальная камера на MLX90640 и Raspberry Pi: пошаговое руководство
Идея DIY термокамеры
Коммерческие термокамеры дорогие (от $200, аренда $50/день). Можно собрать дешевле ~$150: снять ИК-фильтр с веб-камеры или использовать специализированный MEMS-сенсор. Здесь — вариант с MLX90640 (32×24 пикселя = 768 точек) + Raspberry Pi 4. Python-интерполяция даёт 320×240 на экране. Можно сделать портативной (экран + батарея) и использовать как камеру наблюдения.
Телефон с термальным изображением
Принцип работы термокамеры
Любой объект выше 0 К излучает ИК (тепловую сигнатуру). Оптика фокусирует излучение на матрицу детекторов (микроболометры или термопары). Каждый пиксель → сигнал → процессор строит цветовую карту температуры (псевдоцвет). Часто совмещают с видимым изображением для наложения.
Термальное изображение
Компоненты
- Raspberry Pi 4 (любая модель с I2C).
- MLX90640 (breakout, I2C, адрес 0x33).
- Итого ~$150 (цены меняются).
Шаги сборки
Шаг 1: Схемотехника (I2C)
Схема подключения MLX90640 к Raspberry Pi
- MLX90640 VDD → 3,3 В (Pin 1/17).
- GND → GND (Pin 6/9/14/20/25/30/34/39).
- SDA → GPIO2 (Pin 3, I2C1 SDA).
- SCL → GPIO3 (Pin 5, I2C1 SCL).
I2C на Pi: пины 3 (SDA) и 5 (SCL) — аппаратные.
Шаг 2: Настройка Raspberry Pi для MLX90640
Библиотека Adafruit CircuitPython MLX90640.
# Установка библиотек sudo pip3 install adafruit-circuitpython-mlx90640 sudo pip3 install adafruit-blinka
Проверка I2C:
sudo i2cdetect -y 1 # Должен появиться 33 (адрес 0x33)
Если нет — включите I2C: sudo raspi-config → Interface Options → I2C → Enable, перезагрузка.
В /boot/config.txt добавьте для скорости 1 Мбит/с:
dtparam=i2c_arm=on dtparam=i2c_arm_baudrate=1000000
Тест чтения температуры (Python IDLE):
import board, busio, adafruit_mlx90640 i2c = busio.I2C(board.SCL, board.SDA, frequency=1000000) mlx = adafruit_mlx90640.MLX90640(i2c) mlx.refresh_rate = adafruit_mlx90640.RefreshRate.REFRESH_2_HZ frame = [0]*768 mlx.getFrame(frame) print(sum(frame)/768) # средняя температура
Шаг 3: Визуализация в реальном времени (imshow)
Быстрый просмотр через matplotlib.pyplot.imshow (интерполяция nearest/bicubic). Код выдаёт тепловую карту 24×32.
Код визуализации
Шаг 4: Интерполяция до 320×240 и плавная анимация (blitting)
scipy.ndimage.zoom— увеличение массива 10× (24→240, 32→320).matplotlibс blitting — обновление только пикселей, даёт ~10–20 FPS на Pi 4.
Код с blitting для плавного видео
Итоги
DIY-термокамера за ~$150 даёт разрешение 320×240 (интерполированное), достаточно для поиска теплачей, перегрева контактов, наблюдения за животными, простой охраны. Не сравнится с профи-$1000 камерами, но задачу решает. Вопросы — пишите!
Промышленные технологии
- Сборка надежного тока зеркального контура: Пошаговое руководство
- DIY Thermocam: от идеи в классе к глобальному продукту
- Создайте идеальную команду внедрения ERP: проверенные стратегии успеха
- Соберите своего робота за один час с набором Otto DIY
- Построение автоматизированного склада: пошаговое руководство по модернизации операций
- DIY комплект LED лампы: соберите энергоэффективный эко-свет
- Как собрать безопасную схему тазера: Полное руководство для самообороны
- Сборка LED-фонарика своими руками: пошаговое руководство по схеме
- Пошаговое руководство по сборке надежного радиорепитера
- DIY-таймер: проектирование, принцип работы и практические применения