Belajar Arduino : Membuat Token Pin ala ATM

Indobot Update

Membuat Token Pin ala ATM sebagai Dasar Belajar Arduino
Membuat Token PIN Ala ATM, Langkah Awal Belajar Arduino

Pada materi belajar arduino kali ini kita akan membuat sebuah pin ala ATM. Teman-teman pasti sudah sangat sering menggunakan fasilitas ATM untuk mengambil uang dalam bentuk cash. Jika kita ingin mengambil uang di dalamnya, kita tidak cukup untuk memasukkan kartu ATM saja kan. Kita hany perlu memasukkan beberapa angka untuk mengonfirmasi bahwa ATM itu merupakan milik kita.

Nah pada project kali inii, kita akan membuat token pin seperti di ATM beberapa bank di Indonesia. Selain itu, untuk melakukan pemantauan dan melakukan reset pin jika terjadi suatu hall, kita dapat melakukannya melalui telegram. Bagaimana cara membuatnya? yuk kita simak caranya.

 Alat dan Bahan

Alat dan bahan yang digunakan untuk project kita kali ini adalah sebagai berikut. Jangan sampai ada yang kelewat ya.

  1. laptop/PC yang terinstall Arduino IDE
  2. NodeMCU ESP8266   1
  3. Keypad 4×4 1
  4. Breadboard 1
  5. Kabel jumper secukupnya

 

Belajar Elektronika, Arduino, dan IoT step by step dengan bantuan tangga belajar? Daftar sekarang dan dapatkan PROMO

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 IoT Mengatur Maksimal Jumlah Pengunjung dengan 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 Liquid Crystal, keypad, CTBot dan Arduino Json.

 


/* Program  pin token dengan keypad dibuat oleh Indobot */

#include <Keypad.h>                 //Library keypad
#include <LiquidCrystal_I2C.h>     //Library LCD I2C
#include "CTBot.h" //Pendeklarasian Library

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

#define LED 13          //LED pada pin D13
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("Access Accepted ");  //Tampilan LCD
        myBot.sendMessage(msg.sender.id, (String)"pin: " +number+"\n Access Accepted");
        digitalWrite(LED, HIGH);        //LED Menyala
        delay(2000);
        digitalWrite(LED, LOW);
        number = 0;
        lcd.clear(); 
      }
      else{                             //Jika salah, maka
        lcd.setCursor(0,1);
        lcd.print("Invalid Password");  //Tampilan LCD
        myBot.sendMessage(msg.sender.id, (String)"pin: " +number+"\n Invalid Password");
        delay(2000);
        number = 0;
        lcd.clear();
      }
    break;

    //------------Jika input '*' maka hapus tampilan------------//
    case '*':
      number = 0;
      lcd.clear();
    break;
  }

  //------------Reset Password dengan Telegram------------//
  if (myBot.getNewMessage(msg)) {
    String a = msg.text;
    if (a.indexOf ("resetpin") > -1) {
      int pin = a.substring(8).toInt();
      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)."
        );
    }
    }
  
}

 

Untuk mendapatkan Token Bot dan ID telegram, kita dapat melakukan cara berikut.

  • cari BotFather

  • Buka BotFather > klik Start > ketik /newbot > beri nama bot > beri username bot > Simpan token yang diberikan untukprogram nanti. Untuk masuk ke bot yang baru kamu buat, bisa klik link yang ada pada pada bagian setelah “You will find it at …”, dan jika sudah masuk bisa ketik /start

Gambar pembuatan bot baru

Gambar token yang didapat

  • Setelah itu kamu perlu id telegram kita dengan cara : cari IDBot > klik Start > ketik /getid

  • Maka token dan ID Telegram sudah kita dapatkan.

Masukkan nama hotspot, password hotspot, token, dan ID yang anda gunakan di String ssid = “**********”;

String pass = “**********”; 

String token = “XXXXX”;

const int id = XXXXXX;

Upload program di atas, kemudian kita dapat mulai mencobanya dengan di awali ke telegram bot milik kita dan klik start.

Hasil dari project ini adalah, kita dapat menentukan angka pin di program sebagai setting awal. Jika kita memasukkan angka dengan benar sesuai pin, maka akan memunculkan keterangan bahwa pin anda benar. Sedangkan jika salah, juga akan menampilkan keterangan bahwa pin anda salah. Selain itu, setiap memasukkan pin, juga akan dikirimkan hasilnya ke telegram bot agar dapat dipantau oleh pemilik utama. Kita juga dapat melakukan reset untuk mengatur ulang pin token. 

Baca juga: Tutorial Project Internet of Things : Setting Running Text Masjid Hanya dari Rumah menggunakan Telegram

 

Bagaimana? tertarik untuk membuatnya? teman-teman bisa mengembangkan program di atas dengan menambahkan instruksi baru pada if(number == password) jika pin sudah benar dan pada else jika pin yang dimasukkan salah.

Selamat mencoba!

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

Ingin Tahu Program Kami Lebih Lanjut?

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

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp