Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Sistem Kunci Pintu Tanpa Kunci Arduino dengan Keypad dan LCD

Komponen dan persediaan

Arduino UNO
× 1
Pad Tombol SparkFun 4x4 - Kompatibel dengan LED
× 1
Adafruit LCD Standar - 16x2 Putih di Atas Biru
× 1
Relai (umum)
× 1
Baterai 9V (generik)
× 1
Potensiometer Putaran Tunggal- 10k ohm
× 1
Resistor 10k ohm
× 1

Aplikasi dan layanan online

Arduino IDE

Tentang proyek ini

Sistem Kunci Pintu Tanpa Kunci Arduino dengan Keypad dan LCD

  0

0

Oleh Ali Hamzah

Dalam proyek ini, kita akan membuat sistem kunci pintu tanpa kunci yang menggunakan keypad 4X4 untuk memasukkan kunci dan kunci DC untuk membuka atau menutup pintu. LCD 16X2 akan digunakan untuk tampilan.

Komponen yang Diperlukan

Komponen yang dibutuhkan untuk proyek ini adalah sebagai berikut

  • Arduino
  • Keypad 4X4
  • LCD
  • Kunci DC
  • Relai
  • Baterai 9V
  • potensiometer 10rb
  • Resistor 220-ohm

Bagaimana Cara Kerjanya?

Setiap kali tombol ditekan, mereka dicocokkan dengan tombol yang sudah disimpan. Jika tombol yang ditekan sesuai dengan password awal yang tersimpan di EEPROM yaitu '1234', maka kunci akan terbuka. Jika kata sandi tidak cocok, maka akan mencetak “akses ditolak” pada LCD.

Jika tombol '#' ditekan, ia akan meminta Anda untuk memasukkan kata sandi saat ini dan jika cocok, maka ia akan meminta Anda untuk memasukkan kata sandi baru dan kata sandi akan diubah.

Diagram Sirkuit

Pertama, sambungkan keypad 4X4 ke Arduino; sambungkan enam pin pertama pada keypad 4X4 dengan pin A0 dan A5 pada Arduino. Kemudian sambungkan dua pin terakhir pada modul keypad 4X4 ke pin digital 3 dan 2 pada Arduino.

Setelah itu, sambungkan LCD ke Arduino. Sambungan untuk menghubungkan LCD dengan Arduino adalah sebagai berikut

  • Hubungkan pin 1 pada LCD yang merupakan pin VSS, ke GND pada Arduino
  • Hubungkan pin 2 yang merupakan pin VDD ke pin 5V pada Arduino
  • Hubungkan pin 3, yaitu V0, ke tengah potensiometer 10k dan hubungkan dua pin lainnya pada potensiometer ke 5V dan GND di Arduino. Pin ini untuk mengatur kontras LCD.
  • Hubungkan pin 4 yang merupakan pin RS ke pin 7 pada Arduino
  • Hubungkan pin 5, yang merupakan pin R/W, ke pin GND di Arduino
  • Hubungkan pin 6 yang merupakan pin Enable ke pin 6 pada Arduino
  • Hubungkan pin 11, 12, 13, dan 14 yang merupakan pin data, ke pin 5, 4, 3, dan 2 pada Arduino
  • Hubungkan pin 15, yang merupakan pin lampu latar LCD, ke 5V di Arduino melalui resistor 220-ohm
  • Hubungkan pin 16 di Arduino, yang merupakan pin negatif lampu latar, ke GND di Arduino

Terakhir, kita akan menghubungkan kunci DC dengan Arduino. Kunci beroperasi pada tegangan 7 hingga 12V, jadi kami tidak dapat langsung menghubungkannya ke Arduino. Untuk menghubungkannya ke Arduino, kita akan membutuhkan relay dan baterai.

Hubungkan pin sinyal relai ke pin 10 pada Arduino dan kunci VCC dan GND ke 5V dan GND pada Arduino. Kemudian di ujung lain relai, hubungkan negatif baterai ke umum pada relai dan NO (Biasanya terbuka) pada relai ke satu sisi kunci. Kemudian sambungkan sisi lain kunci ke terminal positif pada baterai.

