Разработка корпуса для тепловизора на основе ИК модуля AMG8833 и микроконтроллера ESP8266

Andrey_3D_
Идет загрузка
Загрузка
22.04.2021
2526
11
Применение

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Статья относится к принтерам:
Flyingbear Ghost

1.  Введение

  

   Здравствуйте читатели портала 3DToday!

  Хочу поделиться своим опытом работы по моделированию и 3D печати корпуса для самодельного тепловизора на ИК модуле AMG8833 с разрешением массива датчиков 8х8. Вот его некоторые наиболее значимые характеристики:  

Диапазон точности измерения:
Диапазон измеряемой температуры:
Диапазон рабочей температуры:
Рабочее напряжение питания:
 ± 2.5 °C;        
0... 80 °C;
0… 80 °C;      
3…3.6 В.                         
           

      Поскольку модификации модуля AMG8833 достаточно много, важно, чтобы наш работал по интерфейсу I2C.     

      Сам корпус печатался на 3D принтере Flying Bear Ghost 4s и был сделан около 2-ух месяцев назад, самими наработками я ещё тогда хотел поделиться с вами, но то времени не было, то лень одолевала. Пока все данные не были стерты временем всё-таки решил собрать всё воедино и отобразить в этом посте. Сподвигло меня на данную работу вот эта статья , собственно там можно посмотреть электрическую схему сборки и на которой я останавливаться не буду, поскольку там достаточно подробно всё расписано, единственное хочу обратить ваше внимание – что работать будем по интерфейсу I2C и поэтому комплектующие были подобраны соответствующие. По ходу изучения дела выяснилось, что сама тема стара как динозавр и хвост его растет от сюда и от сюда , с чем всех интересующихся данной темой советую ознакомиться. Для этой работы можно было бы использовать любой из модулей: Teency, Raspberry Pi или Arduino, важна сама суть, а она не изменна, сам решил остаться на ESP8266, он чуть помощнее того же Arduino nano, но всё же послабее Teency, однако ESP8266 будет и существеннее дешевле последнего, в рамках данного проекта, а именно для изготовления тепловизора на модуле AMG8833, вкладывать больше средств чем необходимо считаю не целесообразным. Сам ИК модуль можно сказать самый дешевый из тех, что предоставлены на мировом рынке - в начале 2021 г. он стоил порядка 1800 российских рублей, следующий в ценовой категории MLX90640, у него разрешение уже 32х24, но и цена раз так в 6 выше, на который лишних денег у меня не было, а чтобы пощупать, что такое тепловизор считаю хватит и самого дешевого, хотя признаю хотелось и MLX 😊.

2. Исходные данные

      Что нам потребуется:

- Аккумулятор 3.7v 1000mah 43x25x10mm

- Винты потай 3х20

- Шилд зарядки TZT для Wemos D1 mini  

- Wemos D1 mini

- Резистор на 130 кОм

- Переключатель движковый ПД 9-1

- Модуль AMG 8833 работающий по I2C

- Дисплей SPI TFT LCD 240x320 ILI9341 2.8"

- Круглые латунные гайки M3 (Knurl-вставки)

- Пучок тонких разноцветных (для удобства) проводов

1 шт.;      

5 шт.;

1 шт.;

1 шт.;

1 шт.;      

1 шт.;           

1 шт.;    

1 шт.;

5 шт.;  

1 комплект.            

     Практически всё покупалось на площадке AliExpress за исключением переключателя, но думаю и там можно подобрать аналог, главное знать размеры, а ну и резистор приобрел в ближайшем магазине радиодеталей.     

     Латунные гайки всем я думаю уже известны, по крайней мере тем, кто уже связывался с изготовлением пластиковых корпусов, выглядят они так: 

      Удобны тем, что при помощи нагретого паяльника до температуры плавления пластика можно их впаять в нужные места корпуса для последующего соединения его составных частей.

