Делаем небюджетный тепловизор своими руками

Кто из посмотревших фильм «Хищник» не мечтал обладать термальным зрением как инопланетный охотник? В наше время это не сложно, но достаточно дорого: не каждый может позволить себе купить тепловизор, хотя в последнее десятилетие, с развитием технологий, они стали гораздо доступнее. Одним из многих проектов на ардуино, которым я был очарован и вовлечен в удивительный мир микроконтроллеров, был как раз тепловизор, если его можно так назвать. Устройство на основе однопиксельного бесконтактного датчика температуры и системы механической развертки хотя меня и сильно впечатлило, но я так и не повторил его, так как, честно сказать, скорость его работы совсем не впечатляла. К слову сказать, датчик MLX90614, использованный в том проекте, достаточно дорогой (по стоимости за пиксель) по сравнению с теми, речь о которых пойдет дальше.

Disclaimer
Топик должен был называться «делаем бюджетный тепловизор», но за то время, пока у меня не доходили до него руки, ситуация изменилась и он стал весьма небюджетным. О текущих ценах на комплектующие в конце статьи.


Тема тепловизоров меня захватила и я всегда с интересом следил за новостями в этой области электроники. Очевидно, чтобы не использовать систему механической развертки нужен датчик большего разрешения, я составил для себя список таких датчиков, но многие из них были недоступны для покупки. Еще недавно на просторах интернета можно было встретить истории, что продавец отказывался отправлять подобные датчики в нашу страну, считая их устройством двойного назначения. Когда же в свободной продаже на aliexpress появился модуль с датчиком AMG8833, а в сети появились проекты с его использованием, я не смог противостоять желанию получить его, хотя стоимость и превышала почти вдвое ежемесячный лимит, отведенный мною на покупки. Датчик был приобретен за 37$ (сейчас его можно купить за 28$). Конечно разрешение у сенсора очень низкое для какого бы то ни было практического использования в качестве тепловизора, но его достаточно, чтобы получить массу восторга, впервые взглянув на мир «глазами хищника».
«селфи» снятое на AMG8833

Вдоволь поэкспериментировав с AMG8833, я отложил его для будущего использования и стал думать о большем. Ведь все на том же aliexpress в продаже появились модули на базе сенсора MLX90640 с разрешением 32*24 и ценой в 60-70$. С таким разрешением возможно использовать его для каких то практических целей, ну и конечно поиграть серьезнее.

Особенности MLX90640:
— Диапазон рабочих температур от -40 до 85 ° C, позволяет использовать в сложных промышленных условиях
— Может измерять температуру объекта от -40 до 300 ° C
— Типичная точность измерения температуры целевого объекта 1 °, точность по всей шкале измерения
— NETD всего 0,1K RMS при частоте обновления 1 Гц
— Не требуется повторная калибровка для конкретных температурных требований, что обеспечивает большее удобство и снижает эксплуатационные расходы
— Два варианта поля зрения (FoV): стандартное (MLX90640BAB) 55 ° x35 ° и широкоугольное (MLX90640BAA) 110 ° x75 ° Матрица с широкоугольным полем зрения обладает меньшим шумом и большей точностью измерения.
— 4-контактный корпус TO39 с необходимой оптикой
— Цифровой интерфейс, совместимый с I²C, упрощающий интеграцию

Отдельно датчик можно было приобрести примерно за 55-60$ в зависимости от версии. Но мне интереснее модули с обвязкой. Есть несколько вариантов таких модулей:
1. Модули, включающие сам сенсор и его обвязку для питания и работы с микроконтроллером по шине I2C.


2. Модули для платформы M5STACK/M5STICK, такие модули содержат необходимую обвязку для питания сенсора и работы с микроконтроллером по шине I2C.

3. Модули с микроконтроллером, реализующим UART интерфейс. Для работы с таким модулем можно обойтись без внешнего микроконтроллера, подключив его к ПК через USB-UART конвертер, я встречал 2 варианта таких модулей. Программное обеспечение для ПК позволяет визуализировать исходное тепловое изображение с сенсора или с программной интерполяцией.

4. Следующим вариантом развития модулей с микроконтроллером являются модули, в которых реализован USB интерфейс и которые можно напрямую подключать к ПК, при этом сохранен UART интерфейс и доступна шина I2C самого сенсора. Для доступа к сенсору по I2C нужно замкнуть конденсатор сброса (который еще нужно найти).

