• HOME
  • DỰ ÁN & MẠCH ĐIỆN
    • Lập trình
      • ARDUINO PROJECT
      • ESP8266 PROJECT
      • ESP32 PROJECT
      • RASPBERRY PI PROJECT
      • Vi điều khiển
    • Điện tử ứng dụng
      • Audio / Amplifiers
      • Nguồn điện
      • Pin sạc/Acquy và mạch sạc
      • Biến đổi AC và DC
      • Robotic
      • Cảm biến
      • LED
      • LCD
      • Động cơ bước
      • Mạch linh tinh
      • Test & Measurement
      • RF – FM
    • HOME AUTOMATION
    • Dân dụng
    • Công nghiệp
    • Đồng hồ
      • Clocks
      • Nixie Clock
      • Gixie Clock
      • Lixie Clock
      • Scope Clock
  • KIẾN THỨC CĂN BẢN
    • Điện tử cơ bản
    • Điện tử số
    • PCB
    • Nixie Tube
    • Raspberry Pi
    • Vi điều khiển
    • Arduino
    • IN 3D
  • DOWNLOAD
    • Giáo trình
      • Giáo trình Điện – Điện tử
      • Giáo trình Tự Động Hóa
      • Giáo trình Viễn thông
    • Đề tài
      • Đề tài – Điện – Điện Tử
      • Đề tài – Tự Động Hóa
      • Đề tài – Viễn thông
    • Điện tử ứng dụng
    • Tài liệu nước ngoài
    • Hướng dẫn, sửa chữa
    • Sơ đồ, nguyên lý thiết bị
    • Tiêu chuẩn – Đo lường – Thử nghiệm
    • Datasheet
  • LIÊN HỆ
  • SẢN PHẨM

Mạch Điện Lý Thú

Sơ đồ nguyên lý, PCB, đồ án, tài liệu, DIY

Trang chủ » DỰ ÁN & MẠCH ĐIỆN » Lập trình » ARDUINO PROJECT » Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino

Hệ thống khóa cửa thông minh sử dụng RFID RC-522 và Arduino

13/12/2019 by admin Để lại bình luận

Nội dung bài viết hôm nay mình sẽ hướng dẫn cho các bạn cách làm một hệ thống khóa cửa thông minh với RFID RC-522 sử dụng Arduino để bảo vệ ngôi nhà của mình.

Để hiểu hơn về cấu tạo và cách hoạt động của tất cả cảm biến có trong dự án .Các bạn có thể tìm đọc bài viết về Arduino miễn phí dành cho người mới nhập môn.

Xem thêm:

  • Chế tạo gương thông minh
  • Hệ thống điều khiển thiết bị nhà thông minh sử dụng NodeMCU ESP8266 và App Blynk

Sơ đồ đấu nối

Mục lục hiện
Sơ đồ đấu nối
Các linh kiện cần thiết cho dự án
Code
Thư viện

Các linh kiện cần thiết cho dự án

Tên linh kiện Số lượng
 Arduino Uno 1
RFID RC- 522 1
Loa 1
Relay 1
LCD16X2 1
Board I2C LCD16X2 1
Khóa Chốt Điện 1
Nguồn Adapter 12V/1A 1

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
#include <RFID.h>
#include <Wire.h>  // i2C Conection Library
#include <LiquidCrystal_I2C.h>  //Memanggil i2C LCD Library
LiquidCrystal_I2C lcd(0x3F, 16, 2);
/*
Sambungan Module RFID RC-522 ke Arduino
* MOSI: Pin 11
* MISO: Pin 12
* SCK : Pin 13
* SS/SDA: Pin 10
* RST: Pin 9
* RQ: Tidak digunakan
*/
#include <SPI.h>
#include <RFID.h>
#define SS_PIN 10
#define RST_PIN 9
 
RFID rfid(SS_PIN,RST_PIN);
 
const int buzzer = 7;   //Passive buzzer ke Pin D7 dan GND
const int doorLock = 8; //Driver Selenoid Door Lock/Relay input ke pin D8
int serNum[5];          //Variable buffer Scan Card
 
int cards[][5] = {      //ID Kartu yang diperbolehkan masuk
  {141,125,2,197,55}
  
};
 
bool access = false;
 
int alarm = 0;
uint8_t alarmStat = 0;
uint8_t maxError = 5;
void setup(){
    Serial.begin(9600);
    lcd.begin();
    SPI.begin();
    rfid.init();
 
    pinMode(doorLock, OUTPUT);
    digitalWrite(doorLock, HIGH);
 
  tone (buzzer,1200);
  lcd.setCursor (0,0);
  lcd.print(F("  RFID System   "));
  lcd.setCursor (0,1);
  lcd.print(F(" Control Access "));
  delay (2000);
  lcd.clear();
  noTone (buzzer);
}
 
void loop(){
  if (alarm >= maxError){
    alarmStat = 1;    }
  
  if (alarmStat == 0){
  lcd.setCursor (0,0);
  lcd.print(F(" -System Ready- "));
  lcd.setCursor (0,1);
  lcd.print(F(" Scan Your Card "));
 
    if(rfid.isCard()){
    
        if(rfid.readCardSerial()){
            Serial.print(rfid.serNum[0]);
            Serial.print(" ");
            Serial.print(rfid.serNum[1]);
            Serial.print(" ");
            Serial.print(rfid.serNum[2]);
            Serial.print(" ");
            Serial.print(rfid.serNum[3]);
            Serial.print(" ");
            Serial.print(rfid.serNum[4]);
            Serial.println("");
            
            for(int x = 0; x < sizeof(cards); x++){
              for(int i = 0; i < sizeof(rfid.serNum); i++ ){
                  if(rfid.serNum[i] != cards[x][i]) {
                      access = false;
                      break;
                  } else {
                      access = true;
                  }
              }
              if(access) break;
            }  
        }
        
       if(access){
          Serial.println("Welcome!");
          lcd.setCursor (0,0);
          lcd.print(F(" Akses diterima "));
          lcd.setCursor (0,1);
          lcd.print("ID:");
          lcd.print(rfid.serNum[0]); lcd.print(rfid.serNum[1]);
          lcd.print(rfid.serNum[2]); lcd.print(rfid.serNum[3]);
          lcd.print(rfid.serNum[4]);
           digitalWrite(doorLock, LOW);
           tone (buzzer,900);
           delay(100);
           tone (buzzer,1200);
           delay(100);
           tone (buzzer,1800);
           delay(200);
           noTone(buzzer);  
           delay(600);
           lcd.setCursor (0,0);
           lcd.print(F(" Silahkan Masuk "));
           lcd.setCursor (0,1);
           lcd.print(F("AutoLock after "));
           for(int i=5; i>0; i--){
            lcd.setCursor (15,1); lcd.print(i);
            delay (1000);
           }
           digitalWrite(doorLock, HIGH);
           lcd.clear();
      } else {
           alarm = alarm+1;
           Serial.println("Not allowed!");
           lcd.setCursor (0,0);
           lcd.print(F(" Akses ditolak  "));
           lcd.setCursor (0,1);
           lcd.print("ID:");
           lcd.print(rfid.serNum[0]); lcd.print(rfid.serNum[1]);
           lcd.print(rfid.serNum[2]); lcd.print(rfid.serNum[3]);
           lcd.print(rfid.serNum[4]);
           tone (buzzer,900);
           delay(200);
           noTone(buzzer);
           delay(200);
           tone (buzzer,900);
           delay(200);
           noTone (buzzer);  
           delay(500);
           lcd.clear();      
       }        
    }
 
    rfid.halt();
}
else {
  lcd.setCursor (0,0);
  lcd.print(F("-System LOCKED- "));
  lcd.setCursor (0,1);
  lcd.print(F(" Please Wait "));
for(int i=60; i>0; i--){
tone (buzzer,1800);
lcd.setCursor (13,1); lcd.print(i);
lcd.print(F("  "));delay (1000);}
noTone (buzzer);
alarmStat = 0;
alarm = 0;
  }
}

 

Thư viện

  • Các bạn có thể tải code tìm địa chỉ bus ở đây: Tải ngay.
  • Thư viện LiquidCrystal_I2C.h: Tải ngay.

Nguồn: arduinokit.vn

Đánh giá bài viết