3. Разработка корпуса   

    3D модель корпуса разрабатывался в свободном ПО Blender 3D. Почему именно Blender, потому что для меня он удобен и меня полностью устраивает. Задача стояла уложить весь имеющийся бутерброд как можно компактнее, а также, чтобы на нём были два отверстия под microUSB – для зарядки и возможности прошивки устройства. Вот что в итоге у меня получилось:          

     Внутренняя компоновка получилась двуярусная: на втором - поместился LCD дисплей, ниже - на пластиковой подставке - остальные комплектующие.

Первый ярус: Второй ярус:      Общая высота корпуса в итоге получилась около 23 мм.

4. 3D Печать и покраска составных частей корпуса.

      Печатал все детали корпуса на 3D принтере FlyingBear Ghost 4s белым пластиком ABS. Покрашена была только верхняя часть акриловой черной краской после грунтовки, нижняя - просто обработана наждачной бумагой. Вот, что в итоге получилось:

      Итоговый вариант:     

     Всё в сборе:

 

5. Прошивка

     В прошивке тоже покопался. Если пройтись по ссылкам, которые я выкладывал в вводной части, то можно заметить, что в основе получения сглаженной картинки на LCD дисплее лежит алгоритм билинейной интерполяции, можно было бы остановиться на выводе данных на дисплей 8х8 пикселей, но мы же хотим для удобства наших глаз расширить видимую область. Была идея использовать алгоритм бикубической интерполяции, но потом от неё отказался, поскольку он требует больших мощностей и, по сути, не даст существенного улучшения в отображении температурной карты. В той прошивке, которая перекочевала от варианта с Teency (ссылка во введении) после финальной интерполяции входных данных исходная матрица преобразуется в массив данных 70х70.  При этом картинка при отображении на экране идет с небольшим притормаживанием. Я поступил иначе, переписал саму функцию интерполяции в соответствии со статьей , т.е. по факту нашел коэффициенты в функции  F(x,y) для единичного квадрата по четырем известным точкам, так мы получаем её значение внутри и на границах этого квадрата, а дальше размножил её через оператор цикла на остальные 63 квадрата. Полученный код был написан сначала в тестовой программе, которая принимала рандомные значения данных в исходной матрице и создавала отдельный текстовый файл с этой матрицей и данными после интерполяции.        Вот частичное отображение вывода программы, зеленным отмечены исходные данные массива 8х8, а то что между ними получено путем билинейной интерполяции.

      На самом устройстве были перебраны варианты для итоговых матриц со значениями: 35x35, 42x42, 70x70 и оставлен средний вариант как наиболее оптимальный, учитывая мощность микроконтроллера ESP8266 и качества получаемой картинки. В прошивке все варианты присутствуют, только у тех которые не используются - закомментированы соответствующие строки.

     Также была изменена функция автоматического масштабирования цветовой шкалы на основе минимальной и максимальной видимой температуры SetTempScale, выведены на экран значения минимальной и максимальной температуры попадающие в область наблюдения (в исходной прошивке что-то выводилось непонятное, полагаю значения АЦП), среднее значение между этой минимальной и максимальной температурой, значения температур соответствующие минимальной и максимальной на температурной шкале.

     На этой картинке: слева – бутылка минералки с холодильника, справа горячая тарелка с супом:

6. Тестирование  

      При тестировании устройства использовал подогреваемый столик своего 3D принтера и термометр у которого датчик вывел на верхнюю поверхность стола. Как показали замеры – точность соответствует действительности с погрешностью порядка 1°C, однако само устройство должно находится на не большом расстоянии от измеряемого объекта – около 15-20 см, при увеличении расстояния погрешность сильно увеличивается, но относительно среднего значения температуры на картинке различимы как более теплые, так и более холодные объекты.

