Arduino Khóa cửa bằng bàn phím số
Trong hướng dẫn này, chúng ta học cách chế tạo một hệ thống khóa cửa có mật khẩu sử dụng bàn phím và khóa điện từ.
Khi cửa được mở bằng mật khẩu đúng, nó sẽ giữ cửa ở trạng thái mở trong 20 giây, sau đó tự động khóa cửa lại. Mã Arduino hỗ trợ nhiều mật khẩu.
※ Lưu ý:
Chúng tôi cũng có các hướng dẫn về hệ thống khóa cửa khác:
Phần cứng cần chuẩn bị
| 1 | × | Arduino Uno R3 | ||
| 1 | × | USB 2.0 cable type A/B (for USB-A PC) | ||
| 1 | × | USB 2.0 cable type C/B (for USB-C PC) | ||
| 1 | × | Bàn phím ma trận 3x4 and 4x4 Kit | ||
| 1 | × | (Hoặc) Bàn phím ma trận 3x4 | ||
| 1 | × | (Hoặc) Bàn phím ma trận 4x4 | ||
| 1 | × | Relay | ||
| 1 | × | Solenoid Lock | ||
| 1 | × | 12V Power Adapter | ||
| 1 | × | DC Power Jack | ||
| 1 | × | dây jumper | ||
| 1 | × | (Khuyến nghị) Screw Terminal Block Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Breadboard Shield for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Enclosure for Arduino Uno | ||
| 1 | × | (Khuyến nghị) Prototyping Base Plate & Breadboard Kit for Arduino UNO |
Or you can buy the following kits:
| 1 | × | DIYables STEM V3 Starter Kit (Arduino included) | ||
| 1 | × | DIYables Sensor Kit (30 sensors/displays) | ||
| 1 | × | DIYables Sensor Kit (18 sensors/displays) |
Về bàn phím số và khóa solenoid
Nếu bạn chưa biết về khóa solenoid và nút nhấn (bố trí chân, cách hoạt động, cách lập trình ...), hãy tìm hiểu về chúng trong các bài hướng dẫn sau:
Sơ đồ đấu dây
- Arduino - Khóa cửa bằng bàn phím số, khóa solenoid

This image is created using Fritzing. Click to enlarge image
Mã Arduino - Hệ thống khóa cửa bằng mật khẩu sử dụng keypad, khóa solenoid
※ Lưu ý:
Địa chỉ I2C của LCD có thể khác nhau tùy theo nhà sản xuất. Trong mã nguồn, chúng ta đã sử dụng 0x27 được chỉ định bởi nhà sản xuất DIYables.
Hướng dẫn từng bước
- Kết nối Arduino với máy tính qua cáp USB
- Mở Arduino IDE, chọn bo mạch và cổng đúng
- Chuyển đến biểu tượng Thư viện ở thanh bên trái của Arduino IDE.
- Tìm kiếm “keypad”, sau đó tìm thư viện keypad của Mark Stanley, Alexander Brevig
- Nhấn nút Cài đặt để cài đặt thư viện keypad.

- Sao chép mã ở trên và mở bằng Arduino IDE
- Nhấn Nút tải lên trên Arduino IDE để tải mã lên Arduino
- Mở Serial Monitor
- Nhấn các phím 12345 và nhấn #
- Nhấn các phím 1234ABC và nhấn #
- Xem trạng thái của lưỡi khóa trong 20 giây.
- Xem kết quả trên Serial Monitor
Giải thích mã nguồn
Các mật khẩu hợp lệ được định nghĩa sẵn trong mã Arduino.
Một chuỗi được dùng để lưu trữ mật khẩu người dùng nhập vào, được gọi là chuỗi đầu vào. Trên keypad, hai phím (* và #) được sử dụng cho các mục đích đặc biệt: xóa mật khẩu và kết thúc mật khẩu. Hệ thống hoạt động như sau:
- Ngoại trừ hai phím đặc biệt, nếu nhấn một phím khác, nó được thêm vào chuỗi nhập
- Nếu phím * được nhấn, chuỗi nhập được làm rỗng. Bạn có thể dùng nó để bắt đầu hoặc khởi động lại việc nhập mật khẩu
- Nếu phím # được nhấn:
- chuỗi nhập được so sánh với các mật khẩu được định sẵn. Nếu nó khớp với một trong các mật khẩu được định sẵn, điều khiển rơ-le để mở cửa.
- Dù mật khẩu có đúng hay không, chuỗi nhập được làm rỗng cho lần nhập tiếp theo.
- Trong đoạn mã ở trên, để đơn giản, chúng tôi đã sử dụng hàm delay. Nên dùng millis() thay cho delay(). Xem Cách sử dụng millis() thay cho delay()
- Bạn có thể thêm một Arduino - Chuông Piezo để phát ra tiếng beep mỗi khi bàn phím được nhấn.
- Trong các đoạn mã ở trên, cửa được khóa lại sau 20 giây. Bạn có thể thay thế bằng một Arduino - Cảm biến cửa. Cửa sẽ bị khóa khi cảm biến cửa phát hiện cửa bị người dùng đóng.
- Trong đoạn mã ở trên, các mật khẩu được nhúng sẵn. Trong thực tế, nó nên có thể thêm/xóa/thay đổi mật khẩu một cách động thông qua một chế độ đặc biệt. Nếu vậy, các mật khẩu nên được lưu trong bộ nhớ EEPROM. Số lượng mật khẩu có thể lưu được phụ thuộc vào kích thước EEPROM. Mã sẽ trở nên phức tạp. Nếu bạn muốn xây dựng hệ thống như vậy, chúng tôi cung cấp một dịch vụ lập trình. Xin đừng ngần ngại liên hệ với chúng tôi.
※ Lưu ý:
Video Tutorial
Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.