- Danh sách các thành phần
- Sơ đồ mạch cho Khóa cửa bàn phím Arduino
- Mã Arduino cho Khóa cửa bàn phím kỹ thuật số
- Lắp ráp và kiểm tra khóa bàn phím Arduino
Thông thường, chúng ta cần phải bảo vệ một căn phòng tại nhà hoặc văn phòng của mình (có thể là phòng thí nghiệm bí mật của nhà thám hiểm) để không ai có thể vào phòng mà không có sự cho phép của chúng ta và đảm bảo chống trộm hoặc mất các phụ kiện và tài sản quan trọng của chúng ta. Có rất nhiều loại hệ thống bảo mật hiện nay nhưng đằng sau hậu trường, để xác thực, tất cả chúng đều chuyển tiếp trên dấu vân tay, máy quét võng mạc, máy quét mống mắt, id khuôn mặt, máy quét lưỡi, đầu đọc RFID, mật khẩu, mã pin, mẫu, v.v. chi phí thấp là sử dụng mật khẩu hoặc hệ thống dựa trên mã pin. Vì vậy, trong dự án này, tôi đã xây dựng một Khóa cửa bàn phím Arduino có thể được gắn vào bất kỳ cửa nào hiện có của bạn để bảo mật chúng bằng mật khẩu kỹ thuật số. Trước đây, chúng tôi cũng đã chế tạo các loại khóa cửa thú vị khác được liệt kê dưới đây.
- Khóa cửa RFID Arduino
- Khóa cửa điện từ Arduino
- Khóa mã kỹ thuật số Raspberry Pi
- 555 Hẹn giờ khóa cửa điện tử
Trước khi xây dựng dự án khóa cửa mật khẩu của chúng tôi, trước tiên, chúng tôi cần thu thập các thành phần cần thiết và sau đó tiếp tục và thực hiện theo từng bước quá trình xây dựng.
Danh sách các thành phần
- Arduino Uno / Pro / Mini hoặc board tùy chỉnh sử dụng Vi điều khiển Atmega 328p
- 16 x 2 LCD (Màn hình tinh thể lỏng)
- Bàn phím ma trận 4 x 3 hoặc 4 x 4 cho Arduino
- Động cơ servo
- Khóa cửa in 3D / khóa cửa tùy chỉnh
- Các thành phần bổ sung để cung cấp điện cho bộ sạc di động 1 Amp 5 Volt
- Hộp nhựa 4 '' / 6 '', dây nhảy, bu lông đai ốc, vỏ nhựa, v.v.
Sơ đồ mạch cho Khóa cửa bàn phím Arduino
Sơ đồ mạch hoàn chỉnh cho dự án Khóa cửa bàn phím kỹ thuật số dựa trên Arduino của chúng tôi được hiển thị bên dưới.
Trước hết, chúng tôi bắt đầu từ bộ não của dự án này là bo mạch Arduino UNO. Bảng Arduino được kết nối với màn hình LCD và động cơ servo. Động cơ servo được sử dụng để đẩy (khóa) hoặc kéo (mở khóa) chốt trên cửa. Cần có LCD 16 x 2 để hiển thị thông báo bằng Arduino, 16 x 2 có nghĩa là nó có 16 số cột và 2 số hàng. Nếu bạn hoàn toàn mới sử dụng Mô-đun màn hình LCD 16x2, bạn có thể xem hướng dẫn Giao diện màn hình LCD Arduino này để tìm hiểu thêm về nó.
Ở đây, tôi đang sử dụng động cơ servo 5v Towerpro SG90 để làm khóa cửa tùy chỉnh của chúng tôi. Nó là một động cơ servo cấp cơ bản và hoạt động tốt với Arduino mà không cần bất kỳ mạch điều khiển hoặc mô-đun bên ngoài nào. Ngoài ra, chi phí của động cơ servo này rất thấp nên bạn có thể dễ dàng mua được. Bạn cũng có thể xem hướng dẫn Điều khiển động cơ Servo Arduino này để tìm hiểu thêm về động cơ servo và cách hoạt động của nó. Kết nối động cơ servo với chân D9 của Arduino Digital và với nguồn điện 5volt. Động cơ servo này có tổng cộng 3 đường đầu vào (GND, + 5V & DÒNG TÍN HIỆU).
Trong dự án này, tôi đã sử dụng bàn phím ma trận 4 x 4 (nhưng phần bàn phím 4 x 4 không có sẵn để tạo biểu diễn đồ họa này), nhưng đừng lo lắng vì bàn phím Ma trận 4 x 3 cũng hoạt động tốt với mã của tôi. Chúng tôi cần một bàn phím để nhập mật khẩu và khóa tủ khóa cửa tùy chỉnh theo cách thủ công. Nó bao gồm 16 phím (công tắc mềm) 4 phím trong Hàng (R1, R2, R3, R4) và 4 phím trong Cột (C1, C2, C3, C4) khi một phím được nhấn, nó sẽ thiết lập kết nối giữa các hàng tương ứng và các cột. Bảng dưới đây cho thấy cách kết nối Arduino của bạn với Bàn phím.
Bàn phím | Arduino |
Ghim 1 (hàng 1) | Pin kỹ thuật số1 |
Pin 2 (hàng 2) | Pin kỹ thuật số 2 |
Pin 3 (hàng 3) | Chân kỹ thuật số 3 |
Pin 4 (hàng 4) | Chân số 4 |
Pin 5 (cột 5) | Chân kỹ thuật số 5 |
Pin 6 (cột 6) | Chân kỹ thuật số 6 |
Pin 7 (cột 7) | Chân số 7 |
Mã Arduino cho Khóa cửa bàn phím kỹ thuật số
Bạn có thể tìm thấy Mã khóa cửa Arduino đầy đủ ở cuối trang này. Bạn có thể trực tiếp tải lên mã, nhưng bạn nên đọc các đoạn dưới đây để hiểu cách hoạt động của mã. Ngoài ra, điều quan trọng là phải đảm bảo rằng bạn đã thêm thư viện bàn phím sau vào IDE Arduino của mình để biên dịch mã thành công. Để làm điều đó, chỉ cần mở liên kết bên dưới và tải xuống tệp ZIP. Sau đó, trên Arduino IDE của bạn, điều hướng đến Sketch -> Bao gồm Thư viện -> Thư viện Add.ZIP và duyệt tìm tệp bạn vừa tải xuống.
- Thư viện bàn phím Arduino
Sau khi chèn tất cả các tệp tiêu đề và thư viện, hãy gán tất cả các pin cho LCD và xác định độ dài mật khẩu và đặt vị trí ban đầu của servo là 0. Sau đó, lấy một kiểu dữ liệu “char” để khai báo số có thể giữ nó bao gồm ký tự null.
// # bao gồm
Với đoạn mã này (char Master = "123456";) - dưới Char Master, tôi khai báo mật khẩu của khóa cửa, sau đó gán số hàng và cột trong bàn phím và cũng khai báo bản đồ phím và kết nối với các hàng và cột. Trong thiết lập void, khởi tạo chân tín hiệu servo D9, trạng thái servo đóng và in tên của dự án / thiết bị / công ty với thời gian trễ 3 giây trên màn hình LCD khi khởi động thiết bị.
void setup () {myservo.attach (9); ServoClose (); lcd.begin (16, 2); lcd.print ("Cửa Arduino"); lcd.setCursor (0, 1); lcd.print ("- Xem dự án--"); chậm trễ (3000); lcd.clear (); }
Trong hàm lặp, điều kiện if-else đơn giản là ở đó. Theo trạng thái (nó được khóa tự động), in “Cửa đang đóng” với 3 giây trễ và servo xoay đến vị trí đóng, dữ liệu cửa được tính là 1 nếu không khóa cửa vẫn mở và dữ liệu đếm là 0, mở servo xoay đến vị trí 0 độ đến 180 độ và để đóng nó đi từ 180 đến 0. Chức năng mở servo và đóng servo được hiển thị bên dưới.
void ServoOpen () {for (pos = 180; pos> = 0; pos - = 5) {// đi từ 0 độ đến 180 độ // theo từng bước 1 độ myservo.write (pos); // yêu cầu servo chuyển đến vị trí trong biến 'pos' delay (15); // đợi 15ms để servo đến vị trí}} void ServoClose () {for (pos = 0; pos <= 180; pos + = 5) {// đi từ 180 độ xuống 0 độ myservo.write (pos); // yêu cầu servo chuyển đến vị trí trong biến 'pos' delay (15); // đợi 15ms để servo đến vị trí}}
Viết vị trí của servo với thời gian trễ 15 giây để đến vị trí của servo. Trong chức năng mở void, in trên màn hình LCD “Enter Password” sau đó điều kiện chỉ định rằng mật khẩu đã nhập phải giống với khóa tùy chỉnh, trong phần nội dung này dữ liệu được tính và lưu trữ char vào mảng dữ liệu, mật khẩu tăng dần và nhập được in trên màn hình LCD nếu độ dài dữ liệu (số lượng khóa) và mật khẩu đầu vào khớp với Data Master (nơi có các khóa được xác định trước). Sau đó, khi màn hình LCD hoạt động rõ ràng, ổ đĩa servo, in trên màn hình LCD “Cửa đang mở” và bộ đếm dữ liệu được đặt lại về 0.
Nếu phím đầu vào không khớp với Data Master, như một hành động trên màn hình LCD, chữ in rõ ràng trên màn hình LCD “Mật khẩu sai” sẽ thông báo với độ trễ 1 giây và vẫn ở vị trí khóa với bộ đếm dữ liệu được đặt thành 1 và tiếp tục quá trình này trong một vòng lặp.
if (data_count == Password_Lenght - 1) // nếu chỉ số mảng bằng số ký tự mong đợi, hãy so sánh dữ liệu với master {if (! strcmp (Data, Master)) // bằng (strcmp (Data, Master) == 0) {lcd.clear (); ServoOpen (); lcd.print ("Cửa đang Mở"); cửa = 0; } else {lcd.clear (); lcd.print ("Mật khẩu Sai"); chậm trễ (1000); cửa = 1; } xóa dữ liệu(); }
Lắp ráp và kiểm tra khóa bàn phím Arduino
Bây giờ, đặt mọi thứ vào một hộp nhựa 4 inch / 6 inch và cấp nguồn cho nó bằng bộ sạc di động, sắp xếp mọi thứ thật đẹp bằng cách sử dụng vỏ. Lý tưởng nhất, tôi có thể sử dụng in 3D để lắp ráp khóa của mình, nhưng sau khi thiết kế các tệp của mình, tôi thấy rằng in 3D rất tốn kém, vì vậy tôi chỉ cố định servo trước, sau đó kết nối khóa trượt bình thường với servo bằng cách sử dụng tấm kim loại và phủ nó được làm bằng sợi thủy tinh, mặc dù nó hoạt động tốt, nhưng nó kém an toàn hơn.
Nếu bạn muốn bảo mật hơn, thì bạn phải in mô hình khóa cửa 3D hoạt động bên trong với servo này. Bạn có thể tải xuống các tệp STL cần thiết theo liên kết bên dưới và in 3D chúng nếu bạn có quyền truy cập vào máy in 3D.
Tải xuống tệp STL để in 3D
Các tập tin thiết kế cũng được hiển thị trong hình dưới đây.
Ở phần đầu của dự án, thời điểm chúng tôi bật nguồn lần đầu tiên, chúng tôi cần đặt tên dự án (bạn có thể hiển thị tên công ty cũng được) để nó trông thông minh và độc quyền giống như một thiết bị thương mại (như bạn có thể thấy trong hình bên dưới).
Với 3 giây chậm trễ, nhanh chóng khóa cửa và kiểm tra trực tiếp màn hình hiển thị trạng thái của khóa cửa như trong hình dưới đây.
Khi bạn khóa cửa theo cách thủ công bằng cách nhấn phím “#”, đầu tiên nó hiển thị Cửa được đóng trong 1 giây và sau đó hiển thị Enter Password. Mặt khác, khi cửa được mở bằng cách nhập đúng mật khẩu, nó sẽ hiển thị Cửa đang mở.
Nếu cửa vẫn trong tình trạng mở khóa, nó sẽ hiển thị - Cửa đang mở miễn là bạn khóa cửa thủ công theo mã hóa. Tôi đã đưa mã và bạn có thể tùy chỉnh cài đặt bằng cách thay đổi thông số hiển thị mã theo yêu cầu. Bạn cũng có thể kiểm tra hoạt động hoàn chỉnh với video được liên kết ở cuối trang này.