суббота, 24 мая 2025 г.

Тепловизор на AMG88xx модуле тепловой инфракрасной матрице

 Тепловизионные камеры или, по другому, тепловизоры бывают полезными во многих областях т.к. позволяют визуализировать тепловое инфракрасное излучение недоступное человеческому глазу и т.о. как бы увидеть распределение температуры на какой либо поверхности какого либо тела, рассматриваемого в тепловизор. Однако такие камеры, как правило, очень не дешёвые но недорогими бывают модули на основе которых можно сделать тепловизор. Рассмотрим модуль тепловой инфракрасной матрицы AMG8833 это, на момент написания данной статьи, самый дешевый модуль тепловизора. Его матрица состоит из 8 на 8 тепловых датчиков. Т.е. всего 64 штуки. Это не очень много и разрешение данной матрицы не очень велико. Однако же всё таки некоторое подобие изображения можно получить используя данный модуль. Данный модуль можно подключить по I2C к Arduino, ESP32 и другим подобным. Я выбрал ESP32 чтобы можно было использовать смартфон как дисплей. Проще всего написать скетчь будет используя библиотеку. Заходим в менеджер библиотек среды Ардуино и вписываем AMG. Нажимаем кнопку "установка"

а в следующем окне "Install all"
После окончания установки можно открыть пример 
с получением данных пикселей матрицы

В данном примере мы видим инициализацию, 

запуск, 

получение пикселей в матрицу

и вывод данных в последовательный порт.

Если откомпилировать и загрузить скетч
то можно увидеть эти данные в мониторе последовательного порта среды Ардуино.
Чтобы было удобнее пользоваться модулем как тепловизором
можно сделать вывод изображение на экран смартфона в привычном для тепловизоров виде.
Для этого я написал специальный скетч на основе рассмотренного в одном
из предыдущих видео и рассмотренного только что примера.
В начале подключаются заголовочные файлы библиотек,
задается идентификатор и пароль, 
настройки айпи адреса. Далее есть код HTML страницы которая будет отображаться на экране смартфона
На этой странице есть canvas для изображения из камеры,
поле для вывода максимальной и минимальной температуры,
кнопка смены кадра или кнопка "сдлеать снимок",
меню для выбора диапазона температур чтобы видеть отличия в цветах на разных разницах температур
В скрипте есть прием данных в формате json
а также отрисовка разноцветных квадратиков в цикле.
В функции инициализации есть инициализация модуля и WIFI точки доступа
а также выдача клиенту HTML страницы и данных в формате json и в конце запуск сервера. 
В основном цикле сбор данных с модуля и вывод на uart на всякий случай.
Полный код можно скопировать здесь:
 
Результат можно посмотреть на видео:

Адрес биткоин кошелька для поддержки блога - bc1qlhrmmkh77x2lzhqe4lt9qwkglswj64tsqt2l5g