5. Наконец последним вариантом является модуль Red Eye Camera, в котором также реализован USB интерфейс, но, насколько я понял, нет возможности получить сырые данные с сенсора по I2C, при этом доступен UART. Судя по картинкам на странице товара для данного модуля есть ПО для Android.

Мне хотелось иметь возможность для взаимодействия с сенсором по I2C, поэтому я выбрал модуль под номером 4, в котором есть эта возможность, а также реализован USB интерфейс. Со всевозможными скидками на распродаже 11.11.2019 г. этот модуль был приобретен за 54,31$.

Такой довольно дорогой модуль поставлялся в упаковке без какой бы то ни было защиты, к счастью не пострадал. Размеры модуля 28*15 мм.

К сожалению, не удалось найти никакой другой информации о данном модуле кроме представленной на странице товара: ни схемы, ни ПО. На модуле указано его название, версия и дата — «mlx_module v3.1.0 20190608. Но поиск по данному обозначению не дал никаких результатов. У всех продавцов одни и те же фото и описание товара.

Я не терял надежды, что драйвера под Windows найдутся автоматически, но чуда не произошло. При подключении в диспетчере устройств появилось новое неизвестное устройство с com-портом, после поиска драйверов оно было идентифицировано как трекбол, но драйвера не были правильно установлены. При этом в системе еще появляется com-порт. Я попытался использовать ПО от аналогичного модуля без usb, но безрезультатно: видимо протоколы обмена данными через UART у этих модулей отличаются. При последующих подключениях оно вообще не обнаруживалось.

Остался второй вариант использования данного модуля – подключение непосредственно к сенсору по шине I2C. Для этого, согласно информации на странице товара, необходимо замкнуть конденсатор сброса. Осталось найти его на плате среди десятка конденсаторов.

На плате установлены следующие компоненты:
— микроконтроллер STM32F301K6;
— USB-UART конвертер CH340;
— стабилизатор напряжения;
— кварцевый резонатор;
— резисторы и конденсаторы.

Вид сверху.

Вид снизу.

Чтобы найти нужный конденсатор, пришлось изучить даташит на микроконтроллер STM32F301K6 и прозвонить саму плату. Конденсатор, подключенный к пину reset микроконтроллера STM32, выделен на фотографии красным. Потребовалась довольно тонкая работа, чтобы замкнуть его с помощью кусочка провода МГТФ.

Я проверил несколько примеров работы сенсора с ESP32. Для итоговой реализации я использовал в качестве управляющей платформы TTGO T-Watch, о которой можно узнать из моих обзоров: раз, два. Для подключения сенсора к T-Watch я использовал прото-шилд для Wemos D1 mini и угловые штырьковые гребенки. Получилось довольно компактно, конечно, корпус бы не помешал. Взяв за основу данный проект, я переделал его под TTGO T-Watch, а также добавил интерполяцию и возможность сохранения фотографий на microSD.
Пример сохраненных фото с «тепловизора».


Ещё несколько примеров фотографий





Фотографии сделаны до реализации интерполяции в разрешении 32*24 пикселей. А на видео уже пример работы с интерполяцией, с разрешением 64*48. Частота кадров составляет всего 4 кадра в секунду она зависит от частоты опроса датчика и задается программно, частоту можно увеличить до 32 при этом увеличится погрешность измерений.


Дополнительная информация
Я так же проверил работу сенсора MLX90640 c OpenMV


Несмотря на столь небольшое разрешение сенсора MLX90640 его вполне можно использовать для множества целей:
— поиск утечек тепла в доме, при утеплении лоджии проверено на личном опыте;
— поиск греющихся элементов на плате, конечно самые мелкие детали будут неразличимы, но тем не менее такой инструмент может быть полезен;
— контроль присутствия людей, там где нет возможности использовать видеокамеру, человека можно заметить с расстояния порядка 10 м;
— пожарная безопасность;

Функции и улучшения, которые я хотел бы добавить к «тепловизору»:
— переделать проект под большой дисплей с тачскрином;
— добавить поддержку LVGL и сделать красивый дизайн с меню;
— увеличить разрешение сохраняемых изображений;
— добавить возможность потоковой трансляции изображения по Wi-Fi.

Я хочу также реализовать следующие проекты на основе сенсора MLX9040:
— Мобильный тепловизор на основе ESP32.
— Мобильный тепловизор для андроид.
— Радиоуправляемый робот с термальным зрением.
— Камера наблюдения с режимом термальной съемки.
— Тепловизор с детектором лиц на базе kendryte k210.
— Шлем виртуальной реальности или очки с термокамерой.

P.S.
Ссылки
Скетч для Arduino IDE
Реализация интерполяции по Гауссу
Пример генерации файла *bmp на ESP32

P.S.S.
В следствие пандемии коронавируса цены на сенсор MLX90640 взлетели в несколько раз. На Aliexpress можно найти модуль примерно за 200$. В конце 2019 г. компания Sipeed обещала выпустить в скором времени модуль термокамеры с разрешением 32*32 на базе сенсора от Heimann за ~ 50$, но опять же из-за пандемии этим обещаниям не суждено было сбыться. Надеюсь в будущем ситуация улучшится.
Добавить в избранное +156 +234
+
avatar
  • iG0Lka
  • 18 декабря 2020, 16:06
+52
надо было начинать с цен.
за 200$ кмк можно купить готовое устройство.
+
avatar
  • rx3apf
  • 18 декабря 2020, 16:12
+4
Модули да, что-то безумно дорогие. А вот функционально законченный «тепловизор» на MLX90640 — в районе $120. Тоже не слишком дешево (при таких характеристиках), но хоть что-то…
+
avatar
  • oleg235
  • 18 декабря 2020, 16:13
+24
поиск греющихся элементов на плате, конечно самые мелкие детали будут неразличимы, но тем не менее такой инструмент может быть полезен
Для поиска греющихся элементов на плате нужно хотя бы 160х240, а это просто игрушка.
+
avatar
  • u3712
  • 18 декабря 2020, 16:26
+1
Пользоваться можно, но вот отождествить пробитый конденсатор 0603 уже вряд-ли получится.
+
avatar
0
отождествить пробитый конденсатор 0603 уже вряд-ли получится
а в чем проблема? на seek thermal xr с макролинзой отлично смд видно
+
avatar
  • SKP
  • 19 декабря 2020, 08:11
+1
проблема в том, что вы не в ту ветку запостили мнение :) Тут как бы не про seek thermal xr
+
avatar
+3
я так понял, это замечание было на то, что не хватает 160х240 для 0603
+
avatar
  • stasv
  • 19 декабря 2020, 11:07
+2
Приблизительно определить место, точное позиционирование микроорганизма — чеком с термопечатью.
+
avatar
+1
Для поиска греющихся элементов на плате в основном достаточно пальца… Ну если не лезть в первичку, хотя и там нормально, если за батарею отопления не хвататься второй рукой для поддержки тельца…
+
avatar
+6
недостаточно. Представьте утечку в 0,2А на bga чипе размером в пару квадратных сантиметров. При таком токе и таком теплоотводе на текстлит- пальцем Вы разницу не прочувствуете. И даже кончиком носа не различите разницу в 5 градусов. По идее тепловизор эту разницу должен показать
+
avatar
  • infino
  • 19 декабря 2020, 04:29
+3
Это если вы ремонтом утюгов занимаетесь. В ремонт современной электроники, пальца недостаточно.
+
avatar
  • discar
  • 20 декабря 2020, 18:10
+1
Я утечку в 1.5вольта на 3 ампера пальцем нащупать не могу, а вы говорите…
+
avatar
  • SC0RPI0N
  • 18 декабря 2020, 16:15
+10
тоже давно привлекал тепловизор. хорошо что на работе купили тепловизор Bosch GTC 400, теперь можно брать себе попользоваться в случае необходимости
+
avatar
  • sswa
  • 18 декабря 2020, 16:28
+1
Тоже на работе парочка таких Bosch GTC 400 имеется. Отличная вещь. Единственно, иногда не хватает верхней измеряемой температуры.
+
avatar
  • Casioman
  • 18 декабря 2020, 17:45
+5
www.bosch-professional.com/ru/ru/products/gtc-400-c-0601083101
глянул видос на сайте, будто в DOOM 2 или другой шутер играешь)
+
avatar
  • Alaket
  • 18 декабря 2020, 18:44
