Pada artikel kali ini masih
berhubungan dengan artikel sebelumnya yaitu membuat pengecekan suhu tubuh
otomatis, tetapi kali ini komponen alat lebih kompleks yaitu dengan menambahkan
sensor ultrasonuc sebagai pendeteksi jarak minimal dan jarak maksimal objek
yang akan dicek suhunya, dan juga ditambahkan buzzer beserta led hijau dan led
merah sebagai indikator saat pengecekan suhu tubuh, alat yang akan dibuat kali
ini juga dilengkapi LCD 16x2 sebagai display hasil dari pengecekan suhu yang di
deteksi oleh sensor suhu mlx90614.
Pertama yang perlu disiapkan yaitu :
1.Arduino
2.Sensor
suhu MLX90614
3.Sensor
Ultrasonic
4.Led
Merah dan Hijau
5.Buzzer
Aktif
6.LCD
16x2
7.Resistor
330ohm
8.Kabel
jumper Secukupnya
Setelah
menyiapkan semua yang diperlukan selanjutnya yaitu merangkai keseluruhan alat
Keterangan :
1.Sambungkan
VCC dari LCD 16x2, Sensor ultrasonic ke 5v pada arduino
2.Sambungkan
GND dari LCD 16x2, Sensor ultrasonic, LED,Sensor mlx90614,Buzzer ke GND pada
arduino
3.VCC
pada sensor suhu mlx90614 sambungkan ke pin 3v3 pada arduino
4.VCC
buzzer dihubungkan ke pin 3 pada arduino
5.VCC
pada led merah hubungkan ke resistor 330ohm kemudian dari resistor hubungkan ke
pin 5 arduino
6.VCC
pada led hijau hubungkan ke resistor 330ohm kemudian dari resistor hubungkan ke
pin 4 arduino
7.Pin
SDA dari LCD 16x2 dan sensor mlx90614 dihubungkan ke pin SDA/A5 pada arduino
8.Pin
SCL dari LCD 16x2 dan sensor mlx90614 dihubungkan ke pin SCL/A4 pada arduino
9.Pin
Trig pada sensor ultrasonic sambungkan ke pin 7 arduino
10.Pin Echo
pada sensor ultrasonic sambungkan ke pin 6 arduino
Jika
sudah terhubung semua seperti pada gambar rangkaian diatas selanjutnya yaitu
copy program yang ada dibawah ini ke new project pada ArduinoIDE kemudian
upload seperti biasanya, pastikan pada ArduinoIDE kalian sudah memiliki library
LCD 16x2 dengan i2c dan library sensor suhu mlx90614, jika belum silahkan
download terlebih dahulu di website resmi arduino.cc
[program]
#include
#include
#include
#define echo 6
#define trig 7
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
LiquidCrystal_I2C lcd(0x27, 16, 2);
int pos;
boolean cekSuhu = false;
int buzer = 3;
int led_merah = 5;
int led_hijau = 4;
int maxrange = 200;
int minrange = 0;
double value;
long duration, distance;
int ultra(){
digitalWrite(trig, LOW);delayMicroseconds(2);
digitalWrite(trig, HIGH);delayMicroseconds(10);
digitalWrite(trig, LOW);
duration = pulseIn(echo, HIGH);
distance = duration*0.034/2;
Serial.println("Distance: ");
Serial.println(distance);
return distance;
}
void setup() {
Serial.begin(9600);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
// Serial.println("Ready...");
pinMode(buzer, OUTPUT);
//-----------------------------------------------------//
pinMode(led_hijau, OUTPUT);
pinMode(led_merah, OUTPUT);
//-----------------------------------------------------//
mlx.begin();
//----------------------------------------------------//
lcd.begin();
lcd.backlight();
Serial.println("Silahkan Mendekat");
Serial.println("===========================================================");
Serial.println();
lcd.setCursor(0,0);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(" ");
}
void loop() {
lcd.setCursor(5,0);
lcd.print("Silahkan");
lcd.setCursor(5,1);
lcd.print("Mendekat");
digitalWrite(led_hijau, LOW);
digitalWrite(led_merah, LOW);
Serial.println("Silahkan Mendekat");
Serial.println("===========================================================");
Serial.println();
delay(200);
if(ultra() <= 10){
lcd.setCursor(0,0);
lcd.print(" ");
lcd.setCursor(0,0);
lcd.print("Loading...");
lcd.setCursor(0,1);
lcd.print(" ");
Serial.println("Loading....");
Serial.println("===========================================================");
Serial.println();
digitalWrite(led_merah, HIGH);
digitalWrite(buzer,HIGH);
delay(200);
digitalWrite(buzer,LOW);
delay(200);
int akhir =2000;
for(int i=0; i= 35 && value <=38){ // suhu badan Normal
cekSuhu = true;
lcd.setCursor(0,1);
lcd.print(value);
lcd.print("C");
// lcd.setCursor(0,1);
// lcd.print("Suhu bdn Normal");
digitalWrite(led_hijau, HIGH);
digitalWrite(led_merah, LOW);
Serial.print("Suhu");
Serial.print(value);
Serial.println("C");
Serial.println("Suhu Badan Normal");
Serial.println("===========================================================");
Serial.println();
} else if(value >=37.50){ //suhu badan Tinggi
lcd.setCursor(0,1);
lcd.print(value);
lcd.print("C");
// lcd.setCursor(0,1);
// lcd.print("Suhu bdn Tinggi");
digitalWrite(led_hijau, HIGH);
digitalWrite(led_merah, LOW);
Serial.print("Suhu");
Serial.print(value);
Serial.println("C");
Serial.println("Suhu Badan Tinggi");
Serial.println("===========================================================");
Serial.println();
for(int i=0; i<4 badan="" buzer="" code="" delay="" digitalwrite="" else="" high="" i="" lcd.print="" lcd.setcursor="" led_hijau="" led_merah="" low="" rendah="" serial.print="" serial.println="" suhu="" uhu="" value="">4>