RFID (Nhận dạng tần số vô tuyến) là một công nghệ rẻ tiền và dễ tiếp cận. Nó có thể được sử dụng trong nhiều ứng dụng như kiểm soát ra vào, an ninh, theo dõi tài sản, theo dõi người, v.v. Bạn đã thấy hệ thống Khóa cửa RFID trong Khách sạn, văn phòng và nhiều nơi khác mà bạn chỉ cần đặt thẻ gần đầu đọc RFID trong một giây và cửa sẽ được mở. Chúng tôi đã sử dụng một đầu đọc RFID và thẻ trong nhiều dự án dựa trên RFID.
Trong các bài viết trước của chúng tôi, chúng tôi đã chế tạo một khóa cửa RFID đơn giản, lần này chúng tôi sử dụng Khóa cửa điện từ thực và điều khiển nó bằng RFID và Arduino. Ở đây, một cảm biến Hiệu ứng Hall và một nam châm được sử dụng để phát hiện chuyển động của cửa. Cảm biến Hall Effect sẽ được đặt trên khung cửa và nam châm trên chính cánh cửa. Khi cảm biến Hall Effect và nam châm ở gần nhau, cảm biến Hall Effect sẽ ở trạng thái thấp và cửa sẽ vẫn đóng, và khi cảm biến và nam châm không đóng có nghĩa là cửa đang mở và cảm biến Hall ở trạng thái cao. tiểu bang. Chúng tôi sẽ sử dụng cơ chế Hall Effect này để khóa và mở cửa tự động. Để tìm hiểu thêm về Cảm biến Hall và cách hoạt động của nó, hãy theo liên kết.
Thành phần bắt buộc
- Arduino Uno
- Mô-đun RFID-RC522
- Khóa điện từ 12v
- Mô-đun chuyển tiếp
- Cảm biến hiệu ứng hall
- Điện trở 10kΩ
- Buzzer
Khóa điện từ
Khóa điện từ hoạt động trên cơ chế khóa cơ điện tử. Loại khóa này có sên được cắt xéo và giá đỡ tốt. Khi nguồn điện được cấp vào, DC sẽ tạo ra một từ trường di chuyển dây sên vào bên trong và giữ cửa ở vị trí không khóa. Con sên sẽ giữ nguyên vị trí của nó cho đến khi rút điện. Khi bị ngắt điện, sên sẽ di chuyển ra ngoài và khóa cửa. Nó không sử dụng bất kỳ nguồn điện nào ở trạng thái bị khóa. Để điều khiển khóa điện từ, bạn cần một nguồn điện có thể cung cấp 12V @ 500mA.
Sơ đồ mạch
Sơ đồ mạch cho Khóa cửa Solenoid sử dụng Arduino được đưa ra dưới đây.
Kết nối giữa Arduino và RFID được đưa ra trong bảng dưới đây. Chân dương của bộ rung được kết nối với chân số 4 của Arduino và chân GND được kết nối với chân nối đất của Arduino. Một điện trở 10K được sử dụng giữa chân VCC và chân OUT của cảm biến Hiệu ứng Hall. Khóa điện từ được kết nối với Arduino thông qua mô-đun chuyển tiếp.
Pin RFID | Arduino Uno Pin |
SDA | Kỹ thuật số 10 |
SCK | Kỹ thuật số 13 |
MOSI | Kỹ thuật số 11 |
MISO | Kỹ thuật số 12 |
IRQ | Không kết nối |
GND | GND |
RST | Kỹ thuật số 9 |
3,3V | 3,3V |
Chân cảm biến hiệu ứng Hall | Arduino Uno Pin |
5V | 5V |
GND | GND |
NGOÀI | 3 |
Sau khi hàn tất cả các thành phần trên bo mạch theo sơ đồ mạch, nó giống như hình ảnh dưới đây:
Giải thích mã
Mã hoàn chỉnh cho khóa điện từ Arduino này được đưa ra ở cuối tài liệu. Ở đây chúng tôi sẽ giải thích mã này từng bước để hiểu rõ hơn.
Bắt đầu mã bằng cách bao gồm tất cả các thư viện cần thiết. Ở đây nó chỉ yêu cầu hai thư viện, một cho giao tiếp SPI giữa Arduino và RFID, và thứ hai cho mô-đun RFID. Cả hai thư viện có thể được tải xuống từ các liên kết dưới đây:
- SPI.h
- MFRC522.h
Bây giờ xác định các chân cho Buzzer, Solenoid Lock và Mô-đun RFID
int Buzzer = 4; const int LockPin = 2; #define SS_PIN 10 #define RST_PIN 9
Sau đó, xác định chân Khóa và chân Buzzer làm đầu ra và chân cảm biến Hall Effect làm đầu vào và bắt đầu giao tiếp SPI.
pinMode (LockPin, OUTPUT); pinMode (Buzzer, OUTPUT); pinMode (hall_sensor, INPUT); SPI.begin (); // Khởi tạo xe buýt SPI mfrc522.PCD_Init (); // Khởi tạo MFRC522
Bên trong vòng lặp khoảng trống , đọc các giá trị cảm biến sảnh và khi giá trị này trở nên thấp, hãy đóng cửa.
state = digitalRead (hall_sensor); Serial.print (bang); chậm trễ (3000); if (state == LOW) {digitalWrite (LockPin, LOW); Serial.print ("Cửa đã đóng"); digitalWrite (Buzzer, HIGH); chậm trễ (2000); digitalWrite (Buzzer, LOW);}
Bên trong chức năng vòng lặp vô hiệu, nó sẽ kiểm tra xem có thẻ RFID mới hay không và nếu có thẻ mới, thì nó sẽ kiểm tra UID của thẻ. Đối với một thẻ hợp lệ, nó sẽ mở khóa; nếu không, nó sẽ in ' Bạn không được ủy quyền. 'Hoàn thành công việc được hiển thị trong video ở cuối.
if (! mfrc522.PICC_IsNewCardPresent ()) {return; } // Chọn một trong các thẻ if (! Mfrc522.PICC_ReadCardSerial ()) {return; } // Hiển thị UID trên màn hình nối tiếp String content = ""; ký tự byte; for (byte i = 0; i <mfrc522.uid.size; i ++) {content.concat (String (mfrc522.uid.uidByte <0x10? "0": "")); content.concat (String (mfrc522.uid.uidByte, HEX)); } Serial.println (); Serial.print ("Tin nhắn:"); content.toUpperCase (); if (content.substring (1) == "60 4E 07 1E") // thay đổi ở đây UID của thẻ / thẻ mà bạn muốn cấp quyền truy cập {digitalWrite (LockPin, HIGH); Serial.print ("Đã mở khóa cửa"); digitalWrite (Buzzer, HIGH); chậm trễ (2000); digitalWrite (Buzzer, LOW); } else {Serial.println ("Bạn không được phép"); digitalWrite (Buzzer, HIGH); chậm trễ (2000); digitalWrite (Buzzer,THẤP); }}
Kiểm tra Khóa điện từ RFID
Khi bạn đã sẵn sàng với mã và phần cứng, bạn có thể bắt đầu thử nghiệm dự án Solenoid Door Lock. Ở đây chúng tôi đã hàn tất cả các thành phần trên bảng mạch để nó có thể được gắn trên cửa một cách dễ dàng.
Vì vậy, để kiểm tra nó, hãy gắn bảng perf vào khung cửa và nam châm trên cửa để nó có thể phát hiện chuyển động của cửa. Hình dưới đây cho thấy cách cố định nam châm và cảm biến Hall trên cửa.
Bây giờ hãy quét thẻ RFID được ủy quyền của bạn để mở khóa cửa. Khóa cửa điện từ sẽ vẫn mở cho đến khi đầu ra cảm biến Hall Effect ở mức cao. Bây giờ khi cánh cửa tiếp cận gần cảm biến Hall trong khi đóng, trạng thái cảm biến Hall Effect sẽ chuyển thành Thấp do từ trường (được tạo ra bởi nam châm gắn ở cửa) và khóa sẽ được đóng lại.
Thay vì sử dụng cảm biến Hiệu ứng Hall, bạn có thể tạo độ trễ để giữ cho cửa mở trong một thời gian xác định.
Mã hoàn chỉnh và video hoạt động được đưa ra bên dưới. Ngoài ra, hãy kiểm tra các loại khóa cửa khác sử dụng các công nghệ khác nhau.