Smart Door Telegram Menggunakan Tombol Keypad

Indobot Update

Tutorial IoT
Tutorial IoT

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.

  1. Software Arduino IDE
  2. NodeMCU ESP8266 1
  3. Solenoid Lock 1
  4. Relay 1 Channel 1
  5. Keypad 4×4 1
  6. Projectboard 1
  7. 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

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tags

Tinggalkan komentar

whatsapp whatsapp