цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Инфракрасный термометр на основе Arduino и датчика температуры MLX90614 своими руками

Инфракрасный термометр на основе Arduino и датчика температуры MLX90614 своими руками

Автор: Mike(admin) от 23-04-2019, 23:55

Большинство методов измерения температуры требуют какого-то физического контакта между датчиком температуры и объектом или окружающей средой, но по мере развития технологии кое-что изменилось. Возникла необходимость измерять температуру объекта без физического контакта. Эта необходимость привела к измерению температуры с помощью инфракрасных датчиков.


датчик температуры MLX90614

Принцип действия инфракрасных термометров прост, все тела при температуре выше 0° по Кельвину (абсолютный ноль) излучают инфракрасную энергию, которая может быть обнаружена датчиком инфракрасного термометра. Его конструкция включает в себя линзу, которая фокусирует инфракрасную энергию, излучаемую объектом перед детектором. Детектор преобразует энергию в электрический сигнал, который затем может быть передан в микроконтроллер для интерпретации и отображения в единицах температуры после компенсации изменения температуры окружающей среды. В этом проекте мы создадим термометр на основе инфракрасного датчика, используя Arduino Uno, инфракрасный датчик температуры MLX90614 и ЖК-экран Nokia 5110 для отображения измеренной температуры.


MLX90614 – это инфракрасный датчик температуры для бесконтактного измерения температуры. Он может измерять температуры в диапазоне от -70 до 380 градусов по Цельсию с точностью около 0,5° С при комнатной температуре. Некоторые функции этого датчика перечислены ниже.


  • Малый размер и низкая стоимость
  • Легко интегрировать
  • Заводская калибровка в широком диапазоне температур: от -40 до 125 °C для температуры датчика и от -70 до 380 °C для температуры объекта
  • Высокая точность 0,5 °C в широком диапазоне температур
  • Разрешение измерения 0,02 °C
  • Одно-и двухзонные версии
  • SMBus-совместимый цифровой интерфейс для быстрого считывания температуры и построения сенсорных сетей
  • Настраиваемый ШИМ-выход для непрерывного считывания
  • Доступно в версиях напряжения питания 3 В и 5 В

Также в этом примере мы будем использовать ЖК-экран Nokia 5110. Применяемый здесь шилд поставляется с джойстиком и кнопкой. Он совместим по выводам с Arduino Uno и большинством других плат Arduino.


ЖК-экран Nokia 5110

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


Инфракрасный термометр на основе Arduino и датчика температуры MLX90614 своими руками

Наша цель в этом проекте – измерить температуру, обработать ее и отобразить на ЖК-дисплее. Чтобы мы могли легко общаться с температурным датчиком mlx90614, мы будем использовать библиотеку mlx90614 от Adafruit (https://github.com/adafruit/Adafruit-MLX90614-Library) и библиотеку Nokia 5110 (http://www.rinkydinkelectronics.com/library.php?id=47) для удобного отображения текста на экране.


Сам код программы довольно прост. Единственное, поясним работу бесконечного цикла. Мы начинаем с определения единицы измерения, в которой температура должна отображаться в градусах Цельсия или в градусах Фаренгейта, затем считываем температуру с датчика температуры и отображаем ее на дисплее. Для обеспечения точности, задержка в 1000 мс, вставленная между показаниями, обеспечивает и предотвращает конфликты запросов на считывание.



#include <LCD5110_Graph.h>
#include <Wire.h>
#include <Adafruit_MLX90614.h>

LCD5110 lcd(2,3,4,6,5); // для шилда

// LCD5110 lcd(8,9,10,12,11); // для отдельного дисплея

char TEMPERATURE = 'C';

extern uint8_t SmallFont[];
extern uint8_t BigNumbers[];
extern uint8_t uic[];
extern uint8_t uif[];
extern uint8_t splash[];

Adafruit_MLX90614 mlx = Adafruit_MLX90614();

void setup()
{
  Serial.begin(9600);
  lcd.InitLCD(60);
  mlx.begin();
  lcd.drawBitmap(0, 0, splash, 84, 48);
  lcd.update();
  delay(3000);
}

void loop()
{
  String temperature="";
  lcd.clrScr();
  
  if(TEMPERATURE == 'C')
  {
     temperature = String(mlx.readObjectTempC(),1);
     lcd.drawBitmap(0, 0, uic, 84, 48);
  }else
  {
     temperature = String(mlx.readObjectTempF(),1);
     lcd.drawBitmap(0, 0, uif, 84, 48);
  }
  
  if(temperature.length()>4)
  {
    temperature.remove(3,2);
  }
  
  Serial.println(temperature);
  lcd.setFont(BigNumbers);
  
  if(temperature.length()==4)
  {
    lcd.print(temperature,5,19);
  }else
  {
    lcd.print(temperature,15,19);
  }
  
  lcd.update();
  delay(1000);
}

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


Инфракрасный термометр на основе Arduino и датчика температуры MLX90614 своими руками

Помимо бесконтактного измерения температуры объекта, ИК-датчик температуры MLX90614 также можно использовать для измерения температуры окружающей среды, но в рамках данного примера мы это не будем затрагивать.




© digitrode.ru


Теги: Arduino, датчик температуры



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий