Пирометр* своими руками (*прибор для бесконтактного измерения температуры тела)
Этот прибор мастер сделал по заказу местного департамента здравоохранения в связи с нехваткой в продаже промышленных приборов. Цель была сделать относительно недорогое и простое в сборке устройство.
Прибор работает на Arduino Nano использует ИК-датчик MLX90614. Эти датчики есть в нескольких версиях. Распространенная версия BAA имеет охват 90 градусов. Такой большой градус не подходит для целей измерения температуры тела человека. В своей самоделке мастер использует датчик с условным обозначением BCH. Такой датчик измеряет температуру под углом 12 градусов и позиционируется как более точный.
Шаг первый: лазерная резка
Корпус мастер вырезает из фанеры толщиной 3 мм. Для корпуса нужен лист 6 х 8 дюймов (15,24 х 20,32 см).
Файл для резки можно скачать ниже.
irtherm_v2.svg
Шаг четвертый: код
Прежде чем подключать питания не забудьте установить конденсатор 1 мкФ.
Если Arduino Nano имеет набор микросхем CH340 (фото 1), может потребоваться установить определенные драйверы. Маркировка чипа находится на нижней части платы. Драйвер и инструкции по его установке можно скачать здесь.
В зависимости от версии платы может потребоваться переключение между текущими версиями ATmega328P и ATmega328P old bootloader (фото 2). После успешной загрузки кода на экране должны отобразится данные с температурой (фото 4).
Код можно скачать ниже. Есть две версии кода, одна для показаний по Фаренгейту, вторая для Цельсия.
TouchlessIRThermometer_F.ino
TouchlessIRThermometer_c.ino
Шаг пятый: окончательный монтаж
После проверки работоспособности устройства мастер производит его окончательный монтаж на плате.
Шаг шестой: сборка
Теперь можно приступить к сборке устройства.
Мастер устанавливает *лазерный диод и фиксирует его термоклеем. Устанавливает батарейный разъем в рукоять. Устанавливает и фиксирует термоклеем ИК-датчик. Термоклеем фиксирует внутри корпуса Ардуино и экран.
*Лазерный диод служит для «прицеливания». Мастер не указал его спецификацию, но судя по комментарию к статье, это маломощный диод.
При измерении температуры необходимо как можно ближе поднести прибор к измеряемой поверхности. В идеале это 5-10 см. Как уже говорилось, ИК-датчик имеет угол измерения 12 градусов и основание этого треугольника должно, по возможности, полностью «находится» на измеряемом объекте.
Мастер предупреждает, что данное изделие не является медицинским оборудованием и его не следует использовать, как замену сертифицированным устройствам. Однако прибор довольно точно определяет температуру и может быть использован для целей раннего выявления лиц с высокой температурой, для и дальнейшего обследования.
Источник
Инфракрасный термометр своими руками на MLX90614
Для изготовления нашего бесконтактного термометра будем использовать датчик-пирометр MLX90614 — это инфракрасный датчик, позволяющий определять температуру бесконтактным методом.
Такой датчик позволяет практически моментально считывать температуру тела, измеряя инфракрасное излучение объекта. Сейчас познакомимся с ним поближе и разберем работу в Bascom-AVR.
Для начала разберемся с тем, какие модификации датчика существуют.
Во-первых, они различаются по напряжению питания, бывают 3-х и 5-и вольтовые версии.
Во-вторых, различаются количеством сенсоров внутри датчика: бывают с одним сенсором и двумя:
Также есть версия датчика, в которой два сенсора, но показания с них суммируются и усредняются. Именно такой датчик и попал ко мне.
В-третьих, различие в угле обзора. Бывают, как на картинке выше, с открытым окном, у которых угол обзора стремится к 180°. А есть версии с уменьшенным до 35°, 10° и 5° углом. Я приобрел датчик с углом обзора 10°, но как оказалось ничего хитрого там нет, просто на корпус датчика запрессована черная трубка, обрезающая часть обзора. Поэтому можно брать открытые датчики, они дешевле, и уже самим приклеить трубочку. Но интересней было бы добавить пару линз, только найти такие, чтобы пропускали инфракрасное излучение наверно будет не просто.
Все датчики подключаются по стандартному интерфейсу I2C. Распиновка со стороны ножек.
На шине I2C датчик имеет настраиваемый адрес, по умолчанию отзывается на &hB4 (&b10110100) Для считывания температуры измеряемого объекта нужно обратится по адресу &h07 (&b00000111) для первого сенсора, и &h08 (&b00001000) для второго (если датчик имеет два отдельных сенсора).
Для моего варианта, в котором два сенсора объединены, показания считываются только с первого сенсора. Также датчик может измерить собственную температуру, ее значение хранится по адресу &h06 (&b00000110)
К слову об измеряемых температурах. Предел температур для измеряемого объекта составляет -70 ÷ 380 °C, а для самого датчика -40 ÷ 125°C.
Данные в датчике хранятся в сыром виде и занимают два байта, поэтому для перевода их в градусы Цельсия необходимо преобразование: поделить значение на 50 и затем вычесть из результата 273,15. Еще нужно учитывать одну особенность — датчик сперва отправляет младший байт, а затем старший. Поэтому полученные данные перед преобразованием приходится «переворачивать».
Выше схема на микроконтроллере ATmega8, показания будут выводиться на жк дисплей. Датчик у меня приехал в пятивольтовой версии, поэтому никаких преобразователей между ним и схемой не нужно. Только подтяжка резисторами к плюсу согласно стандарту протокола I2C
Программа в Bascom-AVR:
‘конфигурация дисплея
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb . 5 , E = Portb . 4 , Db4 = Portb . 3 , Db5 = Portb . 2 , Db6 = Portb . 1 , Db7 = Portb . 0
‘подключение датчика
Config Scl = Portc . 0
Config Sda = Portc . 1
Dim Value As Byte ‘принимаемый байт
Dim Temp As Single ‘температура
Dim Tempword As Word ‘вспомогательная переменная
Dim Irtemp As String * 8 ‘температура объекта
Dim Senstemp As String * 8 ‘температура датчика
Dim Cmd As Byte ‘команды для датчика
Cmd = & B00000111 ‘адрес чтения температуры объекта
Gosub Read_mlx ‘опрашиваем датчик
Irtemp = Fusing ( temp , «##.##» )
Cmd = & B00000110 ‘адрес чтения температуры датчика
Gosub Read_mlx ‘опрашиваем датчик
Senstemp = Fusing ( temp , «##.##» )
Cls
Locate 1 , 1
Lcd «To » ; Irtemp ; «°C» ‘выводим температуру объекта
Lowerline
Lcd «Ts » ; Senstemp ; «°C» ‘выводим температуру датчика
‘подпрограмма опроса датчика
Read_mlx :
I2cstart
I2cwbyte & B10110100 &nbsnbsp; ‘отправляем адрес датчика
I2cwbyte Cmd ‘отправляем команду с адресом
I2cstart
I2cwbyte & B10110101 ‘отправляем адрес датчика с битом чтения
I2crbyte Value , Ack ‘принимаем первый байт
Tempword = Value
Shift Tempword , Left , 8
I2crbyte Value , Ack ‘принимаем второй байт
Tempword = Tempword Or Value ‘складываем два байта
I2cstop ‘окончание опроса датчика
Rotate Tempword , Left , 8 ‘меняем местами два байта в переменной
Temp = Tempword * 0 . 02 ‘преобразование данных в температуру по Цельсию
Temp = Temp — 273 . 15
Программа выводит на дисплей две температуры. В верхней строке температуру измеряемого объекта, в нижней — температуру самого датчика.
Фото с экспериментов
Температура горячего чайника
Чайник только вскипел, но температура пластикового корпуса выше 80 не поднималась.
Температура в морозилке
А вот интересная картинка из даташита, показывающая погрешность датчика в зависимости от внешних факторов.
To — измеряемая температура объекта, Ts — температура окружающей среды
В ходе тестирования заметил одну особенность, для более точного измерения температуры, датчик нужно подносить как можно ближе, чтобы объект перекрывал весь угол обзора датчика. В общем датчик интересный и мне понравился.
Датчик недорого можно купить в Китае.
ПОДЕЛИТЕСЬ С ДРУЗЬЯМИ
П О П У Л Я Р Н О Е:
Описания осциллографических приставок к телевизору уже публиковались на страницах журнала («Радио», 1959, № 1; 1965, № 8 и др.). Однако в отличие от них предлагаемая приставка не требует вмешательства в схему телевизора (она подключается к антенному гнезду телевизора). Совместно с генератором качающейся частоты ее можно использовать для налаживания усилителей ПЧ радиоприемников. Подробнее…
Зима не за горами, нужно подумать о тепле. Во многих домах сейчас проведён газ, но в некоторых селениях есть ещё дрова и уголь. Также дрова нужны и для бани. Махать топором трудоёмкое занятие, а если поленья большие, то и вообще расколоть их очень тяжело. Как же облегчить этот труд? Я давно уже задумывался над этим.
Солнечное отопление — это просто!
Всего за несколько шагов можно сделать простой самодельный солнечный коллектор из алюминиевых банок и поликарбоната. Это простой и недорогой солнечный коллектор, который можно использовать для дополнительного отопления дома, дачи, гаража и т.д. Для его изготовления в основном использовались ненужные пустые алюминиевые банки.
Источник