Пирометр, он же бесконтактный или дистанционный термометр, можно рассматривать как простейший тепловизор всего с одним пикселем. Подобно тепловизору, он ничего не излучает (если в нём есть примитивный лазерный "прицел", он не имеет отношения к датчику, в служит лишь для удобства), а принимает длинноволновое инфракрасное излучение, исходящее от всех тел, нагретых до температуры выше абсолютного нуля (а других и не бывает). Этим длинноволновое ИК-излучение отличается от коротковолнового, применяемого в оптопарах, пультах ДУ, для приёма которого подойдут и более простые датчики - фотодиоды. Наиболее массовыми, а значит - доступными по цене, являются пирометры, предлагаемые в качестве замены медицинских термометров. Они имеются в продаже во многих аптеках. Но такой прибор - вещь в себе, из которой невозможно вытащить данные во внешнее устройство для дальнейшей обработки.
Совсем другое дело - модуль MLX90614 с интерфейсом I2C. Вы можете подключить его к Arduino, Raspberry Pi, любым другим платформам, если сможете обеспечить программную поддержку. Но удобнее всего подключать его к Arduino, так для этой платформы есть готовая библиотека фирмы Adafruit, обеспечивающая поддержку данного модуля.
MLX90614 - это устройство "два в одном": помимо пирометрического датчика, он содержит датчик температуры наружного воздуха. Работают они независимо друг от друга. Диапазон измерения температур пирометрическим датчиком - от -70 до +380 °C, датчиком температуры воздуха - от -40 до +125 °C.
Автор Instructables под ником Michal Choma написал простой скетч для Arduino, который совместно с упомянутой выше библиотекой позволяет проверить датчик. Текст скетча:
#include <Wire.h>
#include <Adafruit_MLX90614.h>
mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
mlx.begin();
}
void loop() {
Serial.println("Temperature from MLX90614:");
Serial.print("Ambient: ");
Serial.print(mlx.readAmbientTempC());
Serial.println(" °C");
Serial.print("Contactless: ");
Serial.print(mlx.readObjectTempC());
Serial.println(" °C");
Serial.println();
delay(1000);
}
Шины питания модуля (плюс и общий провод) мастер подключает параллельно соответствующим шинам Arduino. Питать датчик можно напряжением как 3,3, так и 5 В. Линию SDA (данные) шины I2C мастер подключает к выводу A4 Arduino, линию SCL (тактовые импульсы) - к выводу A5. На схеме это выглядит так:
А в реале - так:
В упомянутом выше пирометре из аптеки есть специальная оптика, пропускающая длинноволновые ИК-лучи. Она позволяет фокусироваться на предметах, расположенных довольно далеко от прибора. Здесь её нет, поэтому приходится подносить датчик к предмету на расстояние около 10 мм.
Мастер испытывает свзяку из схемы, библиотеки и скетча, запустив эмулятор терминала и подключив его к устройству /dev/ttyUSB2 (у вас это устройство может получить другое название в зависимости от ОС и её настроек). Под управлением скетча Arduino считывает данные из модуля, преобразует их в текстовый вид и выводит в порт:
Сначала мастер ничего не делал, а затем приблизил к датчику мороженое. Его температура тут же оказалась измерена пирометрическим датчиком модуля, но датчик температуры окружающей среды в нём же охладиться не успел. Конечно, лучше перед этим опытом направить датчик вбок и подносить мороженое сбоку.
Испытав модуль и убедившись в его работоспособности, можно подумать о его практическом применении. Просто измерять им дистанционно температуру человеческого тела, паяльника или того же мороженого неинтересно - для этого сгодится и пирометр из аптеки. Нужно задействовать именно способность датчика передавать данные во внешние устройства для дальнейшей обработки. Можно, например, сделать робота, "боящегося" слишком холодных или, наоборот, слишком горячих предметов, и уезжающего от них подальше. Любые другие температурные датчики, кроме пирометрического, для этого не годятся из-за инерционности. Или попробуйте сконструировать сенсорную кнопку, реагирующую только на прикосновение пальцем, но не любым другим предметом, в том числе токопроводящим. Но особенно хорош такой модуль для мониторинга температуры вращающихся предметов, сам датчик при этом остаётся неподвижным. Вообразите дрель, автоматически останавливающуюся при перегреве сверла и не дающую его "сжечь". Да много чего ещё можно придумать такого, для чего любые другие температурные датчики не годятся, если напрячь фантазию.
Источник (Source)