Kode Kunci Tombol Arduino

Kata sandi awal adalah 1234.

#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4]; char initial_password[4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; kolom byte const =4; char hexaKeys[rows][columns] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte kolom_pin[kolom] ={A4,A5,3,2}; Keypad keypad_key =Keypad( makeKeymap(hexaKeys), pin_baris, pin_kolom, baris, kolom);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print("DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Kunci Elektronik "); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =keypad_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }  jika(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Lulus Diterima"); digitalWrite(relay_pin, RENDAH); penundaan(2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Tekan # untuk mengubah"); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi:"); liquid_crystal_display.setCursor(0,1); saya=0; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Sandi Salah"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Tekan # untuk Mengubah"); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); saya=0; }  }}membatalkan perubahan(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Saat Ini"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print(kunci); }    kunci=0; }  penundaan(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Sandi Salah"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Coba Lagi"); penundaan (1000); }  else  {    j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Baru:"); liquid_crystal_display.setCursor(0,1); while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key; liquid_crystal_display.print(kunci); EEPROM.tulis(j,kunci); j++; }    }    liquid_crystal_display.print("Pass Diubah"); penundaan (1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}  

Penjelasan Kode

Pertama-tama, kami akan menyertakan perpustakaan untuk keypad 4X4, LCD, dan perpustakaan untuk menyimpan kata sandi. Pustaka EEPROM digunakan untuk menyimpan kata sandi. Kata sandi default yang disimpan di dalamnya adalah '1234'.

#include #include#include  

Dalam fungsi loop, tombol yang ditekan akan disimpan di 'key_pressed ' dan itu akan dibandingkan dengan kunci lainnya. Jika tombol yang ditekan adalah '#', maka fungsi perubahan akan dipanggil dan akan meminta kata sandi baru.

key_pressed =keypad_key.getKey(); if(key_pressed=='#')    change(); 

Tombol yang ditekan disimpan di ‘sandi ' dan ini ditampilkan pada LCD saat tombol ditekan. Kemudian kunci tersebut akan dicocokkan dengan password awal yang tersimpan di EEPROM. Jika tombol yang ditekan cocok dengan kata sandi awal, maka kunci akan terbuka dan "Lulus diterima" akan dicetak pada LCD. Jika kata sandi tidak cocok, maka ia akan meminta untuk memasukkan kata sandi lagi.

if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }jika(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Lulus Diterima"); digitalWrite(relay_pin, RENDAH); delay(2000); 

Jika tombol '#' ditekan, maka akan memanggil 'change() ' fungsi. Dalam fungsi perubahan, itu akan meminta Anda untuk memasukkan kata sandi saat ini. Jika kata sandi saat ini benar, maka ia akan meminta Anda untuk memasukkan kata sandi baru. Saat memasukkan kata sandi baru, kata sandi akan diubah.

void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Saat Ini"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print(kunci); }    kunci=0; }  delay(500); 

Tags:Papan tombol 4x4, Arduino, Kunci DC, Kunci Tombol, Papan tombol, lcd, Kunci

Postingan yang Direkomendasikan

Jam Alarm Arduino Menggunakan Jam Waktu Nyata dan Layar LCD

Cara Membuat Robot Self-balancing Arduino

Gunakan Arduino dan Solenoid untuk Membuat Tarian Pemanggang Roti

Buat Sistem Irigasi Otomatis DIY dengan Arduino

Kode

  • Cuplikan kode #1
  • Cuplikan kode #2
  • Cuplikan kode #3
  • Cuplikan kode #4
  • Cuplikan kode #5
Cuplikan kode #1Teks biasa
#include #include#includeLiquidCrystal liquid_crystal_display(9,8,7,6,5,4,);char password[4];char initial_password[ 4],new_password[4];int i=0;int relay_pin =10;char key_pressed=0;const byte rows =4; kolom byte const =4; char hexaKeys[rows][columns] ={{'1','2','3','A'},{'4','5','6','B'},{'7' ,'8','9','C'},{'*','0','#','D'}};byte row_pins[rows] ={A0,A1,A2,A3};byte kolom_pin[kolom] ={A4,A5,3,2}; Keypad keypad_key =Keypad( makeKeymap(hexaKeys), row_pins, column_pins, baris, kolom);void setup(){  pinMode(relay_pin, OUTPUT); liquid_crystal_display.begin(16,2); liquid_crystal_display.print("DIYhacking.com"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Kunci Elektronik "); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); initialpassword();}void loop(){  digitalWrite(relay_pin, HIGH); key_pressed =keypad_key.getKey(); if(key_pressed=='#')    change(); if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }  jika(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Lulus Diterima"); digitalWrite(relay_pin, RENDAH); penundaan(2000); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Tekan # untuk mengubah"); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi:"); liquid_crystal_display.setCursor(0,1); saya=0; }    else    {      digitalWrite(relay_pin, HIGH); liquid_crystal_display.clear(); liquid_crystal_display.print("Sandi Salah"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Tekan # untuk Mengubah"); penundaan(2000); liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); saya=0; }  }}membatalkan perubahan(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Saat Ini"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print(kunci); }    kunci=0; }  penundaan(500); if((strncmp(new_password, initial_password, 4)))  {    liquid_crystal_display.clear(); liquid_crystal_display.print("Sandi Salah"); liquid_crystal_display.setCursor(0,1); liquid_crystal_display.print("Coba Lagi"); penundaan (1000); }  else  {    j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Baru:"); liquid_crystal_display.setCursor(0,1); while(j<4)    {      char key=keypad_key.getKey(); if(key)      {        initial_password[j]=key; liquid_crystal_display.print(kunci); EEPROM.tulis(j,kunci); j++; }    }    liquid_crystal_display.print("Pass Diubah"); penundaan (1000); }  liquid_crystal_display.clear(); liquid_crystal_display.print("Masukkan Kata Sandi"); liquid_crystal_display.setCursor(0,1); key_pressed=0;}void initialpassword(){  for(int j=0;j<4;j++)    EEPROM.write(j, j+49); for(int j=0;j<4;j++)    initial_password[j]=EEPROM.read(j);}
Cuplikan kode #2Teks biasa
#include #include#include
Cuplikan kode #3Teks biasa
key_pressed =keypad_key.getKey(); if(key_pressed=='#')    change();
Cuplikan kode #4Teks biasa
if (key_pressed)  {    password[i++]=key_pressed; liquid_crystal_display.print(key_pressed); }jika(i==4)  {    delay(200); for(int j=0;j<4;j++)      initial_password[j]=EEPROM.read(j); if(!(strncmp(password, initial_password,4)))    {      liquid_crystal_display.clear(); liquid_crystal_display.print("Lulus Diterima"); digitalWrite(relay_pin, RENDAH); delay(2000);
Cuplikan kode #5Teks biasa
void change(){  int j=0; liquid_crystal_display.clear(); liquid_crystal_display.print("Kata Sandi Saat Ini"); liquid_crystal_display.setCursor(0,1); while(j<4)  {    char key=keypad_key.getKey(); if(key)    {      new_password[j++]=key; liquid_crystal_display.print(kunci); }    kunci=0; }  delay(500);

Skema

Gunakan Arduino untuk mengontrol kunci pintu solenoid yang dapat dibuka dengan kombinasi tombol yang benar.

Proses manufaktur

  1. Game Arduino Gyroscope dengan MPU-6050
  2. Sistem Kehadiran Menggunakan Arduino dan RFID dengan Python
  3. Sensor DHT11 dengan LED dan Speaker Piezo
  4. Animasi dan Permainan LCD
  5. Unopad - Pengontrol MIDI Arduino dengan Ableton
  6. Pencatat Data Suhu dan Kelembaban
  7. Sensor Kendala Sederhana dengan Arduino
  8. 4x4x4 LED cube dengan Arduino Uno dan 1sheeld
  9. Penghitung RPM berbasis Arduino dengan algoritma baru dan lebih cepat
  10. Sistem Kehadiran Berbasis Arduino dan Google Spreadsheet