+58
Насколько я понял из обзоров различных тепловизоров, основное их применение — фотографировать котов :)
+
avatar
  • SC0RPI0N
  • 18 декабря 2020, 19:00
+25
это обязательный ритуал, иначе тепловизор будет плохо работать)
+
avatar
  • ksiman
  • 19 декабря 2020, 10:54
+12
Последовательность действий: сфотать кота, жену, вид из окна, положить на дальнюю полку…
+
avatar
  • DiSlord
  • 19 декабря 2020, 11:57
+3
Покупал себе SeekThermal Compact (сенсор 206x156) стоил в районе 200$ два года назад (на али с купонами гдето 13к рублей вышло).

Примеры фото:





Использую для ремонта (не всегда, но находит применение), на последнем фото плата NanoVNA видно что греется процессор, диод на входе, и генератор
+
avatar
  • sim31r
  • 20 декабря 2020, 02:47
+1
Плохой обзор, почему вместо котика традиционного что-то ушастое? ))
+
avatar
  • Vazhnov
  • 19 декабря 2020, 13:44
0
Мы тут с женой не можем определиться — это пёсик или котик на фото?
+
avatar
  • Nuts_
  • 19 декабря 2020, 18:38
0
это кролик
?
+
avatar
  • SC0RPI0N
  • 19 декабря 2020, 23:26
+2
котий
+
avatar
  • Vazhnov
  • 19 декабря 2020, 23:45
0
Котейка — красавчик! Спасибо! Жена передаёт «чмоки-чмоки!»
+
avatar
  • ASPtr
  • 18 декабря 2020, 16:29
+57
Тоже в свое время переболел тепловизоростроением. Хотелось, аж «кюшать не мог», а сейчас вроде и пользуюсь совсем редко. Но сам процесс создания/программирования был увлекательным — оно того стоило )) «Отпустило», к сожалению, раньше, чем доделал все программные рюшечки, но хоть корпус успел наваять.))
MLX90640 брал, конечно, по докризисным ценам. Контроллер — ESP32. Корпус на 3D принтере.

+
avatar
  • Nuts_
  • 18 декабря 2020, 16:31
-11
+
avatar
  • rx3apf
  • 18 декабря 2020, 16:41
+1
Обычно CH340 в другом корпусе.
Их много разных. В частности, CH340E в MSOP10.
+
avatar
  • u3712
  • 18 декабря 2020, 16:42
+1
В STM32F301K6 нет USB, PA11/12 пустые. Но, с другой стороны, мы знаем kудесников из China, клепающих ST-Link'и из F101…
+
avatar
  • Lucky13
  • 18 декабря 2020, 16:53
+3
я что то не понимаю — где здесь этот самый CH340?
эта маленькая квадратная 10 ногая?
Да, именно она.
Cам STM32 тут не вараинт — там нет usb.
Я, наверное, неправильно выразился, я имел ввиду встроенный USB-UART, хотя при покупке по описанию товара я думал, что плата определится как USB-устройство.
Ну а корочением reset был приведжен в безраличное соcтояние контроллер stm32.
Именно это мне и было нужно, что бы самостоятельно управлять сенсором.
Чтобы найти этот пин достаточно было скачать даташит на STM32F301K6 и отследить дорожку.
Именно так я и сделал.
+
avatar
  • Kabron
  • 18 декабря 2020, 17:00
0
1. Без совмещения картинки от обычной камеры все это лабуда.
2. С семейством ESP это сделать не удастся из за конфликта пинов.
3. А вот с OpenMV вполне работает, ибо там есть поддержка MLX и готовые примеры.
4. У Kendryte кривой I2C и MLX не подхватывается.
+
avatar
  • ANK1965
  • 18 декабря 2020, 17:05
+7
1 — не лабуда. Даже без камеры позволяет легко найти источник утечки тепла в доме.
2 — у ESP и быстродействия не хватит для обработки термограммы и видео, разве что видео тоже будет 32х24 :).
+
avatar
  • Kabron
  • 18 декабря 2020, 19:01
+2
2 — у ESP и быстродействия не хватит для обработки термограммы и видео, разве что видео тоже будет 32х24 :)
Быстродействия хватает на 10 FPS при 240х180 если использовать TFT_eSPI.
+
avatar
  • Lucky13
  • 18 декабря 2020, 17:10
