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
32 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

Xe điều khiển bằng tay game Dual Shock3 thông qua Bluetooth

Vừa bắt đầu với arduino được hơn 1 tuần, có tham khảo qua các nguồn từ "trung ương đến địa phương", nắm được 1 số kiến thức cơ bản nên mình bắt đầu thực hiện 1 sản phẩm để đúc kết kinh nghiệm. Trong số đó thì xe điều khiển là dễ nhất. Kết hợp với cái tay game ps3 nằm lăn lóc ở góc nhà. Thế là có 1 chiếc xe điều khiển từ xa. Bắt đầu nhé.

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

Làm xe điều khiển từ xa bằng Bluetooth - Điều khiển bằng Android với App Inventor

Mình rất thích điện tử nhưng không học về ngành điện tử. Rất may là có Adruino, rồi có cộng đồng Adruino Việt Nam, đặc biệt là sự nhiệt tình của tất cả các bạn trong cộng đồng, mình đã làm được 1 chiếc xe điều khiển từ xa. Cho con chơi là lí do phụ thôi, còn tìm hiểu, học tập là chính. Hôm nay chia sẻ cùng các bạn, cùng gửi lời cảm ơn đến tất cả các bạn trong cộng đồng. Có bạn thì giúp đỡ trực tiếp, có bạn thì viết bài, rồi có bạn thì bình luận, nêu câu hỏi. Tất cả đều có giá trị đối với mình.

Ngại viết bài nên mình đăng dưới dạng ảnh.

lên
26 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Nên chọn Arduino hay Raspberry Pi để phát triển các dự án IoT?

Nếu bạn là người quen thuộc với các dự án điện tử dạng tự làm (Do-It-Yourself hay còn gọi tắt là DIY), có lẽ bạn đã nghe nói về những tính năng tuyệt vời của Arduino và Raspberry Pi. Thậm chí bạn có thể cho rằng 2 nền tảng phần cứng này đang cạnh tranh quyết liệt để giải quyết các vấn đề giống nhau.

lên
47 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

Cách Reset Arduino - Phần 2

Việc đưa hệ thống về trạng thái ban đầu được ứng dụng rất nhiều và hiệu quả cũng rất cao. Board mạch Arduino cũng là một hệ thống nhỏ với chip ATmega cho nên việc reset hệ thống là hoàn toàn khả thi!!!

Trong bài viết của ban Tôi Yêu Arduino : Cách reset board Arduino bằng phần mềm để giúp các dự án lọc nhiễu , bạn có giới thiệu cách Reset Arduino. Nhưng mình thấy vẫn còn thiếu sót...Nên bài viết này sẽ bổ sung thêm những cách Reset Arduino độc và lạ hơn!!!

lên
25 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: