[membership level=”0,1,2,4″]
1. Alat / Bahan
- Arduino IDE Download
- Library: LiquidCrystal_I2C Download
- Library: RFID Download
- Library: DS3231 Download
- Arduino UNO 1 Buah
- Modul RFID 1 Buah
- LDC 16×2 1 Buah
- I2C 1 Buah
- DS3231 1 Buah
- Project Board 1 Buah
- Kabel Jumper Secukupnya
Selanjutnya untuk mendapatkan komponen elektronik di atas silahkan temukan.
2. Skema Rangkaian
Gambar Rangkaian Absen Masuk Kantor dengan Tanda Pengenal KTP
Keterangan:
- 5V – VCC RFID, VCC I2C, VCC DS3231
- GND – GND RFID, GND I2C, GND DS3231
- D6 – RST RFID
- D10 – NSS RFID
- D11 – MOSI RFID
- D12 – MISO RFID
- D13 – SCK RFID
- SDA – SDA I2C, SDA DS3231
- SCL – SCL I2C, SCL DS3231
- Pin I2C – Pin LCD
[/membership]
3. Langkah Kerja
- Pertama siapkan alat dan bahan yang akan digunakan
- Kemudian Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
- Selanjutnya Buka software Arduino IDE yang telah terinstal pada laptop/komputer
- Setelah itu Unduh semua library di atas dan masukkan libray tersebut dengan cara buka Arduino IDE selanjutnya pilih Sketch->Include Library->Add.Zip Library
- Kemudian Ketikkan sketch program pada halaman Arduino IDE
- Setelah itu Masukan alamat I2C LCD pada sketch program, Seterusnya untuk mengetahui alamat I2C pelajari materi berikut:
Mencari Tahu Alamat I2C Pada Modul I2C - Selanjutnya Ganti data tag dengan tag yang kalian miliki dengan format:
int Data_RFID[4] = {data_ke-1,data_ke-2,data_ke-3,data_ke-4};
Kemudian untuk mengetahui data tag dapat dilihat di sini:
Membaca Kode Tag dengan Sensor RFID - Setelah itu lakukan proses uploading program
4. Sketch Program
Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!
/* Program Absen Masuk Kantor dengan Tanda Pengenal KTP dibuat oleh Indobot */ #include <SPI.h> //Library komunikasi SPI #include <RFID.h> //Library RFID #define SS_PIN 10 //Deklarasi pin ss pada D10 #define RST_PIN 6 //Deklarasi pin rst pada D6 RFID rfid(SS_PIN,RST_PIN); //Kenalkan pin ss dan rst pada RFID int Data_RFID[4] = {34,188,94,52}; //Kode data tag bool akses = true; //Variabel akses bernilai benar #include <LiquidCrystal_I2C.h> //Library LCD I2C LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C #include <DS3231.h> //library DS3231 DS3231 rtc(SDA, SCL); //inisialisasi penggunaan i2c Time t; //Variabel t tampat menyimpan waktu int set_jam = 06; //Set jam int set_menit = 59; //Set menit int set_detik = 59; void setup() { Serial.begin(9600); //Mulai komunikasi serial SPI.begin(); //Mulai komunikasi SPI rfid.init(); //Mulai RFID lcd.init (); //Mulai LCD lcd.setBacklight(HIGH); rtc.begin(); //Mulai RTC //setting pertama download program rtc.setDate(30, 9, 2020); //mensetting tanggal rtc.setTime(06, 59, 50); //menset jam rtc.setDOW(3); //menset hari "Rabu" } void loop() { lcd.setCursor(0,0); lcd.print(rtc.getTimeStr()); //prosedur pembacaan waktu if(rfid.isCard() && rfid.readCardSerial()){ //Jika ada tag dan terbaca, maka for( int i=0 ; i<=3 ; i++){ if(rfid.serNum[i] != Data_RFID[i]){ //Jika kode tag tidak sama, maka goto tolak_akses; //Lompat ke perintah tolak_akses } } rfid.halt(); t = rtc.getTime(); //Baca waktu int jam = t.hour; int menit = t.min; int detik = t.sec; if(set_jam <= jam){ if(set_menit <= menit){ if(detik <= set_detik){ lcd.setCursor(0,1); lcd.print("Selamat Datang"); } else{goto tolak_akses;} } else{goto tolak_akses;} } else{goto tolak_akses;} } delay(1000); lcd.clear(); if(akses == false){ tolak_akses: //Lompatan perintah tolak_akses lcd.setCursor(0,1); lcd.print("Akses Ditolak!"); delay(1000); lcd.clear(); } }
Selanjutnya kesimpulan:
[/membership]
Ingin mengadakan pelatihan Arduino / IoT (Internet of Things) bersama Indobot?