Бесконтактный термометр на Arduino Nano
Часто нужно оценить температуру какого-то объекта (микросхема, блок питания, лампа, горячая вода, тело и т.д.). Для этого есть замечательный прибор – ИК бесконтактный термометр. Сейчас его часто можно встретить в руках контролеров, измеряющих температуру тела на входе в общественные места.
А сложно ли сделать такой термометр в домашних условиях? И каковы будут его эксплуатационные характеристики?
В сети встречаются разные конструкции. Одни – на уровне макета (как использовать ИК-датчик), другие не очень практичные или громоздкие, третьи – дорогие по комплектующим… В общем подходящего проекта для себя не нашел.
Решил сделать свой вариант.
Исходил из наличия под рукой основных комплектующих:
— микроконтроллер Arduino Nano,
— датчик GY-906 MLX90614,
— цифровой дисплей TM1637.
Прибор должен быть компактный, работать автономно и выполнять следующие функции:
— дистанционное измерение температуры;
— настройка коэффициента компенсации (необходимость подстройки выяснилась уже в процессе работы над прибором).
Дополнительные требования:
— подсветка точки измерения температуры лазерным диодом.
Материалы и инструменты
Итак, нам понадобятся следующие инструменты и материалы:
— 3D принтер с пластиком (тип и цвет любой – на Ваш вкус);
— 3 винтика M2 x 8-10мм с гайками;
— отвертка под винтики;
— наждачная бумага, надфиль;
— клеевой пистолет;
— электронные компоненты (ссылки приведены для информации):
— Arduino Nano – 1 шт. (ссылка);
— цифровой дисплей TM1637 (ссылка) – 1 шт.;
— плата с датчиком GY-906 MLX90614 (ссылка) – 1 шт;
— лазерный диод 3-5V (ссылка) – 1 шт;
— кнопка для диода (ссылка) – 1 шт;
— кнопка для настройки (ссылка) — 1 шт.;
— микропереключатель (ссылка) – 1 шт;
— батарея типа КРОНА с контактным разъемом – 1 шт;
Описание прибора и порядка его сборки
Прибор имеет ИК-датчик для замера температуры объекта. Лазерный диод указывает предполагаемое размещение объекта. Дисплей показывает температуру объекта. Из-за отсутствия возможности у моего дисплея TM1637 показывать точку в разряде (есть только 4 семисегментных разряда), для отображения дробных значений на дисплее нанесена метка перед крайним правым разрядом, указывающая на то, что в последнем разряде десятичные значения. Для этого дробные значения температуры (точность 1 знак после запятой) перед выводом умножаются на 10. При использовании дисплея с точками у разрядов необходимо внести соответствующие изменения в скетч.
Кнопка настройки предназначена для переключения дисплея в режим ввода коэффициента компенсации излучения. Так как разные материалы с разной интенсивностью излучают ИК лучи, то это необходимо учитывать при расчете температуры объекта. Коэффициент может изменяться в диапазоне от 0.10 до 1.00. Кнопка нажатием с удержанием переводит дисплей в режим настройки коэффициента. При этом дисплей (с учетом последнего дробного разряда) показывает текущее значение, умноженное на 1000 (т.е. масштабирует с диапазона 0.10 — 1.00 в диапазон от 10.0 до 100.0).
Переключение в режим настройки и обратно осуществляется нажатием и удержанием кнопки.
В режиме настройки коэффициента компенсации однократное нажатие кнопки уменьшает значение коэффициента на 5 (реальный коэффициент уменьшается на 0.05), а двойное нажатие – увеличивает на 5 (реальный коэффициент увеличивается на 0.05). Установить более мелкий шаг, например, 1, можно в скетче.
Установленное новое значение коэффициента сохраняется в памяти датчика.
На передней стенке корпуса расположен датчик и лазерный диод.
Кнопка на ручке включает лазерный диод.
Самоделка состоит из двух частей: корпус термометра и электронная начинка. Сначала печатается корпус термометра. Далее в корпус устанавливаются и крепятся электронные компоненты. Прибор собирается.
Итак, вперед!
Шаг первый: печать корпуса на 3D принтере
Для печати на 3D принтере нам понадобится модель, которая состоит из следующих деталей:
— короб корпуса;
— крышка короба;
— ручка;
— крышка батарейного отсека ручки.
Модель можно скачать по ссылке: stl_files.rar [204.14 Kb] (скачиваний: 7)
Печатать любым пластиком при стандартном или высоком качестве. Корпус проектировался под имеющиеся комплектующие. При наличии других типов электронных компонентов (ардуино, дисплей, кнопки) может потребоваться изменить размеры корпуса или отверстий.
В верхней части корпуса (короб) размещается дисплей, датчик, лазерный диод, выключатель и кнопка настройки.
В ручке прибора располагается батарея. Конструкция ручки позволяет вставлять в нее КРОНУ или 1-2 батареи типа NCR18650B.
При печати короба корпуса необходимо включить режим поддержек для выреза под дисплей. Остальные элементы, включая отверстия, можно печатать без поддержек.
При печати крышки короба необходимо использовать режим «брим» — во избежание отслоения детали от стола принтера при печати.
Ручка печатается «вверх ногами» с включением поддержки в области кнопки и в области крышки отсека для батареи.
В результате печати мы получаем 4 детали.
Из-за усадки пластика может потребоваться подточить надфилем выступы крышки. Крышка должна плотно вставлялась в короб и удерживаться в нем.
Шаг второй: обработка и подгонка деталей
Если печать была на подложке или в режиме «брим», то необходимо оторвать подложку и брим и обработать нижнюю часть основания наждачной бумагой. Также при необходимости наждачкой нужно убрать все шероховатости, возникшие в результате печати как снаружи, так и внутри деталей.
В связи с тем, что у разных пластиков разный коэффициент усадки, то может потребоваться подгонка отверстий под винтики шилом или ручной дрелью со сверлом 2 мм (чтобы развальцевать отверстия).
Шаг третий: сборка электронных компонентов
Для соединения электронных компонентов я использовал коммутационную плату (сделал из макетной, обрезав до нужных размеров). На плате разместил контактные группы типа «мама». В первый ряд вставляется ардуина, самый дальний от ардуины — это «земля», затем – «+5В», потом идут 2 ряда для пинов ардуины. Таким образом для подключения электронных компонентов используется 4-х контактная планка типа «папа», которая вставляется перпендикулярно микроконтроллеру. На обратной стороне платы произведена разводка соединений контактов.
К дисплею, датчику, микропереключателю, лазерному диоду, кнопке припаиваются соединительные провода. Дисплей, датчик, кнопка и лазерный диод подключаются к коммутационной плате с помощью контактных групп (на 4 контакта) типа «папа». Длину проводов следует выбирать так, чтобы она была достаточна для подключения к коммутационной плате.
На фото видны следы оплавления пластика – пришлось по ходу работы дорабатывать модель паяльником. В файлах 3D модели данные «доработки» учтены.
После подключения лазерного диода (при необходимости) можно подкорректировать ширину луча вращением микрообъектива.
Для соединения компонентов можно использовать любые другие варианты, например – прямое соединение. Каждый мастер сам определяет, как ему удобно.
Схема соединения компонентов приведена ниже.
Следует отметить, что в виду отсутствия под рукой батареи КРОНА для питания прибора использовался один элемент NCR18650B с выходным напряжением 3,7 В. Поэтому для повышения напряжения после микропереключателя дополнительно использовался конвертер MT3608, выходное напряжение которого было установлено в 7 В.
Шаг четвертый: программирование микроконтроллера
Для программирования микроконтроллера необходимо скачать скетч по ссылке, установить (если отсутствуют) требуемые в скетче библиотеки, скомпилировать и загрузить в Arduino Nano. Скетч был написан в Arduino IDE 1.8.13. Скетч: ik_termometr.rar [2.28 Kb] (скачиваний: 18)
В скетче прокомментированы функции и переменные. Для отладки предусмотрен режим с выводом информации в монитор порта.
Рекомендуется собрать схему, загрузить скетч и убедится в работоспособности электронных компонентов на макетной плате.
Шаг пятый: сборка прибора
После того, как корпус обработан и подогнаны его составляющие, загружена программа в микроконтроллер можно собирать прибор.
Сборка производится в следующем порядке:
— в ручку устанавливается кнопка и изнутри закрепляется контргайкой;
— в отверстия ручки вставляются провода питания (КРОНА), к концам которых припаивается разъем для соединения с батареей;
— ручка тремя винтами с гайками прикручивается к коробу. При этом провода из ручки выводятся в короб через соответствующие отверстия;
— в короб вставляется микропереключатель. В зависимости от конструкции он крепится либо винтиками, либо на клей;
— в короб вставляется кнопка настройки;
— дисплей устанавливается так, чтобы кнопка настройки упиралась в плату дисплея. При необходимости между платой дисплея и кнопкой прокладывается пластиковая или картонная диэлектрическая прокладка. Провода от микропереключателя и кнопки настройки продеваются в крепежные отверстия платы дисплея.
— в передней части короба корпуса в отверстия вставляется датчик. Для закрепления датчика используется либо упаковочный материал типа вспененного полиэтилена (чтобы заполнить пространство между ограничивающей стенкой и платой датчика), либо клеевой пистолет.
— над датчиком в отверстие вставляется лазерный диод и фиксируется клеевым пистолетом. При этом необходимо луч диода выровнять так, чтобы он указывал на точку измерения температуры;
— в короб устанавливается микроконтроллер с коммутационной платой. На фото в коробе дополнительно установлен повышающий модуль (при желании его можно разместить в ручке — вместо второй батареи 18650).
После установки всех компонентов короб закрывается крышкой. При необходимости крышку можно в нескольких местах точечно зафиксировать клеем.
После сборки можно проводить тестовые испытания: включаем прибор, направляем его на объект. Дисплей должен показать температуру объекта.
Заключение
При создании данной самоделки получен опыт в проектировании корпуса и работы с датчиком, а также выявлены следующие особенности электронных компонентов:
1. Показания ИК датчика тем точнее, чем ближе он к объекту. Для человеческого тела – это 1-2 см. Видимо для бОльших расстояний нужна система линз. Для малых расстояний (1-10 см) лазерный диод не нужен.
2. Коэффициент компенсации по даташиту для человеческого тела 0.98. Но на практике с таким значением показания датчика получаются заниженными на 5-6 градусов. Поэтому пришлось делать кнопку настройки, чтобы можно было дополнительно подстроить прибор. Возможно, что это особенность именно моего конкретного датчика.
3. Если при включении повышающего модуля MT3608 не происходит повышения напряжения, то нужно выполнить следующий «магический обряд»: крутить подстроечный резистор сначала в одну сторону до щелчка, а потом долго — в другую. Только после этих действий мои модули стали работать корректно, т.е. повышать выходное напряжение, уровень которого регулируется подстроечным резистором.
С экономической точки зрения за те же деньги можно купить готовый прибор нижнего ценового сегмента. Сэкономить можно, если покупать комплектующие на распродаже. Самым дорогим элементом в этой конструкции является датчик температуры.
Вероятно использование подобной конструкции в специфических ситуациях типа постоянного мониторинга температуры электронных компонентов и т.д. будет выгодно и целесообразно, но может потребовать доработки как корпуса/крепления, подачи питания, так и программного обеспечения (например, для передачи данных мониторинга по WiFi).
Всем удачи в творческой работе!
Источник: