Mục lục:

Khóa cửa Arduino RFID: 5 bước (có hình ảnh)
Khóa cửa Arduino RFID: 5 bước (có hình ảnh)

Video: Khóa cửa Arduino RFID: 5 bước (có hình ảnh)

Video: Khóa cửa Arduino RFID: 5 bước (có hình ảnh)
Video: #RFID #Nhom5 HỆ THỐNG KHÓA CỬA THÔNG MINH VÀ ĐIỀU KHIỂN THIẾT BỊ SỬ DỤNG RFID 2024, Tháng bảy
Anonim
Khóa cửa RFID Arduino
Khóa cửa RFID Arduino
Khóa cửa RFID Arduino
Khóa cửa RFID Arduino
Khóa cửa Arduino RFID
Khóa cửa Arduino RFID
Khóa cửa Arduino RFID
Khóa cửa Arduino RFID

*** Cập nhật 8/9/2010 *** Tôi muốn vào nhà để xe một cách dễ dàng và an toàn. RFID là cách tốt nhất để mở khóa cửa của tôi, ngay cả khi tôi có đầy đủ tay, tôi vẫn có thể mở khóa và đẩy nó ra! Tôi đã chế tạo một mạch đơn giản với chip arduino ATMega 168 cơ bản và đầu đọc ID-20 RFID để điều khiển khóa cửa điện tử. Mạch gồm 3 phần riêng biệt, Đầu đọc để đọc thẻ RFID, Bộ điều khiển để nhận dữ liệu từ đầu đọc và điều khiển đầu ra của LED RGB và Khóa cửa điện. Đầu tiên, khóa cửa được lắp vào cửa và được thử nghiệm với pin 9v để đảm bảo lắp đúng. Trong hầu hết các trường hợp, bạn muốn có một mạch Thường Mở trên khóa cửa, hoặc Không An toàn. Điều này có nghĩa là cửa vẫn bị khóa khi không có dòng điện chạy qua nó. Khi 12vDC được đưa qua nam châm điện trong khóa cửa, một tấm trong khóa sẽ nhường chỗ và cho phép cửa được đẩy mở tự do. Đầu đọc được đặt ở bên ngoài cửa và tách biệt với bộ điều khiển ở bên trong để không ai có thể phá vỡ an ninh bằng cách mở đầu đọc và cố gắng làm ngắn mạch đầu đọc. Bộ điều khiển nhận dữ liệu nối tiếp từ Đầu đọc và điều khiển đèn LED RGB và Khóa cửa. Trong trường hợp này, tôi đã đặt cả hai trên bảng bánh mì riêng biệt để thử nghiệm. Đây là video tổng quan về hệ thống đang hoạt động Đọc tiếp để biết cách xây dựng hệ thống cho riêng bạn! ** Cập nhật ** Tất cả mã, sơ đồ và thiết kế PCB đã được kiểm tra và hoàn thiện. Tất cả chúng đều được đăng ở đây kể từ ngày 8/9/2010 Video cập nhật về hệ thống cuối cùng được cài đặt và hoạt động.

Bước 1: Các bộ phận cần thiết

Các bộ phận cần thiết
Các bộ phận cần thiết

Đây là danh sách các bộ phận và liên kết đến SparkFun.com nơi tôi đã mua chúng. Đây là bộ phần cơ bản bạn cần xây dựng và arduino và mạch để đọc các thẻ RFID vào arduino. Tôi giả sử bạn đã có một breadboard, nguồn điện và dây nối.

Arduino Stuff

ATmega168 với Arduino Bootloader $ 4,95

Tinh thể 16MHz $ 1,50

Tụ gốm 22pF $ 0,25 (x2)

Điện trở 10k Ohm 1/6 Watt PTH $ 0,25

Công tắc nút nhấn mini $ 0,35

Đèn LED RGB ba đầu ra - Khuếch tán $ 1,95

Công cụ RFID

Một trong hai loại này, 20 có phạm vi tốt hơn, 12 nhỏ hơn ID đầu đọc RFID-12 $ 29,95RFID Reader ID-20 $ 34,95

Đột phá về trình đọc RFID $ 0,95

Tiêu đề Break Away - $ 2,50

Thẻ RFID - 125kHz $ 1,95

Khác

Bóng bán dẫn TIP31A (lán radio / cửa hàng điện tử địa phương $ 1,50)

Khóa cửa là từ ebay. Lỗi cửa Kiểm soát ra vào an toàn Electric Strike v5 NO $ 17,50 (kawamall, bay)

Bước 2: Xây dựng Bộ điều khiển Arduino

Xây dựng Bộ điều khiển Arduino
Xây dựng Bộ điều khiển Arduino
Xây dựng Bộ điều khiển Arduino
Xây dựng Bộ điều khiển Arduino
Xây dựng Bộ điều khiển Arduino
Xây dựng Bộ điều khiển Arduino

Bước đầu tiên để xây dựng một khóa cửa RFID với Arduino cơ bản là tạo ra một arduino hoạt động cơ bản. Hầu hết các chip ATMega 168 được flash sẵn Arduino đều được cài đặt sẵn chương trình nhấp nháy mặc định. Kết nối đèn LED với đầu ra kỹ thuật số 13 và xác minh rằng mọi thứ đang hoạt động.

Phần cứng của đầu đọc RFID này sẽ quá đơn giản nếu chúng ta sử dụng arduino thông thường với bộ lập trình USB tích hợp sẵn. Vì tôi có kế hoạch gắn cái này vào tường và không chạm vào nó nữa nên tôi không muốn sử dụng một bảng arduino lớn, cồng kềnh 30 đô la khi tôi có thể mua một ATMega 168 đô la và tạo ra một PCB tùy chỉnh nhỏ hơn nhiều.

Vì tôi đã chọn tự tạo một mạch Arduino cơ bản nên tôi cần một bộ lập trình USB-> Serial FDIT bên ngoài. Tôi đã bao gồm sơ đồ Eagle của bộ điều khiển với nguồn điện được xây dựng từ bộ điều chỉnh điện áp 7805. Trong thử nghiệm, tôi đã sử dụng một nguồn cung cấp năng lượng cho bảng mạch bánh mì.

Để có được một arduino và chạy tất cả những gì bạn thực sự cần là ATMega168 với phần mềm arduino được cài sẵn, tụ điện 2x 22pF, tinh thể 16mhz, điện trở 10k ohm, nút nhấn và một breadboard. Sự kết nối cho điều này được biết đến nhiều nhưng tôi đã bao gồm toàn bộ sơ đồ cho mạch.

Arduino sẽ kích hoạt 4 đầu ra, mỗi đầu ra cho đèn LED Đỏ / Xanh lá cây / Xanh lam và 1 đầu ra để kích hoạt TIP31A gửi 12vDC đến khóa cửa. Arduino nhận dữ liệu nối tiếp trên dòng Rx của nó từ đầu đọc RFID ID-20.

Bước 3: Xây dựng trình đọc RFID

Xây dựng đầu đọc RFID
Xây dựng đầu đọc RFID
Xây dựng đầu đọc RFID
Xây dựng đầu đọc RFID
Xây dựng đầu đọc RFID
Xây dựng đầu đọc RFID

Bây giờ bạn đã có bảng mạch arduino và hoạt động, bạn có thể kết hợp phần đọc RFID của mạch lại với nhau sẽ chứa ID-10 hoặc ID-20 và đèn LED RGB để cho biết trạng thái của mạch. Hãy nhớ rằng đầu đọc sẽ ở bên ngoài và tách biệt với bộ điều khiển bên trong để ai đó không thể dễ dàng đột nhập.

Để xây dựng điều này, chúng tôi sẽ gửi 5v / Ground từ bảng mạch bánh mì chính sang bảng mạch bánh mì phụ mà chúng tôi đang xây dựng Trình đọc trên đó. Đồng thời gửi hơn 3 dây từ 3 trong số các chân đầu ra của arduino để điều khiển đèn LED RGB, mỗi dây cho mỗi màu. Một dây nữa, Brown trong hình, sẽ là kết nối nối tiếp để ID-20 nói chuyện với đầu vào nối tiếp Rx của arduino. Đây là một mạch rất đơn giản để kết nối. Các điện trở nhận được của đèn LED và một vài điểm trên ID-20 được gắn với mặt đất / 5v để đặt trạng thái chính xác.

Để giúp dễ dàng hơn trong breadboard, ID-10 / ID-20 Sparkfun bán một bảng Breakout cho phép bạn gắn các đầu ghim dài hơn được đặt cách nhau để vừa với bảng bread. Phần này và các pinheaders và được liệt kê trong danh sách các bộ phận.

Các giản đồ phải nằm ở phía trước và dễ theo dõi.

Bước 4: Chương trình

Đã đến lúc lập trình arduino của bạn. Điều này có thể hơi phức tạp khi sử dụng arduino cơ bản, bạn có thể phải nhấn nút đặt lại nhiều lần trước và trong phần đầu tiên của quá trình tải lên. Một điều rất quan trọng cần nhớ, bạn SẼ gặp lỗi tải lên nếu bạn không tạm thời ngắt kết nối dòng nối tiếp ID-20 với dòng Rx của arduino. ATMega168 chỉ có 1 đầu vào Rx và nó sử dụng nó để tải lên mã để nói chuyện với lập trình viên. Ngắt kết nối ID-20 trong khi lập trình, sau đó cắm lại khi bạn hoàn tất. Tôi đã sử dụng một bộ lập trình FTDI cho phép bạn lập trình arduino qua USB chỉ với 4 dây. Sơ đồ bộ điều khiển hiển thị kết nối đầu cắm chân cắm để cho phép bạn cắm trực tiếp một đầu vào. Sparkfun cũng bán phần này nhưng nhiều người có thể đã có nó.

Bạn có thể dễ dàng tải mã của tôi lên arduino của bạn và không bao giờ nhìn lại nhưng điều đó có gì thú vị? Hãy để tôi giải thích ý tưởng cơ bản về cách nó hoạt động.