7 Выводы

     Годится ли устройство в профессиональной деятельности для поиска, например, нагреваемых smd компонентов, или мест утечки тепла в комнате и т.д. думаю нет, на любительском уровне – да, п.к. игрушкой по правде его тоже назвать нельзя, ведь данные он передает вполне реальные, другое дело матрица модуля имеет низкое разрешение и за счет этого на больших расстояниях картинка получается сильно расплывчатой, математически можно лишь сгладить огрехи аппаратной части, но не убрать полностью, однако если уменьшить расстояние между наблюдаемым объектом и матрицей, то какую-то первичную визуальную информацию получить можно. Само устройство имеет низкое потребление питания, использую его уже где-то два месяца, а заряд уменьшился только на половину, правда пользуюсь редко, помогает контролировать процесс нагревания стола 3D принтера, если вижу, что температура держится в нужном диапазоне, то можно ставить на печать 😊 . Спасибо за внимание.

     Ссылка на исходник, прошивку и stl файлы.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых постах.

Отписаться от уведомлений вы всегда сможете в профиле автора.

34
Комментарии к статье

Комментарии

23.04.2021 в 08:18
1

Спасибо! Очень интересно было почитать)

23.04.2021 в 10:22
1

Случано затер комент (. В общем повторю, ошибочное название на скрине в тестовой программе, там не BicubInterpolate должно быть, а BiLinInterpolate, в прошивке правильно, много времени прошло в тестовой программе забыл исправить.

Не правильно сказал, что в функции не коэффициенты нахожу, они известны, там я определяю саму функцию в рамках заданных 4-ех точек 

23.04.2021 в 10:53
1

Спасибо!  давно приглядывался к этому сенсору, но  жаба душила на попробовать покупать.

Пару вопросов-

А не пробовали с линзой,  от лазера CO2 вполне себе пропускает ИК, ну и приобрести можно относительно не дорого?

Не могли бы вы заснять какую-нибудь работающую электронику,   материнку в компе например ?

23.04.2021 в 12:24
0

С линзой не пробовал, по факту она ничего не даст, поскольку под разрешением здесь понимается не пиксели на дисплее, а количество ИК датчиков в модуле.  Тут скорее всего имеет смыл от типа модуля, есть разные - одни рассчитаны на дальние объекты, другие, чтобы снимать вблизи, короче говоря фокус разный, вот на первый случай линзы могут дать какую-то пользу. 

Буду дома сниму, но по факту на youtube по запросу amg8833 много видео подобных.

23.04.2021 в 20:46
0

В компе слишком тесно, включил свой преобразователь постоянного напряжения, поделал фотки. Видно по тепловизору, что греется кондер, причём я потом пальцами пощупал,  разница еле уловимая по ощущению с другими компонентами. Одна фотка вблизи, другая - отдалил где-то на 15  см от источника 

23.04.2021 в 20:50
0

А вот БП который, тоже кондер греется

23.04.2021 в 14:26
1

Подскажите почему в устройстве используется и ESP 8266 и Wemos D1 mini? В ссылке, что вы указали используется только Wemos D1 mini.

23.04.2021 в 15:39

Комментарий удалён

23.04.2021 в 15:56
1

Хороший вопрос. Уже и сам призабыл немного. Разобрался. Короче. Тот который Wemos D1 mini у меня не PRO, это тупо шилд зарядки к ESP8266, на алишке я его брал за смешные 83.20 рублей. Сам контроллер сидит в ESP 8266. У автора статьи той версия PRO, она у него с уже с микроконтроллером

23.04.2021 в 15:59
0

Теперь понятно. Спасибо за ответ!

23.04.2021 в 17:06
0

Это даже не Wemos, а какой-то TZT, почему-то сам его так назвал, вылажу сюда картинку, а тот второй который ESP как раз Wemos D1 min Pro v3.0, чтобы не ошиблись, к сожалению статью не исправить, нет кнопки редактировать :(  p.s. написал администратору с просьбой исправить, может заменят 

23.04.2021 в 16:05
0

Да пожалуйста, сам озадачился вашим вопросом, пришлось историю покупок поднимать в магазине ))

Для написания комментариев, пожалуйста, авторизуйтесь.

Читайте в блогах

Вешалок хватит всем

Добрый зубастый пес

Варварский самопал

Шлем Эхо, сериал "Бракованная партия"

Насадка для баллона

Советский [не совсем] стальной монстр КВ-44