Mục lục:

Hướng dẫn khóa Arduino RFID: 6 bước (có hình ảnh)
Hướng dẫn khóa Arduino RFID: 6 bước (có hình ảnh)

Video: Hướng dẫn khóa Arduino RFID: 6 bước (có hình ảnh)

Video: Hướng dẫn khóa Arduino RFID: 6 bước (có hình ảnh)
Video: Arduino | Cách sử dụng mạch RFID RC522 | PHẦN 1 2024, Tháng mười một
Anonim
Image
Image
Hướng dẫn khóa Arduino RFID
Hướng dẫn khóa Arduino RFID
Hướng dẫn khóa Arduino RFID
Hướng dẫn khóa Arduino RFID

Những người bạn thân mến chào mừng đến với một Có thể hướng dẫn khác. Đây là Nick từ education8s.tv và hôm nay chúng ta sẽ tìm hiểu cách sử dụng RFID Reader này với Arduino để xây dựng một hệ thống khóa đơn giản.

Lần đầu tiên, chúng tôi sẽ sử dụng thẻ RFID với Arduino. Tôi đã xây dựng một dự án đơn giản đọc ID duy nhất (UID) của mỗi thẻ RFID mà chúng tôi đặt gần đầu đọc và hiển thị nó trên màn hình OLED này. Nếu UID của thẻ bằng một giá trị được xác định trước được lưu trữ trong bộ nhớ của Arduino, thì trên màn hình, chúng ta sẽ thấy thông báo “Đã mở khóa”. Nếu ID duy nhất của thẻ không bằng giá trị được xác định trước, thông báo Mở khóa sẽ không xuất hiện. Thật tuyệt phải không?

Có rất nhiều thứ để nói, vì vậy chúng ta hãy bắt đầu!

Bước 1: Nhận tất cả các bộ phận

Nhận tất cả các bộ phận
Nhận tất cả các bộ phận

Các phần cần thiết để xây dựng dự án này là:

  • Một Arduino Uno ▶
  • Trình đọc RFID ▶
  • Màn hình OLED ▶
  • Một breadboard nhỏ ▶
  • Một số dây ▶

Phần tùy chọn:

Powerbank ▶

Tổng chi phí của dự án là khoảng $ 15.

Bước 2: Đầu đọc RFID RC522

Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522
Đầu đọc RFID RC522

Mỗi thẻ RFID có một chip nhỏ bên trong. Nếu tôi đặt đèn pin bên dưới thẻ RFID này, bạn có thể thấy con chip nhỏ và cuộn dây bao quanh nó. Con chip này không có pin để lấy điện. Nó nhận điện từ đầu đọc, thiết bị này, sử dụng không dây cuộn dây lớn này. Đầu đọc có thể đọc thẻ RFID như thẻ này từ khoảng cách lên đến 20mm!

Con chip tương tự cũng tồn tại trong thẻ RFID chuỗi khóa.

Mỗi thẻ RFID có một số duy nhất xác định nó. Đó là UID mà chúng tôi hiển thị trên màn hình OLED. Ngoại trừ UID này, mỗi thẻ có thể lưu trữ dữ liệu. Trong loại thẻ này, chúng tôi có thể lưu trữ tới 1K dữ liệu! Thật ấn tượng phải không? Chúng tôi sẽ không sử dụng chức năng này hôm nay nhưng sẽ làm như vậy trong một phiên bản Có thể hướng dẫn trong tương lai. Ngày nay, tất cả những gì chúng ta quan tâm là xác định một thẻ cụ thể bằng UID của nó. Chi phí của đầu đọc RFID và hai thẻ RFID này là khoảng $ 4.

Bước 3: Màn hình OLED

Image
Image
Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận

Đây là một màn hình hiển thị rất đẹp để sử dụng với Arduino. Nó là một màn hình OLED và điều đó có nghĩa là nó có mức tiêu thụ điện năng thấp. Mức tiêu thụ điện năng của màn hình này là khoảng 10-20 mA và nó phụ thuộc vào số lượng điểm ảnh được chiếu sáng.

Màn hình có độ phân giải 128 × 64 pixel và kích thước nhỏ. Có hai biến thể của màn hình. Một trong số chúng là đơn sắc, và một trong số chúng giống như loại mà tôi sử dụng có thể hiển thị hai màu, vàng và xanh lam. Phần trên của màn hình chỉ có thể hiển thị màu vàng, phần dưới chỉ có màu xanh lam.

Màn hình OLED này rất sáng và nó có hỗ trợ thư viện tuyệt vời. Adafruit đã phát triển một thư viện rất đẹp cho màn hình này. Thêm vào đó, màn hình sử dụng giao diện I2C, vì vậy việc kết nối với Arduino vô cùng dễ dàng. Bạn chỉ cần kết nối hai dây ngoại trừ Vcc và GND. Nếu bạn chưa quen với Arduino và bạn muốn một màn hình rẻ tiền và dễ sử dụng để sử dụng cho dự án của mình, hãy bắt đầu với màn hình hiển thị. Đây là cách dễ nhất để thêm màn hình vào dự án Arduino của bạn. Tôi đã chuẩn bị một hướng dẫn chi tiết về cách sử dụng màn hình này mà tôi đã đính kèm với Tài liệu hướng dẫn này.

Bước 4: Kết nối tất cả các bộ phận

Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận
Kết nối tất cả các bộ phận

Kết nối với bảng Arduino Uno rất đơn giản. Đầu tiên, hãy kết nối sức mạnh của cả đầu đọc và màn hình.

Hãy cẩn thận, đầu đọc RFID phải được kết nối với đầu ra 3.3V của Arduino Uno nếu không nó sẽ bị phá hủy. Vì màn hình cũng có thể hoạt động ở 3.3V nên chúng tôi kết nối Vcc từ cả hai mô-đun với đường ray dương breadboards. Thanh ray này sau đó được kết nối với đầu ra 3.3V của Arduino Uno. Tiếp theo, chúng tôi kết nối cả hai GND với đường sắt GND trên breadboard. Sau đó, chúng tôi kết nối đường sắt GND của bảng mạch với Arduino GND.

Màn hình OLED - Arduino

Vcc ▶ 3,3V

GND ▶ GND

SCL ▶ Chân tương tự 5

SDA ▶ Chân tương tự 4

Đầu đọc RFID - Arduino

RST ▶ Chân số 9

IRQ ▶ Chưa kết nối

MISO ▶ Chân số 12

MOSI ▶ Chân số 11

SCK ▶ Chân số 13

SDA ▶ Chân số 10

Mô-đun đầu đọc RFID sử dụng giao diện SPI để giao tiếp với Arduino. Vì vậy, chúng tôi sẽ sử dụng các chân SPI phần cứng của Arduino UNO. Chân RST chuyển đến chân kỹ thuật số 9. Chân IRQ không được kết nối. Chân MISO đi đến chân kỹ thuật số 12. Chân MOSI đi đến chân kỹ thuật số 11. Chân SCK đi đến chân kỹ thuật số 13 và cuối cùng, chân SDA chuyển đến chân kỹ thuật số 10. Vậy là xong. Đầu đọc RFID đã được kết nối. Bây giờ chúng ta phải kết nối màn hình OLED với Arduino bằng giao diện I2C. Vì vậy, chân SCL của màn hình sẽ chuyển đến chân Analog 5 và chân SDA của màn hình đến chân Analog 4. Nếu bây giờ chúng ta cấp nguồn cho dự án và đặt thẻ RFID gần đầu đọc, chúng ta có thể thấy rằng dự án đang hoạt động tốt! Bây giờ đã đến lúc xem mã của dự án.

Bước 5: Mã của dự án

Bộ luật của dự án
Bộ luật của dự án

Để biên dịch mã dự án, chúng ta cần bao gồm một số thư viện. Trước hết, chúng ta cần thư viện MFRC522 Rfid. Để cài đặt nó, hãy đi tới Sketch -> Bao gồm Thư viện -> Quản lý thư viện. Tìm kiếm MFRC522 và cài đặt nó. Chúng tôi cũng cần thư viện Adafruit SSD1306 và thư viện Adafruit GFX cho màn hình. Cài đặt cả hai thư viện với cùng một thủ tục. Thư viện Adafruit SSD1306 cần một sửa đổi nhỏ. Vào thư mục Arduino -> Libraries, mở thư mục Adafruit SSD1306 và chỉnh sửa thư viện Adafruit_SSD1306.h. Dòng nhận xét 70 và dòng bỏ ghi chú 69. Màn hình của chúng tôi có độ phân giải 128x64, đó là những gì chúng tôi đang xác định ở đây. Bây giờ chúng ta đã sẵn sàng để xem nhanh mã.

Đầu tiên, chúng tôi khai báo giá trị của thẻ RFID mà chúng tôi muốn Arduino nhận ra. Nó là một mảng các số nguyên.

mã int = {69, 141, 8, 136}; // Đây là UID được lưu trữ

Tiếp theo, chúng tôi khởi tạo đầu đọc RFID và màn hình.

rfid. PCD_Init (); display.begin (SSD1306_SWITCHCAPVCC, 0x3C);

Sau đó, trong hàm vòng lặp, chúng tôi kiểm tra một thẻ trên trình đọc sau mỗi 100 mili giây.

Nếu có một thẻ trên đầu đọc, chúng tôi đọc UID của nó và chúng tôi in nó trên màn hình. Tiếp theo, chúng tôi so sánh UID của thẻ mà chúng tôi vừa đọc, với giá trị được lưu trữ trong biến mã. Nếu các giá trị giống nhau, chúng tôi hiển thị thông báo UNLOCK, nếu không, chúng tôi sẽ không hiển thị thông báo này.

if (khớp) {Serial.println ("\ nTôi biết thẻ này!"); printUnlockMessage (); } else {Serial.println ("\ n Thẻ không xác định"); }

Tất nhiên, bạn có thể sửa đổi mã này để lưu trữ nhiều hơn 1 giá trị UID để dự án nhận ra nhiều thẻ RFID hơn.

Đây chỉ là một ví dụ. Như mọi khi, bạn có thể tìm thấy mã của dự án được đính kèm với Tài liệu hướng dẫn này.

Bước 6: Suy nghĩ cuối cùng và cải tiến

Suy nghĩ cuối cùng & Cải tiến
Suy nghĩ cuối cùng & Cải tiến

Như bạn thấy với chi phí rất thấp, chúng tôi có thể thêm một đầu đọc RFID vào các dự án của mình. Chúng tôi có thể dễ dàng xây dựng một hệ thống bảo mật với một trình đọc như thế này hoặc xây dựng các dự án thú vị hơn.

Ý định chính của tôi là xây dựng một số trò chơi tương tác cho trẻ em bằng cách sử dụng đầu đọc RFID này và rất nhiều thẻ RFID. Trong một video trong tương lai, chúng tôi cũng sẽ cố gắng ghi và đọc dữ liệu từ thẻ RFID. Tại thời điểm này, tôi rất muốn nghe ý kiến của bạn về đầu đọc thẻ RFID này. Bạn có dự định sử dụng nó trong bất kỳ dự án nào của mình không? Xin vui lòng gửi bất kỳ ý kiến hoặc ý tưởng trong phần bình luận bên dưới, cảm ơn!

Đề xuất: