- Komponen:
- Penjelasan Sirkuit:
- Pola Mengetuk Makan di Arduino:
- Penjelasan Kerja:
- Penjelasan Pemrograman:
Keamanan adalah perhatian utama dalam kehidupan kita sehari-hari, dan kunci digital telah menjadi bagian penting dari sistem keamanan ini. Ada banyak jenis sistem keamanan yang tersedia untuk mengamankan tempat kita. Beberapa contohnya adalah Sistem Keamanan berbasis PIR, Sistem Keamanan berbasis RFID, Sistem Kunci Digital, sistem bio-matriks, kunci Kode Elektronik. Pada postingan kali ini mari kita buat Secret Knock Detecting Door Lock menggunakan Arduino yang dapat mendeteksi pola ketukan Anda di pintu dan hanya akan membuka kunci jika pola ketukan sesuai dengan pola yang benar. Untuk Demo yang berfungsi dengan baik, periksa Video di bagian akhir.
Komponen:
- Arduino Uno
- Tekan tombol
- Bel
- Resistor 1M
- Kekuasaan
- Menghubungkan kabel
- Kotak
- Motor servo
Penjelasan Sirkuit:
Rangkaian Diagram Knocking Pattern Detector ini sangat sederhana yang berisi Arduino untuk mengontrol seluruh proses proyek, push button, buzzer, dan Servo Motor. Arduino mengontrol proses lengkap seperti mengambil bentuk kata sandi Buzzer atau Sensor, membandingkan pola, menggerakkan Servo untuk membuka dan menutup gerbang dan menyimpan pola ke Arduino.
Tombol tekan terhubung langsung ke pin D7 Arduino sehubungan dengan ground. Dan bel dihubungkan pada pin analog A0 dari Arduino dengan memperhatikan ground dan dengan resistansi 1M antara A0 dan ground juga. Sebuah Servo Motor juga terhubung ke PWM pin D3 dari Arduino.
Pola Mengetuk Makan di Arduino:
Di sirkuit ini, kami telah menggunakan Buzzer atau Peizo Sensor untuk mengambil pola input ketukan di sistem. Di sini kami menggunakan tombol tekan untuk memungkinkan mengambil input dari sensor dan juga menyimpannya ke Arduino. Sistem ini dirancang dengan mengambil ide dari pola kode Morse tetapi tidak persis sama dengan itu.
Di sini kami telah menggunakan kotak papan kartu untuk demonstrasi. Untuk mengambil input, kami menjatuhkan papan setelah menekan tombol push. Di sini kami telah mengetuk dengan mengingat periode waktu yaitu 500ms. 500ms ini karena kami telah memperbaikinya dalam kode dan pola input tergantung padanya. Jangka waktu 500ms ini akan menentukan inputnya adalah 1 atau 0. Periksa kode di bawah ini untuk memahami hal ini.
Saat kami mengetuknya, Arduino mulai memantau waktu ketukan pertama hingga ketukan kedua dan memasukkannya ke dalam susunan. Di sini, di sistem ini, kami melakukan 6 pukulan. Artinya kita akan mendapatkan 5 periode waktu.
Sekarang kita periksa jangka waktunya satu per satu. Pertama, kita periksa periode waktu antara ketukan pertama dan ketukan kedua, jika selisih waktu antara ketukan pertama kurang dari 500 md maka akan menjadi 0 dan jika lebih besar dari 500 md akan menjadi 1 dan akan disimpan ke dalam variabel. Sekarang setelah itu, kami memeriksa periode waktu antara ketukan kedua dan ketukan ketiga dan seterusnya.
Akhirnya, kita akan mendapatkan output 5 digit dalam format 0 dan 1 (biner).
Penjelasan Kerja:
Cara kerja Smart Lock Project berbasis Knock itu sederhana. Pertama kita harus menyimpan pola di sistem. Jadi kita harus tekan dan tahan push button sampai ketukan 6 kali. Di sini, di proyek ini, saya telah menggunakan 6 ketukan tetapi pengguna dapat mengubahnya sesuai keinginan. Setelah enam kali ketukan, Arduino menemukan pola ketukan dan menyimpannya di EEPROM. Sekarang setelah menyimpan pola masukan, tekan dan segera lepaskan tombol tekan untuk mengambil masukan dari sensor ke Arduino untuk membuka kunci. Sekarang kami harus mengetuk 6 kali. Setelah itu, Arduino menerjemahkannya dan membandingkan dengan pola yang disimpan. Jika terjadi kecocokan maka Arduino membuka pintu dengan mengendarai motor servo.
Catatan: ketika kita menekan atau menekan dan menahan tombol tekan Arduino memulai timer 10 detik untuk mengambil semua 6 ketukan. Berarti pengguna harus mengetuk dalam waktu 10 detik ini. Dan pengguna dapat membuka monitor Serial untuk melihat log.
Penjelasan Pemrograman:
Dalam sebuah program, pertama-tama kami menyertakan file header dan mendefinisikan pin input dan output dan menentukan variabel makro dan yang dideklarasikan seperti yang Anda lihat di Kode Lengkap di bagian kode di bawah ini.
Setelah ini, dalam fungsi pengaturan , kami memberikan arahan ke pin yang ditentukan dan memulai motor servo.
batal penyiapan () {pinMode (sw, INPUT_PULLUP); myServo.attach (servoPin); myServo.write (180); Serial.begin (9600); }
Setelah itu, kita mengambil input dan menyimpan pola input atau waktu ketukan dalam sebuah array.
void loop () {int i = 0; if (digitalRead (sw) == LOW) {Serial.println ("Start"); penundaan (1000); stt panjang = millis (); while (millis () <(stt + patternInputTime)) {int temp = analogRead (A0); if (temp> sensitivitas && flag == 0 && i <= patternLenth) {…………..
Setelah itu, kami memecahkan kode pola input
untuk (int i = 0; i
Dan simpan jika push button masih ditekan
if (digitalRead (sw) == 0) {untuk (int i = 0; i
Dan jika push button tidak tetap ditekan maka Arduino akan membandingkan pola input decoded dengan pola yang disimpan.
else {if (knok == 1) {for (int i = 0; i
Jika ada kata sandi yang cocok, maka Servo membuka gerbang jika tidak, tidak ada yang terjadi tetapi pengguna dapat melihat hasil melalui monitor serial.
Serial.println (acceptFlag); if (acceptFlag> = patternLenth-1) {Serial.println ("Accepted"); myServo.write (openGate); penundaan (5000); myServo.write (closeGate); } else Serial.println ("Ditolak"); }
Anda dapat memeriksa kode lengkap di bawah ini dengan Video demo.