- Senarai komponen
- Litar Diagram untuk Kunci Pintu Pad Arduino
- Kod Arduino untuk Kunci Pintu Keypad Digital
- Arduino Keypad DoorLock Pemasangan dan Pengujian
Sering kali, kita perlu mengamankan bilik di rumah atau pejabat kita (mungkin makmal dexter rahsia) supaya tidak ada yang dapat mengakses bilik tanpa izin kita dan memastikan perlindungan daripada pencurian atau kehilangan aksesori dan aset penting kita. Terdapat begitu banyak jenis sistem keselamatan yang ada hari ini tetapi di belakang tabir, untuk pengesahan semuanya menggunakan cap jari, pengimbas retina, pengimbas iris, id wajah, pengimbas lidah, pembaca RFID, kata laluan, pin, corak, dan lain-lain. yang murah adalah menggunakan kata laluan atau sistem berasaskan pin. Oleh itu, dalam projek ini, saya telah membina Arduino Keypad Door Lock yang boleh dipasang ke mana-mana pintu yang ada untuk melindungi mereka dengan kata laluan digital. Sebelum ini, kami juga telah membina kunci pintu menarik lain yang disenaraikan di bawah.
- Kunci Pintu RFID Arduino
- Kunci Pintu Solenoid Arduino
- Kunci Kod Digital Raspberry Pi
- 555 Kunci pintu elektronik pemasa
Sebelum membina projek penguncian pintu kata laluan kami, pertama, kami perlu mengumpulkan komponen yang diperlukan dan kemudian terus maju dan mengikuti proses pembinaan langkah demi langkah.
Senarai komponen
- Papan Arduino Uno / Pro / Mini atau Custom menggunakan Mikrokontroler Atmega 328p
- LCD 16 x 2 (Paparan Kristal Cecair)
- Pad kekunci matriks 4 x 3 atau 4 x 4 untuk Arduino
- Motor servo
- Loker pintu bercetak 3D / loker pintu disesuaikan
- Komponen tambahan untuk bekalan kuasa pengecas mudah alih 1 Amp 5 Volt
- Kotak plastik 4 "/ 6", wayar pelompat, baut mur, selongsong plastik, dll.
Litar Diagram untuk Kunci Pintu Pad Arduino
Gambarajah litar Lengkap untuk projek Kunci Pintu Digital Keypad berasaskan Arduino ditunjukkan di bawah.
Pertama sekali, kita bermula dari otak projek ini yang merupakan papan Arduino UNO. Papan Arduino disambungkan ke LCD dan motor servo. Motor servo digunakan untuk mendorong (mengunci) atau menarik (membuka kunci) selak di pintu. LCD 16 x 2 diperlukan untuk memaparkan mesej oleh Arduino, 16 x 2 bermaksud ia mempunyai 16 bilangan lajur dan 2 bilangan baris. Sekiranya anda benar-benar baru menggunakan Modul Paparan LCD 16x2, anda boleh menyemak tutorial Arduino LCD Interfacing ini untuk mengetahui lebih lanjut mengenainya.
Di sini, saya menggunakan motor servo Towerpro SG90 5v untuk membuat loker pintu khas kami. Ini adalah motor servo tahap asas dan berfungsi dengan baik dengan Arduino tanpa litar memandu atau modul luaran. Juga, kos motor servo ini sangat kurang sehingga anda mampu membelinya dengan mudah. Anda juga boleh melihat tutorial Arduino Servo Motor Control ini untuk mengetahui lebih lanjut mengenai motor servo dan cara kerjanya. Sambungkan motor servo dengan Arduino Digital pin D9 dan dengan bekalan kuasa 5volt. Motor servo ini mempunyai sejumlah 3 saluran input (GND, + 5V & SIGNAL LINE).
Dalam projek ini, saya telah menggunakan papan kekunci matriks 4 x 4 (tetapi bahagian papan kekunci 4 x 4 tidak tersedia dalam fritzing untuk membuat gambaran grafik ini), tetapi jangan risau kerana papan kekunci 4 x 3 Matrix juga berfungsi dengan baik dengan pengekodan saya. Kami memerlukan pad kekunci untuk memasukkan kata laluan dan mengunci loker pintu kami secara manual. Ia terdiri daripada 16 kekunci (suis lembut) 4 kekunci di Baris (R1, R2, R3, R4) dan 4 kekunci di Lajur (C1, C2, C3, C4) apabila kekunci ditekan, ia mewujudkan hubungan di antara baris yang sesuai dan lajur. Jadual di bawah menunjukkan cara menghubungkan Arduino anda dengan Keypad.
Pad kekunci | Arduino |
Pin 1 (baris 1) | Pin Digital1 |
Pin 2 (baris 2) | Pin Digital 2 |
Pin 3 (baris 3) | Pin digital 3 |
Pin 4 (baris 4) | Pin digital 4 |
Pin 5 (lajur 5) | Pin digital 5 |
Pin 6 (lajur 6) | Pin digital 6 |
Pin 7 (lajur 7) | Pin digital 7 |
Kod Arduino untuk Kunci Pintu Keypad Digital
Kod Kunci Pintu Arduino yang lengkap terdapat di bahagian bawah halaman ini. Anda boleh memuat naik kod secara langsung, tetapi disarankan untuk membaca perenggan di bawah ini untuk memahami bagaimana kod tersebut berfungsi. Juga, penting untuk memastikan anda telah menambahkan pustaka papan kekunci berikut ke Arduino IDE anda untuk menyusun kod dengan jayanya. Untuk melakukannya, buka pautan di bawah dan muat turun fail ZIP. Kemudian pada Arduino IDE anda, arahkan ke Sketch -> Include Library -> Add.ZIP Library dan cari fail yang baru anda muat turun.
- Perpustakaan Pad Arduino
Setelah memasukkan semua tajuk dan fail perpustakaan, tetapkan semua pin untuk LCD dan tentukan panjang kata laluan dan tetapkan kedudukan awal servo ke 0. Setelah itu, ambil jenis data "char" untuk menyatakan nombor yang dapat menahannya termasuk watak batal.
// # sertakan
Dengan sekeping kod ini (char Master = "123456";) - di bawah Char Master, saya menyatakan kata kunci kunci pintu, kemudian tetapkan bilangan baris dan lajur di papan kekunci dan juga menyatakan keyMaps dan sambungkan dengan baris dan lajur. Di bawah persediaan tidak sah, mulakan pin isyarat servo D9, status servo ditutup dan cetak nama projek / peranti / syarikat dengan kelewatan 3 saat pada waktu LCD memulakan peranti.
batal persediaan () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Arduino Door"); lcd.setCursor (0, 1); lcd.print ("- Lihat projek--"); kelewatan (3000); lcd.clear (); }
Di bawah fungsi gelung, keadaan sederhana jika ada di sana. Mengikut status (terkunci secara automatik), cetak "Pintu dekat" dengan kelewatan 3 saat dan putaran servo ke posisi tutup, kiraan data pintu sebagai 1 jika tidak, loker pintu tetap terbuka dan kiraan data 0, putaran servo terbuka ke posisi 0 darjah hingga 180 darjah dan untuk menutupnya dari 180 hingga 0. Fungsi servo open dan servo close ditunjukkan di bawah.
batal ServoOpen () {untuk (pos = 180; pos> = 0; pos - = 5) {// naik dari 0 darjah hingga 180 darjah // dalam langkah 1 darjah myservo.write (pos); // suruh servo pergi ke kedudukan dalam kelewatan 'pos' pemboleh ubah (15); // menunggu 15ms untuk servo mencapai kedudukan}} batal ServoClose () {untuk (pos = 0; pos <= 180; pos + = 5) {// naik dari 180 darjah hingga 0 darjah myservo.write (pos); // suruh servo pergi ke kedudukan dalam kelewatan 'pos' pemboleh ubah (15); // menunggu 15ms untuk servo mencapai kedudukan}}
Tulis kedudukan servo dengan kelewatan 15 saat untuk mencapai kedudukan servo. Di bawah fungsi buka kosong, cetak pada LCD "Enter Password" maka syaratnya menetapkan bahawa kata sandi yang dimasukkan harus sama dengan kunci tersuai, di dalam data badan ini dihitung dan menyimpan char ke dalam array data, kenaikan dan memasukkan kata laluan yang dicetak pada LCD jika panjang data (bilangan kunci) dan kata laluan masukan sepadan dengan Data Master (di mana terdapat kunci yang telah ditentukan). Kemudian sebagai tindakan LCD jelas, servo drive, cetak pada LCD "Door is open" dan penghitung data diset semula ke 0.
Sekiranya kunci input tidak sesuai dengan Data Master, sebagai tindakan pada cetak LCD yang jelas pada LCD "Kata Laluan yang Salah" untuk memberitahu dengan kelewatan 1 saat dan tetap dalam kedudukan terkunci dengan set penghitung data menjadi 1 dan melanjutkan proses ini dalam satu gelung.
if (data_count == Password_Lenght - 1) // jika indeks array sama dengan bilangan chars yang diharapkan, bandingkan data dengan master {if (! strcmp (Data, Master)) // sama dengan (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Pintu Terbuka"); pintu = 0; } lain {lcd.clear (); lcd.print ("Kata Laluan Salah"); kelewatan (1000); pintu = 1; } jelasData (); }
Arduino Keypad DoorLock Pemasangan dan Pengujian
Sekarang, pasangkan semuanya pada kotak plastik 4 inci / 6 inci dan powerkan dengan pengecas mudah alih, susun semuanya dengan baik menggunakan selongsong. Sebaik-baiknya, saya mungkin menggunakan percetakan 3D untuk memasang kunci saya, tetapi setelah merancang fail saya, saya mendapati bahawa percetakan 3D sangat mahal, jadi saya hanya memperbaik servo terlebih dahulu, kemudian menyambungkan loker slaid biasa dengan servo saya menggunakan plat logam dan ditutup dengan gentian kaca, walaupun berfungsi dengan baik, ia kurang selamat.
Sekiranya anda mahukan lebih banyak keselamatan, anda perlu mencetak model kunci pintu 3D yang berfungsi secara dalaman dengan servo ini. Anda boleh memuat turun fail STL yang diperlukan dari pautan di bawah dan mencetak 3D jika anda mempunyai akses ke pencetak 3D.
Muat turun fail STL untuk Percetakan 3D
Fail reka bentuk juga ditunjukkan dalam gambar di bawah.
Pada permulaan projek, pada saat pertama kali kami mengaktifkannya, kami perlu memberikan nama projek (anda juga boleh memaparkan nama syarikat) sehingga kelihatan pintar dan eksklusif seperti peranti komersial (seperti yang anda lihat di gambar di bawah).
Dengan kelewatan 3 saat, kunci pintu dengan cepat dan periksa secara langsung paparan status kunci pintu seperti yang ditunjukkan dalam gambar yang diberikan di bawah.
Apabila anda mengunci pintu secara manual dengan menekan kekunci "#", ia pertama kali menunjukkan Pintu ditutup selama 1 saat dan kemudian memaparkan Enter Password. Sebaliknya, apabila pintu tidak terkunci dengan memasukkan kata laluan yang betul, itu menunjukkan Pintu Terbuka.
Sekiranya pintu tetap dalam keadaan buka kunci, ia akan dipaparkan - Pintu terbuka selagi anda mengunci pintu secara manual mengikut pengekodan. Saya telah memberikan kod dan anda dapat menyesuaikan tetapan dengan mengubah parameter paparan kod seperti yang diperlukan. Anda juga boleh memeriksa cara kerja yang lengkap dengan video yang dipautkan di bahagian bawah halaman ini.