Trước hết, tôi không muốn có bất kỳ nút / công tắc / v.v. bên ngoài nào và tôi không muốn lập trình lại arduino mỗi khi tôi muốn thêm một thẻ mới. Do đó tôi chỉ muốn sử dụng RFID để điều khiển hoạt động của mạch cũng như điều khiển khóa cửa.

Chương trình bật đèn LED Xanh lam để cho biết nó đã sẵn sàng để đọc một thẻ mới. Khi thẻ được đọc, nó quyết định xem đó có phải là thẻ hợp lệ hay không bằng cách so sánh những gì nó đọc được với danh sách các thẻ hợp lệ. Nếu người dùng hợp lệ, arduino TẮT đèn LED xanh lam và bật đèn LED xanh lục trong 5 giây. Nó cũng bật một đầu ra khác ở mức cao trong 5 giây. Đầu ra này được kết nối với bóng bán dẫn TIP31A và cho phép arduino nhỏ bé điều khiển khóa cửa 12v 300mA lớn hơn nhiều mà không bị hỏng. Sau 5 giây, khóa cửa sẽ khóa lại và đèn LED chuyển sang màu xanh lam để chờ đọc thẻ khác. Nếu thẻ không hợp lệ thì đèn LED sẽ chuyển sang ĐỎ trong vài giây và trở lại Xanh lam để đợi thẻ khác.

Điều quan trọng là khóa cửa vẫn hoạt động ngay cả khi arduino mất điện qua đêm hoặc được thiết lập lại. Do đó, tất cả ID thẻ hợp lệ được lưu trữ trong bộ nhớ EEPROM. ATMega168 có 512 byte bộ nhớ EEPROM. Mỗi thẻ RFID có số sê-ri 5 Hex Byte và tổng số Kiểm tra 1 Hex Byte mà chúng tôi có thể sử dụng để xác minh rằng không có lỗi nào trong quá trình truyền giữa ID-20 và arduino.

Các thẻ hợp lệ được lưu trữ trong EEPROM bằng cách sử dụng Byte đầu tiên làm bộ đếm. Ví dụ, nếu có 3 thẻ hợp lệ được lưu trữ thì Byte đầu tiên trong EEPROM sẽ là 3. EEPROM.read (0); = 3. Biết điều này, và thực tế là mỗi ID dài 5 byte, chúng ta biết 1-5 là thẻ một, 6-10 là thẻ 2 và 11-15 là thẻ 3. Chúng ta có thể tạo một vòng lặp xem qua EEPROM 5 byte một lúc và cố gắng tìm thẻ đã được đọc bởi trình đọc.

Nhưng làm thế nào chúng ta có thể thêm thẻ mới vào EEPROM sau khi mạch được cài đặt ?? Tôi đã đọc một trong những thẻ RFID mà tôi có và mã hóa nó thành thẻ RFID Chính. Vì vậy, ngay cả khi toàn bộ EEPROM bị xóa, thẻ chủ sẽ vẫn hoạt động. Bất cứ khi nào một thẻ được đọc, nó sẽ kiểm tra đầu tiên để xem đó có phải là thẻ Master hay không, nếu không, sau đó tiếp tục xem nó có phải là thẻ hợp lệ hay không. Nếu thẻ đó là thẻ chính, chúng ta có arduino đi vào "chế độ lập trình", nơi nó nhấp nháy RGB và đợi một thẻ hợp lệ khác được đọc. Thẻ tiếp theo được đọc sẽ được thêm vào vị trí trống tiếp theo trong EEPROM và bộ đếm được tăng lên 1 nếu thẻ chưa tồn tại trong bộ nhớ EEPROM. Đầu đọc sau đó trở lại chế độ bình thường và đợi thẻ mới được đọc.

Hiện tại, tôi chưa lập trình cách xóa thẻ vì lý do xóa thẻ rất có thể là thẻ bị mất hoặc bị đánh cắp. Vì điều này rất có thể sẽ được sử dụng với 1-10 người, điều dễ dàng nhất có thể làm là lập trình cứng thẻ Master Erase để xóa tất cả các thẻ khỏi EEPROM sau đó thêm lại tất cả, chỉ mất vài giây. Tôi đã thêm mã để xóa EEPROM nhưng tôi chưa triển khai tính năng này..

Mã được đính kèm trong một tệp văn bản cùng với một bản sao của danh sách các bộ phận.

Bước 5: Mở rộng

Đây chỉ là một số điều thú vị mà bạn có thể làm với RFID. Bạn có thể mở rộng điều này hơn nữa với một đầu ra LCD, ghi lại ai vào và khi nào, kết nối mạng / twitter, v.v. Tôi dự định tạo một phiên bản PCB hoàn thiện của mạch này. Tôi chưa bao giờ làm PCB trước đây vì vậy tôi vẫn đang tiếp tục thiết kế và bố trí các bộ phận. Sau khi tôi có chúng hoàn chỉnh, tôi cũng sẽ đăng chúng. Tôi khuyến khích bất kỳ ai lấy đoạn mã mà tôi đã viết và sửa đổi nó để làm những điều thú vị hơn nữa!

Lọt vào chung kết trong Cuộc thi Arduino

Đề xuất: