THE SECRET ROOM - ARDUINO PROJECT
Widya Intawani Pasaribu
Deskripsi
DIY
Project akhir yang kami buat berjudul “The Secret Room” yartu sebuah sistem
pintu ruang rahasia yang biasanya terdapat pada rumah di basement. Pintu
rahasia dibuat menyerupai sebuah lemari buku di suatu ruang baca sehingga tidak
terlihat seperti pintu pada umumnya. Sistem ini dijalankan oleh 1 input yaitu 1
buah sensor RFID, untuk outputnya ada 5
buah output yaitu 1 buah LCD I2C, 1 buah LED merah, 1 buah buzzer, 1 buah motor
servo, 1 buah Lampu 220Vac. Cara kerja sistem ini adalah
sensor RFID sebagai akses/ID masuk ke ruang rahasia, jika akses/ID dikenali
maka motor servo akan bergerak 90° membuka slot pengunci pintu sehingga pintu
rahasia dapat dibuka dan buzzer serta lampu 220Vac akan menyala. Sensor RFID juga digunakan sebagai
akses/ID keluar ke ruang rahasia, jika akses/ID dikenali maka motor servo akan
bergerak 90° membuka slot pengunci pintu sehingga pintu rahasia dapat dibuka
dan buzzer akan menyala serta lampu 220Vac akan mati. Jika akses/ID tidak
dikenali maka LED merah akan menyala. LCD I2C disistem ini berfungsi sebagai
penampil kata-kata mutiara/ajakan untuk membaca buku, (menyesuaikan tempat).
DIAGRAM RANGKAIAN
No.
|
Nama Komponen
|
Jumlah
|
1.
|
Sensor
RFID
|
1
|
2.
|
LCD
I2C
|
1
|
3.
|
LED
merah
|
1
|
4.
|
Buzzer
|
1
|
5.
|
Motor
Servo
|
1
|
6.
|
Lampu
220 Vac
|
1
|
7.
|
Protoboard
|
1
|
8.
|
Kabel
Jumper
|
Secukupnya
|
THE SECRET ROOM CODE
#include
<SPI.h>
#include
<MFRC522.h>
#include
<Servo.h>
#include
<Wire.h>
#include
<LiquidCrystal_I2C.h>
#define
SS_PIN 10
#define
RST_PIN 9
#define
LED_R 4 //define red LED
#define
BUZZER 2 //buzzer pin
MFRC522
mfrc522(SS_PIN, RST_PIN);
Servo
myServo;
LiquidCrystal_I2C
lcd(0x27,16,2);
const
int Relay =7;
void
setup()
{
pinMode (Relay, OUTPUT);
digitalWrite (Relay, LOW);
lcd.init();
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.backlight();
lcd.print(" Last Project C4");
delay (1000);
lcd.setCursor(0,1);
lcd.backlight();
lcd.print(" THE SECRET ROOM");
delay (2000);
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init(); // Initiate MFRC522
myServo.attach(3); //servo pin
myServo.write(0); //servo start position
pinMode(LED_R, OUTPUT);
pinMode(BUZZER, OUTPUT);
noTone(BUZZER);
}
void
loop()
{
lcd.setCursor(0,0);
lcd.clear();
lcd.backlight();
lcd.print(" WHAT'S YOUR");
lcd.setCursor(0,1);
lcd.print(" DAY?");
delay (3000);
lcd.clear();
lcd.backlight();
lcd.print(" ONE DAY,");
lcd.setCursor(0,1);
lcd.print(" ONE BOOK");
delay (3000);
lcd.clear();
lcd.backlight();
lcd.print(" TAKE ONE,");
lcd.setCursor(0,1);
lcd.print(" AND ENJOY IT ");
delay (3000);
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content= "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size;
i++)
{
Serial.print(mfrc522.uid.uidByte[i] <
0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0"
: " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "B7 2F 44
5C")
{
tone(BUZZER, 500);
digitalWrite(LED_R, LOW);
delay (100);
noTone(BUZZER);
myServo.write(90);
delay(5000);
myServo.write(0);
digitalWrite (Relay, HIGH);
}
else if (content.substring(1) == "99 41
87 73")
{
digitalWrite(LED_R, LOW);
delay(500);
tone(BUZZER, 500);
noTone(BUZZER);
myServo.write(90);
delay(5000);
myServo.write(0);
digitalWrite(LED_R, LOW);
digitalWrite (Relay, LOW);
}
else
{
digitalWrite(LED_R, HIGH);
delay(2000);
noTone(BUZZER);
digitalWrite (Relay, LOW);
digitalWrite(LED_R, LOW);
}
}






Komentar
Posting Komentar