Pembuka Pintu Otomatis Tanpa Kontak dengan Deteksi Suhu Tubuh
Komponen dan Perlengkapan
 | | × | 1 | |
| | × | 1 | |
| | Modul Termometri Inframerah GY-906-BCC |
| × | 1 | |
| | Dua Servo Tower Pro MG90S |
| × | 1 | |
| | × | 1 | |
| | Sensor inframerah manusia HC-SR501 |
| × | 1 | |
Tentang Proyek Ini
Tujuan proyek ini adalah untuk membuka pintu secara otomatis dengan mendeteksi suhu tubuh. Faktanya, proyek ini adalah untuk mencegah pasien dengan pneumonia korona baru memasuki rumah mereka. Dalam bentuk tertentu, menjamin keamanan lingkungan tempat tinggal.
Bagian berikut digunakan dalam proyek ini:
Arduino UNO, https://amzn.to/3ihYFBl
LCD 2004 I2C, https://amzn.to/3gTMZnW
Modul Termometri Inframerah GY-906-BCC
Dua Servo Tower Pro MG90S
Buzzer, https://amzn.to/2BeYzu3
Sensor inframerah manusia HC-SR501, https://amzn.to/3aJAOHX
Kode: https://github.com/DKARDU/AutomaticDoor
Terima kasih telah menonton, Tetap di rumah dan Tetap aman... Semoga harimu menyenangkan! #Arduino #Arduinoproject #Covid-19
Kode
autodoor.inoArduino
#include <LiquidCrystal_I2C.h> #include <Servo.h> #include <Wire.h> #include <Adafruit_MLX90614.h> Adafruit_MLX90614 mlx = Adafruit_MLX90614(); LiquidCrystal_I2C lcd(0x27,20,4); Servo myservo1; Servo myservo2; #define red 13 #define haha 4 int pos1,pos2; void setup() { Serial.begin(9600); pinMode(red,OUTPUT); pinMode(haha,INPUT); myservo1.attach(7); myservo2.attach(8); myservo1.write(90); myservo2.write(90); mlx.begin(); lcd.init(); lcd.backlight(); } void loop() { int montion = digitalRead(haha); if(montion == 1){ Serial.print("made"); Serial.print("\n"); lcd.setCursor(0,0); lcd.print("ObjectTemp:"); lcd.setCursor(13,3); lcd.print("-DKARDU"); kaiguan(); } } void kaiguan(){ int temp_obj = mlx.readObjectTempC(); Serial.print(temp_obj); Serial.print("\n"); if(temp_obj < 31){ lcd.setCursor(0,1); lcd.print(temp_obj); lcd.setCursor(0,2); lcd.print("Not detected,retest!"); }if(temp_obj > 30 && temp_obj <38){ lcd.setCursor(0,1); lcd.print(temp_obj); lcd.setCursor(0,2); lcd.print("body temperature ok "); for(pos1 = 90; pos1 <= 180; pos1 += 1) { myservo1.write(pos1); myservo2.write(180-pos1); delay(15); } delay(5000); for(pos1 = 180; pos1>=90; pos1 -=1) { myservo1.write(pos1); myservo2.write(180-pos1); delay(15); } } if(temp_obj>37){ digitalWrite(red,HIGH); lcd.setCursor(0,1); lcd.print(temp_obj); lcd.setCursor(0,2); lcd.print(" Keep out! "); delay(500); } digitalWrite(red,LOW); }
Skema