В гостях у Самоделкина! » Темы » Советы » Применение пирометрического датчика MLX90614 с интерфейсом I2C

Применение пирометрического датчика MLX90614 с интерфейсом I2C



Пирометр, он же бесконтактный или дистанционный термометр, можно рассматривать как простейший тепловизор всего с одним пикселем. Подобно тепловизору, он ничего не излучает (если в нём есть примитивный лазерный "прицел", он не имеет отношения к датчику, в служит лишь для удобства), а принимает длинноволновое инфракрасное излучение, исходящее от всех тел, нагретых до температуры выше абсолютного нуля (а других и не бывает). Этим длинноволновое ИК-излучение отличается от коротковолнового, применяемого в оптопарах, пультах ДУ, для приёма которого подойдут и более простые датчики - фотодиоды. Наиболее массовыми, а значит - доступными по цене, являются пирометры, предлагаемые в качестве замены медицинских термометров. Они имеются в продаже во многих аптеках. Но такой прибор - вещь в себе, из которой невозможно вытащить данные во внешнее устройство для дальнейшей обработки.

Совсем другое дело - модуль 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 считывает данные из модуля, преобразует их в текстовый вид и выводит в порт:



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

Испытав модуль и убедившись в его работоспособности, можно подумать о его практическом применении. Просто измерять им дистанционно температуру человеческого тела, паяльника или того же мороженого неинтересно - для этого сгодится и пирометр из аптеки. Нужно задействовать именно способность датчика передавать данные во внешние устройства для дальнейшей обработки. Можно, например, сделать робота, "боящегося" слишком холодных или, наоборот, слишком горячих предметов, и уезжающего от них подальше. Любые другие температурные датчики, кроме пирометрического, для этого не годятся из-за инерционности. Или попробуйте сконструировать сенсорную кнопку, реагирующую только на прикосновение пальцем, но не любым другим предметом, в том числе токопроводящим. Но особенно хорош такой модуль для мониторинга температуры вращающихся предметов, сам датчик при этом остаётся неподвижным. Вообразите дрель, автоматически останавливающуюся при перегреве сверла и не дающую его "сжечь". Да много чего ещё можно придумать такого, для чего любые другие температурные датчики не годятся, если напрячь фантазию.

Источник

Установка для ремонта импульсных БП

Техника приготовления мороженого без холодильника

Добавить комментарий

    • smilesmilesxaxaokdontknowyahoonea
      bossscratchfoolyesyes-yesaggressivesecret
      sorrydancedance2dance3pardonhelpdrinks
      stopfriendsgoodgoodgoodwhistleswoontongue
      smokeclappingcraydeclarederisivedon-t_mentiondownload
      heatirefullaugh1mdameetingmoskingnegative
      not_ipopcornpunishreadscarescaressearch
      tauntthank_youthisto_clueumnikacuteagree
      badbeeeblack_eyeblum3blushboastboredom
      censoredpleasantrysecret2threatenvictoryyusun_bespectacled
      shokrespektlolprevedwelcomekrutoyya_za
      ya_dobryihelperne_huliganne_othodifludbanclose
2 комментария
  1. R555
    Любопытная информация. А сколько стоит сам датчик ?
    кто не ошибается, тот не делает ничего
    1. tormozedison Автор
      От 600 до 800 рублей.

Привет, Гость!


Зарегистрируйтесь

Или войдите на сайт, если уже зарегистрированы...

Войти

Добавьте самоделку

Добавьте тему

Онлайн чат

Опрос
А Вы знаете, что на сайте оплачиваются отчеты о создании самоделок?

Последние комментарии

Все комментарии
Новые самоделки на почту

Введите электронную почту и получайте письма с новыми самоделками. Не более одного письма в день.