You May Also Like

Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
Đo mức nước, mức nhiên liệu đang có trong bồn, bể chứa sử dụng cảm biến siêu âm SR04 và Arduino
Đo khoảng cách (cm-inch) với cảm biến siêu âm SR04T và Arduino
Đo khoảng cách (cm-inch) với cảm biến siêu âm SR04T và Arduino
Chống nhiễu cho cảm biến bằng bộ lọc Kalman

Thuộc chủ đề:ARDUINO PROJECT, HOME AUTOMATION, LCD Tag với:arduino, cơ bản, code, cửa, khóa, lcd, LCD1602, RFID, thông minh

Bài viết trước « Xuất file Gerber từ phần mềm thiết kế mạch in Altium Designer
Bài viết sau Hệ thống điều khiển thiết bị nhà thông minh sử dụng NodeMCU ESP8266 và App Blynk »

Reader Interactions

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Sidebar chính

NHẬN BÀI VIẾT QUA EMAIL

Hãy đăng ký ngay để là người đầu tiên nhận được thông báo qua email mỗi khi chúng tôi có bài viết mới!

Theo dõi qua mạng xã hội

  • Facebook
  • RSS

Bạn đang tìm gì?

Bài viết mới nhất

Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0

Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0

19/04/2021

In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?

In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?

19/04/2021

Mạch LED DANCE ver1 - LED nháy theo nhạc bằng matrix 8x16

Mạch LED DANCE ver1 – LED nháy theo nhạc bằng matrix 8×16

18/04/2021

Làm ampli cực hot với ic ổn áp LM317

Làm ampli cực hot với ic ổn áp LM317

16/04/2021

Nháy theo nhạc sử dụng STM8S hiển thị VFD - Audio spectrum analyzer

Nháy theo nhạc sử dụng STM8S hiển thị VFD – Audio spectrum analyzer

16/04/2021

Zalo hỏi đáp 24/7

Chuyên mục

  • DỰ ÁN & MẠCH ĐIỆN (226)
    • Công nghiệp (16)
    • Dân dụng (28)
    • Điện tử ứng dụng (171)
      • Audio / Amplifiers (34)
      • Biến đổi AC và DC (23)
      • Cảm biến (41)
      • Động cơ bước (6)
      • Kiểm thử và đo đạc (23)
      • LCD (12)
      • LED (19)
      • Mạch linh tinh (27)
      • Nguồn điện (39)
      • Pin sạc/Acquy và mạch sạc (22)
      • RF – FM (3)
      • Robotic (2)
    • Đồng hồ (6)
      • Clocks (3)
      • Nixie Clock (3)
    • HOME AUTOMATION (25)
    • Lập trình (74)
      • ARDUINO PROJECT (34)
      • ESP32 PROJECT (1)
      • ESP8266 PROJECT (25)
      • RASPBERRY PI PROJECT (7)
      • Vi điều khiển (11)
  • Kiến thức căn bản (147)
    • Arduino (35)
    • Điện tử cơ bản (70)
    • Điện tử số (7)
    • IN 3D (9)
    • Nixie Tube (13)
    • PCB (12)
    • Raspberry Pi (9)
    • Vi điều khiển (5)

Footer

Bài viết mới nhất

  • Lược Sử In 3D: Từ Những Hi Vọng Đầu Tiên Cho Tới Thời Đại 4.0
  • In 3D Là Gì Và Máy In 3D Hoạt Động Ra Sao?
  • Mạch LED DANCE ver1 – LED nháy theo nhạc bằng matrix 8×16
  • Làm ampli cực hot với ic ổn áp LM317
  • Nháy theo nhạc sử dụng STM8S hiển thị VFD – Audio spectrum analyzer
  • Module Zigbee CC2530

Bình luận mới nhất

  • Trung trong Cách thay thế transistor tương đương
  • admin trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • DooSeop Eom trong Nguyên lý cảm biến siêu âm chống nước JSN-SR04T và sơ đồ mạch
  • admin trong Mạch điều khiển đèn tự động dùng quang trở và 555

Tìm kiếm

Tất cả nội dung trên website chỉ dùng để tham khảo. Chúng tôi không chịu trách nhiệm về thông tin thành viên đăng tải lên website và xóa bài viết khi có vi phạm bản quyền tác giả.