Делаем бесконтактный термометр на Ардуино

Создадим простой проект бесконтактного термометра для мониторинга собственной температуры на основе Arduino.

Идея проекта

Идеей проекта является возможность измерения температуры человека без участия постороннего.

Это устройство использует инфракрасный термометр с ЖК-дисплеем и ультразвуковым датчиком, которое обнаруживает человека и затем отображает прочитанную температуру.

В проекте используется ультразвуковой датчик HC-SR04 для определения расстояния между пользователем и датчиком. Если это расстояние находится в указанных пределах, снятие показаний начнутся с задержкой в 10 миллисекунд, температура будет отображаться на ЖК-дисплее и 3 коротких звука зуммера привлекут внимание читателя к ЖК-экрану.

После того, как температура измерена, термометр издает короткий звук через активный зуммер, чтобы привлечь внимание пользователя.

Комплектующие

Для нашего бесконтактного термометра нам понадобится приличный список деталей для использования в проекте:

  1. Arduino Uno × 1
  2. ЖК-дисплей 16 х 2 × 1
  3. Резистор 47,5 кОм × 2
  4. Резистор 220 Ом × 1
  5. Поворотный потенциометр, 10 кОм × 1
  6. Зуммер (пьезо, активный) × 1
  7. Ультразвуковой датчик HC-SR04 × 1
  8. Инфракрасный термометр MLX90614ESF-BAA × 1
  9. Макет (универсальный) × 1

Для оптимального чтения держитесь как можно ближе к термометру. Этот датчик имеет поле зрения 90 градусов, на каждый сантиметр от датчика зона чувствительности увеличивается на 2 см.

Также нам, конечно, пригодится установленная IDE Arduino.

Схема соединения

Соединяем все детали согласно схеме ниже:

Соединяем LCD (ЖК-дисплей):

  • LCD RS <=> digital pin 12
  • LCD Enable <=> digital pin 11
  • LCD D4 <=> digital pin 5
  • LCD D5 pin <=> digital pin 4
  • LCD D6 pin <=> digital pin 3
  • LCD D7 pin <=> digital pin 2
  • LCD R/W pin <=> ground
  • LCD VSS pin <=> ground
  • LCD VCC pin <=> 5V

Резистор 10 кОм:

  • выводы на +5В и ground (земля)
  • движок на LCD VO пин (pin 3)

Соединяем HC-SR04:

  • Pin 8 <=> Trig
  • Pin 9 <=> Echo
  • VCC <=> 5V
  • Gnd <=> Ground

Соединяем MLX90614:

  • VDD <=> 3.3V
  • VSS <=> GND
  • SDA <=> A4
  • SCL <=> A5

Скетч проекта

Скетч для нашего устройства вы можете скопировать ниже для загрузки в вашу IDE.

Нам также предварительно нужно установить основные библиотеки:

#include <LiquidCrystal.h>
#include <Wire.h>
#include <SparkFunMLX90614.h> 

const int triggerPin = 8; 
const int echoPin = 9;   

const int buzzerPin = 10;

IRTherm Therm;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {

    pinMode(triggerPin, OUTPUT);
    pinMode(echoPin, INPUT);

    Therm.begin();
    Therm.setUnit(TEMP_C); // set the unit of measurement to celsius

    lcd.begin(16, 2);

    pinMode(buzzerPin, OUTPUT); //Set the buzzer pin
    digitalWrite(buzzerPin, LOW); 
}

void loop() {

    if (GetMeasuredDistance() <= 8 && Therm.read()) // the value of 8 cm can be tweaked to adjust the reading distance
    {
        
        lcd.print("Your temp is :");
        lcd.setCursor(0,1);
        lcd.print(String(Therm.object(), 2) + "* C");

        for (int i = 0; i < 3; i++);
        {
            digitalWrite(buzzerPin, HIGH);
            delay(10);
            digitalWrite(buzzerPin, LOW);
            delay(10);
        }
    }

    else if (GetMeasuredDistance() >= 20)
    {
        lcd.print("Come closer :)");
    }

    else {
        lcd.print("The Ambiant temperature is :");
        lcd.setCursor(0,1);
        lcd.print(String(Therm.ambient(), 2) + "*C");
    }

    delay(5000);
}

int GetMeasuredDistance()
{

    long duration;

    digitalWrite(triggerPin, LOW);
    delayMicroseconds(5);

    digitalWrite(triggerPin, HIGH);
    delayMicroseconds(10);
    digitalWrite(triggerPin, LOW);

    duration = pulseIn(echoPin, HIGH);

    return duration * 0.034 / 2; // This return a distance in cm
}

К сожалению, не было возможности протестировать этот бесконтактный термометр на Ардуино, тем не менее, принципиальная схема и код должны работать как задумано. Будьте здоровы и позитивны.

20 апреля 2020 в 21:14 | Обновлено 1 мая 2020 в 03:22 (редакция)
Опубликовано:
Уроки,

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

Ваш E-mail не будет никому виден. Обязательные поля отмечены *