Cửa thông minh điều khiển bằng thẻ từ

I. Giới thiệu

Hôm nay, mình sẽ chia sẻ về cách sử dụng module RFID để làm cửa thông minh tự động đóng mở bằng thẻ từ nhé laugh Vậy chức năng của module RFID là gì?

Module RFID RC522 sử dụng IC MFRC522 của Phillip dùng để đọc và ghi dữ liệu cho thẻ NFC tần số 13.56mhz, với mức giá rẻ (khoảng 90k hoy smiley ), thiết kế nhỏ gọn, module này là sự lựa chọn hàng đầu cho các ứng dụng về ghi đọc thẻ RFID.

Sau đây là 1 vài hình ảnh về em nó: 

II. Chuẩn bị

Đã có 1 bài viết của anh Nguyen Manh Hung nói về module RFID rồi á, nhưng anh ấy sử dụng thư viện MFRC522. Mình sẽ chỉ cho các bạn 1 thư viện dễ sử dụng hơn, đó là thư viện RFID, các bạn có thể tải tại đây

III. Nối dây

Arduino UNO Module RFID Servo
11  MOSI  
12 MISO  
13 SCK  
10 SDA  
9 RST  
3.3V 3.3V  
GND GND GND
5V   5V

IV. Code thoai

/*
* MOSI: Pin 11 / ICSP-4
* MISO: Pin 12 / ICSP-1
* SCK: Pin 13 / ISCP-3
* SS: Pin 10
* RST: Pin 9
*/

#include <Servo.h>
#include <SPI.h>
#include <RFID.h>

#define SS_PIN 10
#define RST_PIN 9
Servo myservo;
RFID rfid(SS_PIN, RST_PIN);

unsigned char reading_card[5]; // Mảng đọc mã card
unsigned char master[5] = { 134, 138, 22, 126, 100 }; // Mã Card phù hợp để mở cửa
unsigned char slave[5] = { 246, 253, 148, 53, 170 }; // Mã Card phù hợp để đóng cửa

unsigned char i, j;

void setup()
{

    myservo.attach(8);
    Serial.begin(9600);
    SPI.begin();
    rfid.init();
    myservo.write(30);
}

void loop()
{
    if (rfid.isCard()) {
        if (rfid.readCardSerial()) // Nếu có thẻ
        {

            for (i = 0; i < 5; i++) {

                reading_card[i] = rfid.serNum[i]; //Lưu mã thẻ đọc được vào mảng reading_card
            }
            Serial.println();
            //verification
            for (i = 0; i < 5; i++) {
                //So sáng từng phần tử của mảng reading_card với mảng master
                if (reading_card[i] != master[i]) //Nếu có 1 phần tử bất kỳ nào không phù hợp...thỳ thoát vòng lặp, lúc này ta nhận được giá trị của i
                {
                    break;
                }
            }
            // Tương tự với thẻ Slave
            for (j = 0; j < 5; j++) {
                if (reading_card[i] != slave[i]) {
                    break;
                }
            }
            if (i == 5) // Nếu các phần tử của màng reading_card phù hợp hết với mảng master thì lúc này i chạy đến 5
            {
                myservo.write(180); // đóng cửa
            }
            if (j == 5) {
                myservo.write(30); // mở cửa
            }
        }
        rfid.halt();
    }
}

Rất đơn giản phải không nào? Chúc các bạn thành công !!! wink

Youtube: 
lên
25 thành viên đã đánh giá bài viết này hữu ích.
Chuyên mục: 
Các dự án được truyền cảm hứng

Select any filter and click on Apply to see results

Các bài viết cùng tác giả

HỆ ĐIỀU HÀNH MEDIA CENTER CHO Raspberry Pi - Đánh giá cá nhân của mình về Openelec (Open Embedded Linux Entertainment Center ) và OSMC ( Open-Source Media Center ).

Bài viết này, mình sẽ so sánh 2 hệ điều hành MediaCentrer cho Raspberry Pi là  Openelec (Open Embedded Linux Entertainment Center ) và OSMC ( Open-Source Media Center ).

lên
17 thành viên đã đánh giá bài viết này hữu ích.

Kết nối Raspberry và máy tính qua cổng Serial

Trong bài chia sẻ này, mình sẽ chia sẻ cách kết nối, điều khiển Raspberry Pi 2 qua cổng Serial. Ưu điểm của cách kết nối này là có thể đồng thời cấp nguồn cho Pi của bạn và không cần bàn phím, chuột hay màn hình kết nối và làm việc với Pi. Bạn sẽ cần cài đặt phần mềm mô phỏng thiết bị đầu cuối ( ở đây là Putty) nếu bạn sử dụng Windows, ngoài ra còn cần cài đặt Driver cần thiết. Raspberry Pi được tích hợp sẵn cổng giao tiếp nối tiếp Serial cho phép các thiết bị kết nối tới giao diện điều khiển dòng lệnh, đăng nhập và làm việc như một User. Chúng ta cũng nên tìm hiểu một cách tương tự để kết nối với Pi qua mạng nội bộ sử dụng SSH theo bài viết sau của bác raspi: tại đây

lên
10 thành viên đã đánh giá bài viết này hữu ích.