Smart Door Telegram – Halo Fanbot! Jumpa lagi di artikel Tutorial IoT
Sudah pernah membuat smart Door?
Smart Door merupakan salah satu Security System yang paling sering di gunakan. Mulai dari penggunaan sidik jari, sensor RFID, hingga menggunakan sistem Internet of Things (IoT).
Nah pada project kita kali ini, kita akan membuat sistem smart door dengan menggunakan pin yang dimasukkan dengan tombol keypad. Hanya itu saja?
Tentu saja tidak, untuk meningkatkan keamanan dalam sistem ini, kita akan menambahkan konfirmasi tambahan dengan menggunakan telegram. Di mana ketika kita memasukkan pin ke alat, kita tetap harus mengonfirmasinya dengan menggunakan telegram untuk membuka pintu. Bagaimana cara membuatnya? yuk kita simak.
Alat dan Bahan Tutorial
Alat dan bahan untuk project ini adalah sebagai berikut.
- Software Arduino IDE
- NodeMCU ESP8266 1
- Solenoid Lock 1
- Relay 1 Channel 1
- Keypad 4×4 1
- Projectboard 1
- Kabel jumper Secukupnya
Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO
Tutorial Rangkaian
Susunlah semua device di atas menjadi rangkaian seperti berikut ini. Tetap pastikan semua rangkaian terhubung dengan baik. Rapikan rangkaian agar dapat dilihat dengan baik untuk mengantisipasi kesalahan.
baca juga: Tutorial Membuat Setting Waktu Alarm Waktu NTP dengan IoT Telegram
Program
Tahap selanjutnya adalah penulisan program pada Arduino IDE. Buatlah program seperti berikut. Perhatikan keterangan (comment) untuk memahami program dengan baik.
Jangan lupa untuk memasukkan terlebih dahulu library LiquidCrystal, Keypad, CTBot dan Arduino Json.
/* Program Kunci Pintu dengan password input Keypad 4x4 dibuat oleh Indobot */ #include <Keypad.h> //Library keypad #include <LiquidCrystal_I2C.h> //Library LCD I2C #include "CTBot.h" //Pendeklarasian Library #define lock D0 CTBot myBot; LiquidCrystal_I2C lcd(0x27,16,2); //Alamat I2C TBMessage msg; String ssid = "*********"; //nama ssid wifi kalian String pass = "*********"; //password wifi kalian String token = "XXXX"; //token bot baru kalian const int id = 11111111111; //id telegram kalian const byte ROWS = 4; //Jumlah baris keypad const byte COLS = 4; //Jumlah kolom keypad char Keys[ROWS][COLS] = { //Membuat array keypad {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {0, 2, 14, 12}; //Deklarasi pin baris byte colPins[COLS] = {13, 15, 3, 1}; //Deklarasi pin kolom Keypad customKeypad = Keypad( makeKeymap(Keys), rowPins, colPins, ROWS, COLS); //Masukkan info keypad pada library char customKey; //Variabel penampung input keypad int number = 0; //Variabel penampung nilai angka int password = 111111; //Password void setup() { lcd.init (); //Mulai LCD lcd.setBacklight(HIGH); //Nyalakan backlight pinMode(LED, OUTPUT); //Setting I/O myBot.wifiConnect(ssid, pass); myBot.setTelegramToken(token); if (myBot.testConnection()) { Serial.println("Koneksi Bagus"); } else { Serial.println("Koneksi Jelek"); } myBot.sendMessage(msg.sender.id, (String)"Bot untuk Reset Password anda \n" + "kirimkan pesan >>>resetpin(pinsebelumnya)." ); } void loop() { lcd.setCursor(0,0); lcd.print("Input Password"); //Tampilan pada layar LCD customKey = customKeypad.getKey(); //Baca input keypad //------------Prosedur jika input berupa angka------------// switch(customKey){ case '0' ... '9': lcd.setCursor(0,1); number = number * 10 + (customKey - '0'); lcd.print(number); break; //------------Jika input '#' maka cek password------------// case '#': if(number == password){ //Jika password benar, maka lcd.setCursor(0,1); lcd.print("Tunggu Konfirmasi"); //Tampilan LCD myBot.sendMessage(msg.sender.id, (String)"pin: " +number+"\n Benar.\n"+ "untuk membuka pintu Kirim Pesan >> yes"); digitalWrite(LED, HIGH); //LED Menyala delay(2000); digitalWrite(LED, LOW); number = 0; lcd.clear(); } else{ //Jika salah, maka lcd.setCursor(0,1); lcd.print("Pin Salah"); //Tampilan LCD myBot.sendMessage(msg.sender.id, (String)"pin: " +number+"\n Pin Salah"); delay(2000); number = 0; lcd.clear(); } break; //------------Jika input '*' maka hapus tampilan------------// case '*': number = 0; lcd.clear(); break; } //------------Reset dan konfirmasi Password dengan Telegram------------// if (myBot.getNewMessage(msg)) { String a = msg.text; if (a == "yes") { digitalWrite(lock,LOW); //Mengaktifkan relay active low } if (a.indexOf ("resetpin") > -1) { int pin = a.substring(8).toInt(); digitalWrite(lock,HIGH); //Menonaktifkan relay active low if (pin == password){ myBot.sendMessage(msg.sender.id, (String)"Pin Anda BENAR. \n"+ "untuk reset kirim >>>pinbaru(pin baru)."+ "Contoh >> resetpin121212"); } else{ myBot.sendMessage(msg.sender.id, (String)"Pin Anda SALAH. \n Coba Lagi."); } } if (a.indexOf ("pinbaru") > -1) { password = a.substring(7).toInt(); myBot.sendMessage(msg.sender.id, (String)"Pin Anda Telah Diubah Menjadi"+password); } else { myBot.sendMessage(msg.sender.id, (String)"Bot untuk Reset Password anda \n" + "kirimkan pesan >>>resetpin(pinsebelumnya)." ); } } } |
Jangan lupa untuk masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di program di atas. Jika belum tau caranya. dapat kunjungi LINK INI.
baca juga: Tutorial Membuat Pin Masuk Rumah dengan Sistem IoT Telegram
Hasil dari project ini adalah kita hanya dapat membuka pintu dengan memasukkan pin yang benar dengan menggunakan keypad. Jika sudah benar, maka akan dikonfirmasi oleh pengguna utama dengan menggunakan telegram bot. Kirimkan kata “yes” untuk membuka pintu. Jika pin sudah benar, namun belum dikonfirmasi, maka pintu tidak akan terbuka. Selain itu, kita juga dapat melakukan reset pin dengan menggunakan telegram dengan mengirimkan kata resetpin dilanjutkan dengan pin sebelumnya.
Bagaimana? tertarik untuk mencobanya? Kuylah. Jangan nanti-nanti. hehe
Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!
Itulah tutorial untuk membuat Smart Door Telegram, sampai jumpa di tutorial selanjutnya