By | 04/01/2021
ESP32 Door Lock Keypad 4x3

Keypad 4×3 yang saya gunakan berwarna hitam bukan yang berwarna dan tipis bedanya hanya pada skema pin nya saja dengan keypad yang tipis. namun saya akan menampilkan pinout keduanya sehingga kalian tidak akan kebingungan saaat mengikuti tutorial membuat door lock ESP32 dengan PIN Keypad 4×3.

Kita akan membuat proyek kunci pintu digital dimana kuncinya menggunakan password atau pin yang di input dari keypad berukuran 4×3.

Adapun pin nya kita akan menggunakan tipe integer sehingga nilainya adalah bilangan bulat bukan tipe char atau string. Kemudian karena keypad ini strukturnya angka, bintang dan pagar, maka kita akan gunakan * (bintang) sebagai tombol cancel dan # sebagai tombol enter.

Aplikasi Penerapan Tutorial Solenoid Door Lock dan Keypad 4×3

  1. Kunci Pintu Digital Sekolah
  2. Kunci Pintu Digital Hotel
  3. Kunci Pintu Digital Kantor
  4. Kunci Pintu Digital Rumah

dan semuanya menggunakan PIN dari input Keypad 4×3

Hardware yang dibutuhkan

  1. Modul Belajar ESP32
  2. Wemos D1 Mini ESP32
  3. Keypad 4×3
  4. Solenoid Door Lock
  5. Modul Relay 5V DC
  6. Adaptor ./ Baterai 12V

Beli semua komponen diatas disini

Langkah Tutorial Membuat Kunci Digital Dengan Keypad 4×3

Tutorial ESP32 Door Lock dengan PIN Keypad 4x3
  1. Rangkai semua komponen seperti pada gambar diatas
  2. Download library Keypad.h disini
  3. Buat program seperti dibawah
  4. Test hasil program

Program Arduino IDE Tutorial Door Lock dengan Keypad

#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 3; //four columns

#define pinrelay 26

char hexaKeys[ROWS][COLS] = {
  {'1', '2', '3'},
  {'4', '5', '6'},
  {'7', '8', '9'},
  {'*', '0', '#'}
};
byte rowPins[ROWS] = {16, 14, 33, 32}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {17, 15, 12}; //connect to the column pinouts of the keypad

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
String StringVal;
int val, pinkey = 2021;

void setup() {
  // put your setup code here, to run once:
Serial.begin(9600);
pinMode (pinrelay, OUTPUT);
digitalWrite(pinrelay, 1);
}

void loop() {
  // put your main code here, to run repeatedly:
char Key = customKeypad.getKey();

  if (Key) {
    if (Key >= '0' && Key <= '9') {
      StringVal += Key;
      Serial.println(StringVal);
    }
    else if (Key == '#') {
      if (StringVal.length() > 0) {
        val = StringVal.toInt();
        Serial.println(val);
        if (val == pinkey){
          Serial.println("Pintu Terbuka");
          digitalWrite (pinrelay, 0);
          delay(2000);
          digitalWrite (pinrelay, 1);
        } else {
          digitalWrite(pinrelay, 1);
          Serial.println("Pin Salah");
        }
        StringVal = "";
      }
    }
    else if (Key == '*') {
      StringVal = "";
    }
  }
}

Saya akan menjelaskan code penting yang ada diatas untuk memudahkan pemahan anda.

Berikut merupakan syntax untuk membaca karakter yang di input dari keypad dalam bentuk tipe data char

char Key = customKeypad.getKey();

Berikut merupakan cara mengkonversi hasil pembacaan tipe char ke String

StringVal += Key;

Berikut merupakan syntax untuk mengkonversi dari tipe data string ke integer

val = StringVal.toInt();

Dan terkahir adalah program seleksi bintang sebagai cancel dan # sebagai enter

 else if (Key == '#') {
      if (StringVal.length() > 0) {
        val = StringVal.toInt();
        Serial.println(val);
        StringVal = "";
      }
    }
    else if (Key == '*') {
      StringVal = "";
    }
  }

Semoga apa yang saya jelaskan bisa dimengerti, namun jika belum dimenegerti silahkan komentar dibawah ini.

salam dari anakkendali.com

Keyword

  1. Tutorial esp32 door lock
  2. Tutorial ESP32 Keypad 4×3
  3. Belajar ESP32 Pemula
  4. Belajar ESP32 IoT
  5. Door Lock ESP32
  6. Konvert Char to Int Keypad
  7. Angka Bulat Keypad

Leave a Reply

Your email address will not be published. Required fields are marked *