0
А вот с OpenMV вполне работает, ибо там есть поддержка MLX и готовые примеры.
Но выглядит совмещение некорректно, т.к. у MLX90640 и OpenMV разные углы обзора и к тому же при выводе на дисплей нарушаются пропорции изображения
У Kendryte кривой I2C и MLX не подхватывается.
У kendryte есть пример работы с аналогичным модулем на MLX90640 по UART, но к сожалению модуль отличается от моего и у них разные протоколы, поэтому не получилось проверить этот пример.
+
avatar
  • Kabron
  • 18 декабря 2020, 18:59
0
Но выглядит совмещение некорректно, т.к. у MLX90640 и OpenMV разные углы обзора и к тому же при выводе на дисплей нарушаются пропорции изображения
А вы лично видели?
+
avatar
  • Lucky13
  • 20 декабря 2020, 11:17
0
В обзоре под спойлером есть видео с демонстрацией.
+
avatar
  • jtag
  • 18 декабря 2020, 18:39
+1
Я себе заказал готовый тепловизор на этом датчике, тот который бутербродом из платок.
Ну, согласен, качество хреновенькое, совмещения с обычной картинкой нет, но вот для всякого быстренько посмотреть где что сильно греется, а не пальцем тыкать — оно вполне пригодно за свою-то цену.
+
avatar
+3
У меня Seek Thermal с уже вполне приличным разрешением, но без совмещения — и это не лабуда. Найти нагревающийся элемент на плате, даже если он 0603 — труда не составляет. Если точная идентификация сразу затруднена — можно поднести предмет. Искать утечки тепла в окнах, смотреть нагрев батарей отопления — тоже прекрасно можно без совмещения.

Да, может совмещение бы не помешало с эстетической точки зрения, но на практическое использование оно не влияет.
+
avatar
  • infino
  • 19 декабря 2020, 04:32
+1
Каким разрешением?
+
avatar
0
У меня CompactXR — 206х156.
+
avatar
  • ANK1965
  • 18 декабря 2020, 17:03
+3
www.youtube.com/watch?v=7j6DSND6Ass
Проект с большИм дисплеем.
+
avatar
  • Zardek
  • 18 декабря 2020, 18:05
+4
С тепловизорами лучше будет играться после того, как пандемия пройдёт. Сейчас цены неадекватны.
+
avatar
  • sdfpro
  • 18 декабря 2020, 18:16
+1
Лет 6 назад чел делал похожий проект, тогда это было актуально, сейчас уже не сообо…
+
avatar
  • goblen
  • 18 декабря 2020, 19:05
+1
А что насчёт фокусировки? Одинаково ли он будет отображать картинку с расстояния 1 метр и, допустим, метров 20?
+
avatar
  • SiberK
  • 18 декабря 2020, 19:12
+9
Два-три года назад и я тоже интересовался этой темой :)
Сделал тепловизор сначала на AMG8833, потом раззорился на MLX90640.
Схема здесь: forum.easyelectronics.ru/viewtopic.php?f=16&t=35969
Сенсор опрашивал микроконтроллером STM32F103CB, отображал на андроид смартфоне(планшете).
С наложением картинки от видеокамеры.
Программки писал сам :), правда, на основе примеров от адафруктов.
Да, искать греющуюся микросхему на плате и тепловые аномалии так гораздо удобнее.
Здесь: www.youtube.com/playlist?list=PLsrCW-R5z-XtUQLkNb1LJ0M1bI5LFiNrK несколько моих видеороликов
+
avatar
  • Vazhnov
  • 19 декабря 2020, 14:07
0
А нет желания опубликовать все эти труды где-нибудь на gitlab/github/notabug/sourcehut под свободной лицензией?
+
avatar
  • SiberK
  • 20 декабря 2020, 06:32
+1
Лениво оформлять в что-то усвояемое. :(
Если не оформить, поймут лишь те кто и сам такое напишет. :) И они вряд-ли будут вникать.
+
avatar
  • valius
  • 18 декабря 2020, 19:57
+2
Неужели так подорожало? Посмотрел историю, в прошлом году на али купил китайский собранный девайс на MLX90640 за 62,31 евро с доставкой
***
Если интересно, могу показать что внутри его. Хотя в сети полно разборов. Ищется по DANIU Portable HY-18 MLX90640
+
avatar
  • ALexus
  • 18 декабря 2020, 20:05
0
… для радио ремонта, с мелкими смд пойдет, не пробовали?
+
avatar
  • valius
  • 18 декабря 2020, 20:12
+3
не, крупное показывает правильно. Если мелкое очень или не видит или трудно разобраться в каком точно месте
Обзор от NICKBEL
+
avatar
  • valius
  • 18 декабря 2020, 20:55
-1
+
avatar
  • Konokrad
  • 18 декабря 2020, 22:27
+1
получается, что у меня SEEK Thermal Compact Pro очень даже выгодный вариант как по формфактору, так и по разрешению.
Битую смд керамику мелкую видно
+
avatar
  • Doctor74
  • 19 декабря 2020, 07:21
0
очень даже выгодный вариант как по формфактору, так и по разрешению.
Ну если не считать цену и как мне кажется использования дополнительно смартфона и приложения. ИМХО
+
avatar
  • Konokrad
  • 19 декабря 2020, 16:26
0
ИМХО, отдельно девайс как минус, так и плюс.
Удобнее с контентом работать. можно передать соседу попользоваться. маленький экран планшетом превращается в большой.
Есть софт для ББ, хоть на ноут хоть на стационарник цепляй. При ремонте рядом повесил и исследуй.
+
avatar
  • Doctor74
  • 19 декабря 2020, 17:49
+1
можно передать соседу попользоваться
И що, я не твой сосед ?! :)))))))
+
avatar
  • kven
  • 18 декабря 2020, 23:09
+1
если только очень руки чешутся, ибо за $100-200 можно купить Flir One на ибее с рук.
+
avatar
  • ALexus
  • 19 декабря 2020, 02:25
0
… а у них какой либо износ сенсора идет?
+
avatar
  • foto1965
  • 19 декабря 2020, 09:21
0
конечно, от протирки тряпочкой изнашивается
+
avatar
  • kven
  • 19 декабря 2020, 09:22
0
не слышал о таком
+
avatar
+1
камера SONY 365 или 355 решает все проблемы, инфракрасное видео с доп подсветкой, в полной темноте, видно всё, Провда в ЧБ изображении лучше в чем в цветном. Антиквариат, пишет на кассету в цифре, но глубина разрешения видоискателе! Куда там ночным прицелам. Тяжёлая, килограмм весит.
+
avatar
0
Можно подробнее, что за модель, полное название?
+
avatar
0
Как-то видел в работе, профессиональную для телека, Sony. Темень была кромешная. Чувак включил и я офигел. На мониторе рядом картинка как будто только закат начался.
+
avatar
  • AFCrio
  • 20 декабря 2020, 00:17
+1
У SONY есть камеры с германиевой оптикой? :) Снять ик фиильтр с камеры и загнать ее принудительно в ч/б режим не проблема, но это и близко к тепловизору не стояло.
+
avatar
  • kirich
  • 20 декабря 2020, 00:46
+2
камера SONY 365 или 355 решает все проблемы, инфракрасное видео с доп подсветкой, в полной темноте, видно всё
Вы не путаете камеру с ИК подсветкой и тепловизор? Это как бы совсем разные устройства
+
avatar
  • timeon
  • 19 декабря 2020, 18:12
0
Интересная тема. На сколько понимаю сенсор болометрический. Его нельзя направлять на Солнце даже в выключенном состоянии. Сразу появится много битых пикселей или вообще помрет
+
avatar
  • andmaksi
  • 19 декабря 2020, 22:07
+2
Blackview bv 9800 pro и 9900 pro, идёт со встроенным тепловизором и есть возможность посмотреть фото из галереи в тепловизионном и обычном режиме в совмещении. Плюс смартфон броневик с неплохими параметрами. Использую в ремонте холодильников и как повседневный смартфон.
+
avatar
  • Konokrad
  • 20 декабря 2020, 00:38
+1
Caterpillar лет 5 назад делали свой броневик с Flir
там даже приложение было для подготовки отчетов по обследованию объектов. Знакомый инженер пользовался при выезде к заказчику на обследование электроустановок. Говорил, что отчет принимается как документ, типа там тепловизор сертифицирован для этого
+
avatar
0
Угу, занакомо такой CAT на ведроиде. Говорит $1000 отдал.