Mở đầu 1
1 Cơ sở lý thuyết 3
1.1 Arduino Mega 2560 R3 . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Hệ thống RFID . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Module MFRC522 . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.2 Thã tố . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.3 Module thã nhớ SD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Module thời gian thực DS1307 . . . . . . . . . . . . . . . . . . . . . . . 11
1.5 Module bluetooth HC-05 . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.6 Màn h nh LCD I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.7 Động cơ RC Servo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2 Kết quả 15
2.1 Sơ đồ nguyản lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Mô hình còa tự động . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.3 Chương trình giao tiếp trản máy vi t‰nh . . . . . . . . . . . . . . . . . 24
2.4 Nhận xét và đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Kết luận và hướng phát triển 29
Các công trình đ công bố 31
Tài liệu tham khÊo 32
39 trang |
Chia sẻ: honganh20 | Ngày: 14/02/2022 | Lượt xem: 410 | Lượt tải: 2
Bạn đang xem trước 20 trang tài liệu Khóa luận Chế tạo mô hình cửa thông minh bảo mật bằng thẻ từ, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Mega 2560 R3. Thẻ từ được đọc thụng qua module RFID MFRC522.
Cỏc thẻ từ cú thể được thay đổi mó bằng cỏch ghi dữ liệu vào tựy theo ý muốn của
người sử dụng. Việc thay đổi mó thẻ từ được thực hiện bởi chức năng ghi của module
RFID MFRC522. Cơ sở dữ liệu của người dựng được quản lớ lưu trữ trong thẻ nhớ SD.
Ngoài ra, hệ thống cũn lưu được thụng tin lịch sử thời gian ra vào cụ thể của người sử
dụng, giỳp cho người quản lớ cú thể dễ dàng kiểm soỏt, truy xuất dữ liệu khi cần thiết.
Thời gian được truy xuất trong hệ thống nhờ module thời gian thực DS1307. Kết nối
truyền nhận dữ liệu khụng dõy giữa hệ thống cửa với mỏy vi tớnh được thực hiện thụng
qua module bluetooth HC-05. Qua đú, người dựng cú thể cập nhật dữ liệu trong hệ
thống trực tiếp thụng qua mỏy vi tớnh cỏ nhõn. Giao diện trờn mỏy vi tớnh được viết
bởi ngụn ngữ Visual Basic bằng phần mềm Visual Studio 2015. Mụ hỡnh sử dụng một
màn hỡnh LCD giỳp hiển thị trạng thỏi hoạt động của hệ thống. Động cơ Servo được
sử dụng để đúng mở cửa trong mụ hỡnh.
Chi tiết về từng bộ phận cấu thành nờn hệ thống trờn cũng như sơ lược về chức
năng được đề cập cụ thể trong phần dưới đõy.
3
1.1 Arduino Mega 2560 R3
Arduino là một board mạch được tớch hợp vi điều khiển. Arduino hoạt động trờn
một nền tảng điện tử nguồn mở dựa trờn phần cứng và phần mềm dễ sử dụng [2, 3].
Arduino cú thể đọc thụng tin đầu vào từ một cảm biến bất kỡ hoặc một module khỏc,
sau đú biến thụng tin đú trở thành một đầu ra như dựng để kớch hoạt động cơ, bật tắt
đốn LED. . . Cỏc tập lệnh được viết cho vi điều khiển trong board Arduino bằng ngụn
ngữ lập trỡnh C hoặc C++ thụng qua phần mềm chuyờn biệt được cung cấp bởi nhà
sản xuất là Arduino IDE cú giao diện như hỡnh 1.1 [3].
Hỡnh 1.1: Giao diện phần mềm Arduino IDE.
Arduino đầu tiờn được chế tạo trong một dự ỏn dành cho sinh viờn tại Interaction
Design Institute Ivrea (Học viện thiết kế tương tỏc Ivrea) nằm ở Ivrea, Italy [3]. Cỏi
tờn “Arduino” cũng xuất phỏt từ một quỏn bar tại Ivrea, nơi mà cỏc nhà sỏng lập của
dự ỏn này thường xuyờn họp mặt [3].
Trong những năm qua, Arduino đó trở thành bộ nóo của hàng ngàn dự ỏn, từ cỏc
vật dụng hằng ngày đến cỏc cụng cụ khoa học phức tạp, cỏc dự ỏn ứng dụng IoT, chế
tạo robot. . . Tất cả cỏc board Arduino đều hoàn toàn là mó nguồn mở, cho phộp người
sử dụng xõy dựng chỳng một cỏch độc lập để tương thớch với nhu cầu cụ thể của họ
[3]. Phần mềm Arduino IDE cũng cú mó nguồn mở và nú đang được phỏt triển thụng
qua sự đúng gúp của người dựng trờn toàn thế giới. Bất cứ ai đam mờ về điều khiển,
4
lập trỡnh khụng chuyờn đều cú thể sử dụng Arduino một cỏch dễ dàng nhờ những trải
nghiệm thật đơn giản. Đú chớnh là những ưu điểm nổi bật mà Arduino mang lại cho
người dựng trờn toàn cầu, thỳc đẩy sự phỏt triển của khoa học kĩ thuật.
Arduino bao gồm một vi điều khiển AVR kốm với nhiều linh kiện bổ sung giỳp
người sử dụng dễ dàng lập trỡnh và cú thể mở rộng kết nối với cỏc mạch khỏc [4]. Mạch
Arduino thường sử dụng cỏc dũng chip megaAVR; đặc biệt là ATmega8, ATmega168,
ATmega328, ATmega1280 và ATmega2560 [2]. Mỗi loại chip riờng biệt sẽ được tớch hợp
vào từng loại board Arduino khỏc nhau. Cú nhiều loại Arduino hiện cú trờn thị trường
hiện nay như Arduino Uno R3, Arduino Nano. . . Cụ thể hơn, trong mụ hỡnh này tụi sử
dụng Arduino Mega 2560 R3. Hỡnh ảnh của Arduino Mega 2560 R3 cựng với sơ đồ chõn
cụ thể được thể hiện như trờn hỡnh 1.2 và 1.3.
Hỡnh 1.2: Arduino Mega 2560 R3 [5].
5
Hỡnh 1.3: Sơ đồ chõn của Arduino Mega 2560 R3 qua phần mềm mụ phỏng Proteus.
Hỡnh 1.3 mụ tả sơ đồ chõn của Arduino Mega 2560 R3 đầy đủ, chi tiết. Board
mạch bao gồm cỏc chõn làm nhiệm vụ đọc và xuất tớn hiệu. Tớn hiệu được đọc và xuất
cú thể là tớn hiệu số (digital) hoặc tớn hiệu tương tự (analog). Tớn hiệu số (digital) hay
cũn gọi là tớn hiệu logic chỉ gồm hai trạng thỏi là mức thấp (mức logic 0) và mức cao
(mức logic 1) [6]. Trong đú, mức thấp tương ứng với tớn hiệu điện ỏp 0V, mức cao tương
ứng với tớn hiệu điện ỏp 5V. Tớn hiệu tương tự (analog) được hiểu là dạng tớn hiệu
tuyến tớnh trong đú tớn hiệu nằm trong dóy điện ỏp liờn tục từ 0V đến 5V [6]. Trong
mạch Arduino Mega gồm 54 chõn digital, trong đú 15 chõn cú thể được sử dụng như
cỏc chõn Pulse Width Modulation (PWM) [5]. Chõn PWM trong Arduino cũn được gọi
là chõn băm xung [2]. Trong mạch cú 16 chõn analog, 4 cổng Universal Asynchronous
Receiver/Transmitter (UART) hay cũn gọi là cổng nối tiếp với phần cứng. Arduino
Mega sử dụng vi điều khiển ATmega2560 với bộ nhớ flash 256KB, SRAM 8KB và bộ
nhớ EEPROM cú dung lượng 4KB [4]. Tần số dao động được tạo ra bởi thạch anh là
16MHz [4]. Ngoài ra, Arduino Mega được trang bị đầy đủ cỏc cổng giao tiếp khỏc thụng
dụng như SPI, I2C. . . [5].
So với vi điều khiển PIC thỡ Arduino mang nhiều ưu điểm hơn. Đầu tiờn, Arduino
là một board mạch đó được lắp rỏp và tớch hợp sđn thạch anh nờn khi sử dụng ta khụng
cần phải mắc mạch giống như với PIC. Đối với PIC, để nạp code lập trỡnh vào vi điều
khiển cần phải sử dụng một mạch nạp chuyờn dụng, rất tốn thời gian lắp rỏp và khú
sử dụng. Đối với Arduino thỡ nhược điểm trờn được khắc phục hoàn toàn do Arduino
được kết nối với mỏy vi tớnh đơn giản thụng qua cổng USB nờn việc nạp code vào thuận
6
lợi, nhanh chúng và dễ dàng hơn. Chớnh vỡ những ưu điểm trờn mà trong mụ hỡnh này
tụi sử dụng Arduino và cụ thể là Arduino Mega 2560 R3 do bộ nhớ flash lớn (256KB),
gấp 8 lần so với Arduino Uno R3 (32KB), phự hợp cho việc xử lớ nhiều dữ liệu [4].
Trong hệ thống cửa tự động mà tụi xõy dựng thỡ Arduino là một bộ phận rất quan
trọng. Arduino đúng vai trũ trung tõm điều khiển toàn bộ hoạt động của hệ thống, cú
nhiệm vụ nhận cỏc thụng số từ những module khỏc gửi đến, xử lý phõn tớch và thực
hiện những tỏc vụ theo đỳng yờu cầu. Cụ thể hơn, khi cú thẻ từ quột vào hệ thống thỡ
Arduino sẽ đọc dữ liệu mà module đọc thẻ từ MFRC522 gửi đến, sau đú đối chiếu với
dữ liệu được rỳt trớch ra từ cơ sở dữ liệu trong thẻ nhớ SD và so sỏnh, nếu trựng khớp
thỡ Arduino tiến hành đọc dữ liệu từ module thời gian thực để kiểm tra thời gian được
phộp ra vào. Nếu thỏa điều kiện thỡ đõy là một thẻ hợp lệ. Sau đú, Arduino xử lý và
điều khiển module thẻ nhớ ghi lại lịch sử quột thẻ. Đồng thời Arduino cũng điều khiển
màn hỡnh LCD hiển thị quỏ trỡnh làm việc của hệ thống để người dựng theo dừi. Cuối
cựng, khi một thẻ hợp lệ được cho phộp vào thỡ Arduino sẽ điều khiển động cơ Servo
mở cửa theo đỳng yờu cầu. Ngoài ra, Arduino cũn điều khiển hoạt động truyền nhận
dữ liệu giữa module bluetooth và mỏy vi tớnh thụng qua chương trỡnh giao tiếp để người
quản lớ cập nhật cơ sở dữ liệu trong hệ thống đồng thời ghi, xúa mó trong thẻ từ.
1.2 Hệ thống RFID
Như đó trỡnh bày ở phần mở đầu, hệ thống cửa tự động sử dụng thẻ từ được bảo
mật thụng qua cụng nghệ RFID. RFID là cụng nghệ nhận dạng đối tượng bằng súng vụ
tuyến. Nguyờn tắc hoạt động của hệ thống này dựa trờn sự thu phỏt súng điện từ cựng
tần số. Cỏc dóy tần số được sử dụng trong cụng nghệ RFID bao gồm dóy tần số thấp
(LF), dóy tần số cao (HF), dóy tần số siờu cao (UHF) [7]. Trong mụ hỡnh cửa này sử
dụng dóy tần số cao (HF) với tần số là 13,56MHz [1, 8]. Hệ thống sử dụng cụng nghệ
RFID được cấu tạo bởi hai thành phần chớnh là thiết bị đọc (module MFRC522) và
thiết bị phỏt mó RFID (thẻ từ) [1, 8]. Module MFRC522 được gắn anten để thu phỏt
súng điện từ. Thẻ từ bao gồm một mạch tớch hợp gắn liền với một anten được in, khắc
hay dỏn trờn bề mặt [8]. Thẻ chứa rất nhiều mó nhận dạng khỏc nhau, thụng thường
là 32 bit tương ứng với hơn 4 tỷ mó số khỏc nhau [8]. Mỗi thẻ từ được nhà sản xuất
gỏn một mó riờng biệt nờn khả năng nhận dạng nhầm thẻ đú với một thẻ từ khỏc là
7
rất thấp. Hơn nữa, khoảng cỏch giao tiếp giữa thẻ và module MFRC522 là rất ngắn
(khoảng 60mm) [1]. Với ưu điểm về mặt cụng nghệ như vậy nờn tớnh bảo mật và độ an
toàn của cỏc thiết bị ứng dụng cụng nghệ RFID là rất cao. Chớnh vỡ thế, cụng nghệ này
cú thể được ứng dụng rất nhiều vào trong thực tế điển hỡnh như hệ thống cửa tự động,
khúa chống trộm xe mỏy. . .
1.2.1 Module MFRC522
Module MFRC522 là module dựng để đọc và ghi thẻ từ. Module này hoạt động
dựa trờn kiểu giao tiếp đồng bộ nối tiếp ngoại vi SPI (Serial Peripheral Interface) với
Arduino [1]. Điện ỏp sử dụng cho module này là 3,3V [1]. Module hoạt động thu súng
điện từ ở tần số 13,56MHz và khoảng cỏch hoạt động tối đa là 60mm [1]. Nghĩa là khi
quột thẻ thỡ module đọc được dữ liệu của thẻ từ khi thẻ đặt cỏch bề mặt module tối đa
là 60mm. Khoảng cỏch giao tiếp nhỏ là một trong những ưu điểm của cụng nghệ này vỡ
với khoảng cỏch giao tiếp nhỏ, độ bảo mật thụng tin sẽ cao hơn. Ngoài chức năng đọc
dữ liệu trong thẻ từ, module này cũn cú thể ghi dữ liệu vào thẻ mà tụi sẽ đề cập ở phần
dưới.
Hỡnh 1.4: Module RFID MFRC522 [1].
8
1.2.2 Thẻ từ
Thẻ từ sử dụng trong cụng nghệ RFID là loại thẻ thụng minh khụng tiếp xỳc (thẻ
Mifare) được sản xuất bởi NXP Semiconductors [8]. Trong mụ hỡnh này, thẻ Mifare
được sử dụng là loại Mifare Classic 1K. Thẻ này phỏt tần số 13,56MHz, phự hợp để
module MFRC522 cú thể ghi nhận được [8].
Hỡnh 1.5: Thẻ Mifare Classic 1K [8].
Cấu trỳc dữ liệu của thẻ Mifare Classic 1K được mụ tả theo sơ đồ trong hỡnh sau:
Hỡnh 1.6: Cấu trỳc dữ liệu trong thẻ Mifare Classic 1K [8].
9
Loại thẻ Mifare Classic 1K cú bộ nhớ EEPROM là 1KB, trong đú cấu trỳc dữ liệu
được chia thành 16 sector (được đỏnh số từ 0-15), mỗi sector bao gồm 4 block (được
đỏnh số từ 0-3) [8]. Mỗi một block bao gồm 16 byte cũng được đỏnh số từ 0-15 như
sơ đồ trờn [8]. Thời gian lưu trữ dữ liệu trong thẻ tối đa là 10 năm và số lần đọc ghi
tối đa của thẻ là 100000 lần [8]. Trong cấu trỳc dữ liệu của thẻ, vị trớ sector 0, block 0
được gọi là “Manufacturer Block” (block dành cho nhà sản xuất) [8]. Block này lưu tất
cả thụng tin từ nhà sản xuất quy định và mỗi một thẻ khi được xuất xưởng sẽ mang
một mó số (UID) khỏc nhau được lưu tại vị trớ block này [8]. Với mỗi một sector bất
kỡ, vị trớ block 3 được gọi là “Sector Trailer” và cũng được nhà sản xuất mó húa thụng
tin [8]. Chỉ cú những block cũn lại trong cỏc sector được gọi là “Data” thỡ ta mới cú thể
ghi dữ liệu vào [8]. Điểm khỏc biệt của hệ thống này so với cỏc hệ thống đó cú chớnh
là việc mó húa dữ liệu trong thẻ từ để phự hợp với mục đớch sử dụng. Cụ thể, tụi tiến
hành ghi dữ liệu vào block mang số thứ tự 4 (hoặc cũn gọi là vị trớ block 0 của sector
1) [8]. Dữ liệu được ghi vào dưới dạng mó hex và tụi chỉ ghi dữ liệu vào 4 byte đầu tiờn
trong một block. Để phự hợp với chức năng chớnh của hệ thống này là điểm danh sinh
viờn ra vào phũng thớ nghiệm thỡ 4 byte dữ liệu được lưu trong thẻ chớnh là 4 phần tử
của mó số sinh viờn tương ứng. Vớ dụ với mó số sinh viờn cụ thể là 42.01.102.129 thỡ 4
byte dữ liệu được ghi trờn thẻ từ sẽ tương ứng là 42, 1, 102, 129. Việc ghi dữ liệu vào
thẻ được thực hiện thụng qua module MFRC522. Nếu ta khụng thay đổi dữ liệu trong
thẻ thỡ mặc định khi quột thẻ vào module đọc thỡ module này sẽ đọc UID tức là mó
được quy định bởi nhà sản xuất (vị trớ block 0 của sector 0) [8]. Vỡ vậy song hành cựng
với việc ghi dữ liệu vào thẻ, ta sẽ tiến hành điều chỉnh module đọc thẻ từ trớch xuất dữ
liệu từ block mà ta vừa mới ghi dữ liệu vào để thuận lợi cho việc so sỏnh và đối chiếu.
1.3 Module thẻ nhớ SD
Bộ phận tiếp theo trong hệ thống là module thẻ nhớ SD. Module này thực hiện
chức năng đọc dữ liệu cú trong thẻ nhớ. Cơ sở dữ liệu của từng người được lưu dưới
một cấu trỳc cụ thể trong thẻ nhớ SD. Ban đầu, cơ sở dữ liệu trong thẻ nhớ được đọc
bằng module và sau đú truyền xuống Arduino để xử lý. Ngoài việc đọc dữ liệu trong
thẻ nhớ SD thỡ module này cũn hỗ trợ thờm chức năng ghi dữ liệu lờn thẻ nhớ [9]. Chức
năng đú được sử dụng cụ thể thụng qua việc ghi lại lịch sử quột thẻ. Lịch sử sẽ được
10
lưu lại dưới dạng file notepad (.txt) trong thẻ nhớ SD. Module hoạt động dựa trờn giao
tiếp SPI với Arduino, điện ỏp sử dụng trong module này là 5V [9].
Hỡnh 1.7: Module thẻ nhớ SD [9].
1.4 Module thời gian thực DS1307
Thời gian thực là một yếu tố khụng thể thiếu trong hệ thống này. Trong quỏ trỡnh
quột thẻ, việc kiểm soỏt thời gian ra vào cũng như ghi lại lịch sử thời gian quột rất
quan trọng. Tương tự như trong thực tế, việc ghi lại lịch sử ra vào giỳp người quản lớ
kiểm soỏt dễ dàng hệ thống và cú thể thực hiện việc điểm danh. Thời gian thực được
Arduino đọc từ module DS1307. Module này cú cấu tạo nhỏ gọn, nổi bật nhất là một
pin CMOS được lắp trực tiếp trờn bề mặt. Pin CMOS giỳp cho module này cú thể hoạt
động ngay cả khi ta khụng cấp điện cho nú. Module đọc cỏc thành phần thời gian và lưu
nú bằng những biến đặc trưng. Phỳt và giõy được lưu lần lượt vào cỏc biến “minute”,
“second” và nhận cỏc giỏ trị từ 00-59 [10]. Đối với giờ thỡ người dựng cú thể thiết lập
module làm việc ở chế độ 12 giờ hay chế độ 24 giờ [10]. Thành phần giờ được ghi lại
vào biến “hour” và nhận cỏc giỏ trị từ 01-12 (đối với chế độ 12 giờ) hay từ 00-23 (đối
với chế độ 24 giờ) [10]. Thứ được lưu vào biến “day” và nhận cỏc giỏ trị từ 1-7 lần lượt
tương ứng từ ngày chủ nhật đến ngày thứ bảy trong tuần [10]. Thành phần ngày được
lưu vào biến “date”, nhận cỏc giỏ trị từ 01-31 [10]. Thành phần thỏng được lưu vào biến
“month”, nhận cỏc giỏ trị từ 01-12 [10]. Cuối cựng, thành phần năm được lưu vào biến
11
“year” với giỏ trị nhận được từ 00-99 [10]. Giao tiếp I2C là giao tiếp mà module này sử
dụng để kết nối với Arduino [10]. Tương tự như những module khỏc, module này cũng
hoạt động ở điện ỏp 5V [10].
Hỡnh 1.8: Module thời gian thực DS1307 [10].
1.5 Module bluetooth HC-05
Bluetooth là chuẩn truyền thụng khụng dõy để trao đổi dữ liệu ở khoảng cỏch
ngắn. Chuẩn truyền thụng này sử dụng súng radio ngắn (UHF radio) trong dải tần số
ISM (từ 2,4 đến 2,485GHz) [11]. HC-05 là module bluetooth rẻ, thụng dụng ở thị trường
Việt Nam, khoảng cỏch truyền của module này lờn đến khoảng 10m [11]. HC-05 cú thể
hoạt động ở hai chế độ là “Command Mode” và “Data Mode” [11]. Ở chế độ Command
Mode, ta cú thể giao tiếp với module thụng qua cổng serial bằng tập lệnh AT [11]. Ở
chế độ Data Mode, module cú thể truyền nhận dữ liệu tới cỏc module bluetooth khỏc
[11]. Trong hệ thống này, module HC-05 được thiết lập hoạt động ở chế độ Data Mode,
cú nhiệm vụ truyền nhận dữ liệu giữa Arduino và mỏy vi tớnh [11]. Hỡnh 1.9 mụ tả
module trờn và sơ đồ cỏc chõn của module này.
12
Hỡnh 1.9: Module bluetooth HC-05 [11].
1.6 Màn hỡnh LCD I2C
Màn hỡnh LCD (Liquid Crystal Display) hay cũn gọi là màn hỡnh tinh thể lỏng.
Trong mụ hỡnh, LCD được sử dụng với chức năng hiển thị, thụng bỏo cỏc trạng thỏi
làm việc của hệ thống đến người sử dụng. Module chuyển giao tiếp I2C được lắp trờn
LCD giỳp LCD kết nối với Arduino thụng qua giao tiếp I2C như hỡnh 1.10 [12].
Hỡnh 1.10: Màn hỡnh LCD I2C [12].
13
1.7 Động cơ RC Servo
Bộ phận cuối cựng sử dụng trong hệ thống cửa chớnh là động cơ Servo. Động cơ
được sử dụng là loại Micro Servo 9G. Trong mụ hỡnh, động cơ Servo được sử dụng để
đúng mở cửa. Động cơ cú kớch cỡ nhỏ gọn, phự hợp để sử dụng trong mụ hỡnh. Arduino
điều khiển động cơ thụng qua một chõn băm xung (PWM), điện ỏp hoạt động của động
cơ là 5V [13].
Hỡnh 1.11: Động cơ Micro Servo 9G [13].
Tất cả cỏc bộ phận trờn đều cú chức năng cụ thể, gúp phần vào hoạt động chung
của toàn bộ hệ thống. Ở chương tiếp theo, tụi sẽ trỡnh bày cỏc kết quả thu được trong
luận văn này.
14
Chương 2
Kết quả
2.1 Sơ đồ nguyờn lý
Hoạt động của hệ thống được thể hiện toàn bộ trong sơ đồ nguyờn lý sau:
Hỡnh 2.1: Sơ đồ nguyờn lý cấu trỳc hoạt động của hệ thống.
Từ sơ đồ này, ta cú thể thấy được tầm quan trọng của Arduino. Arduino đúng vai
trũ là trung tõm điều khiển mọi hoạt động của hệ thống, nhận dữ liệu từ cỏc module
và thực hiện cỏc tỏc vụ thớch hợp. Sau đõy, tụi sẽ đi vào cụ thể nguyờn lý hoạt động
chi tiết của từng thành phần trong hệ thống trờn.
15
Hoạt động của hệ thống trải qua nhiều giai đoạn. Đầu tiờn, một thẻ từ mới mang
thụng tin của nhà sản xuất (mó UID). Sau đú, tụi tiến hành sử dụng module MFRC522
để ghi thờm dữ liệu vào thẻ. Như đó đề cập thỡ dữ liệu được ghi vào nằm ở 4 byte
đầu tiờn trong block 0 của sector 1, tương ứng với 4 phần tử của mó số sinh viờn. Với
từng sinh viờn cụ thể, khi được cấp thẻ từ thỡ thẻ đú sẽ lưu thụng tin mó số sinh viờn
tương ứng với sinh viờn đú tại vị trớ trờn. Cụ thể hơn, ta xột một vài mó số sinh viờn
vớ dụ như 42.01.102.129, 41.01.102.031, 42.01.102.060, 43.01.105.012, 43.01.102.053 thỡ
cấu trỳc dữ liệu trong thẻ của sinh viờn đú sẽ cú dạng như sau:
Bảng 2.1: Cấu trỳc dữ liệu trong thẻ từ ứng với từng mó số sinh viờn cụ thể [8].
Sector Block Số byte trong một block
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1 0 42 1 102 129 00 00 00 00 00 00 00 00 00 00 00 00
1 0 41 1 102 31 00 00 00 00 00 00 00 00 00 00 00 00
1 0 42 1 102 60 00 00 00 00 00 00 00 00 00 00 00 00
1 0 43 1 105 12 00 00 00 00 00 00 00 00 00 00 00 00
1 0 43 1 102 53 00 00 00 00 00 00 00 00 00 00 00 00
Sau khi dữ liệu đó được ghi vào, thẻ này sẽ được cấp cho người sử dụng. Bờn cạnh
đú, người quản lớ hệ thống này cần phải cú một cơ sở dữ liệu riờng để quản lớ. Trong đú,
thụng tin về thẻ được cấp sẽ được lưu lại. Cơ sở dữ liệu mà tụi thiết lập trong hệ thống
này cho một thẻ bao gồm thụng tin về mó số sinh viờn, họ và tờn của người được cấp
thẻ. Ngoài ra cũn cú thờm thụng tin về thời gian được phộp ra vào cửa đối với người
đú, cụ thể là vào cỏc ngày nào trong tuần và trong khoảng thời gian nào. Nếu như thẻ
được quột vào thời gian nằm ngoài khoảng thời gian cho phộp thỡ người đú sẽ khụng thể
vào cửa. Cơ sở dữ liệu được thiết kế cho người quản lớ nằm trong thẻ nhớ SD với tờn
tập tin là “Database.txt”.
16
Cấu trỳc cụ thể của cơ sở dữ liệu tương ứng cho một người sẽ cú dạng như sau:
Cơ sở dữ liệu của một người được lưu dưới dạng một chuỗi như trờn. Phõn tớch
chuỗi trờn, ta thấy rằng chuỗi trờn gồm 9 thành phần được ngăn cỏch bởi cỏc kớ tự
đặc biệt như “%”, “@”, “!”. . . Xột 4 thành phần đầu tiờn trong chuỗi cụ thể là “42”, “01”,
“102”, “129”. Những thành phần đú chớnh là 4 thành phần tương ứng của mó số sinh
viờn. Tiếp theo, kớ tự “1” trong chuỗi trờn được xem như thành phần hoạt động hay
khụng hoạt động của thẻ này. Nếu như trong cơ sở dữ liệu, thành phần này mang giỏ
trị là “1” thỡ nghĩa là hoạt động, thẻ của người dựng này vẫn cũn được phộp sử dụng
để mở cửa. Ngược lại, nếu thành phần này mang giỏ trị “0” đồng nghĩa với khụng hoạt
động thỡ thẻ cấp cho người này đó hết hạn sử dụng. Hai thành phần tiếp theo là “8” và
“18” tương ứng với khoảng thời gian được phộp ra vào cửa của người đú, cụ thể người
này chỉ cú thể được phộp vào cửa trong khoảng thời gian từ 8 giờ đến 18 giờ. Thành
phần tiếp theo là một dóy gồm 7 kớ tự “1111111”, mỗi một kớ tự tương ứng với một ngày
trong tuần. Theo thứ tự từ trỏi sang phải thỡ kớ tự đầu tiờn sẽ tương ứng với ngày chủ
nhật, kế đến là ngày thứ hai và cuối cựng kớ tự kết thỳc sẽ tương ứng với ngày thứ bảy
của tuần. Nếu như kớ tự tại vị trớ ngày nào trong tuần là “1” thỡ nghĩa là ngày hụm
đú, người đú được phộp vào cửa. Ngược lại, nếu kớ tự đú là “0” thỡ đồng nghĩa với ngày
hụm đú, người đú khụng được phộp vào. Trong vớ dụ trờn thỡ dóy “1111111” đồng nghĩa
với người đú được phộp vào tất cả cỏc ngày trong tuần. Một vớ dụ khỏc cho vấn đề này
là dóy kớ tự “0101010”. Dóy này tương ứng với ngày được phộp vào chớnh là thứ hai,
thứ tư, thứ sỏu hằng tuần. Cuối cựng trong chuỗi trờn là thành phần “PhanNhutHuan”
tương ứng với tờn của sinh viờn cụ thể ứng với mó số sinh viờn như trờn. Túm lại, đối
với dữ liệu trờn thỡ người này sẽ được phộp ra vào phũng trong khoảng từ 8 giờ đến 18
giờ, với cỏc ngày từ thứ hai đến chủ nhật trong tuần. Với người tiếp theo thỡ dữ liệu
của họ được định dạng tương tự như trờn và nối tiếp với dữ liệu của người thứ nhất,
tạo thành một chuỗi lớn. Từ đú thấy rằng, bằng việc thay đổi cỏc thành phần trong
chuỗi trờn, ta cú thể quản lớ hệ thống một cỏch chặt chẽ, kể cả thời gian ra vào cụ thể
đối với từng người.
17
Sau khi xõy dựng xong cơ sở dữ liệu thỡ hệ thống sẽ hoạt động theo sơ đồ trong
hỡnh 2.1. Đầu tiờn, khi một thẻ từ được quột vào hệ thống, module MFRC522 sẽ đọc
thụng tin tại vị trớ đó được quy định trước (block 0 của sector 1) và lưu vào Arduino
một mảng buffer đặc trưng cho thụng tin đọc được. Khi đú, module thẻ nhớ SD sẽ bắt
đầu đọc dữ liệu trong tập tin “Database.txt” và truyền xuống Arduino một chuỗi dữ
liệu. Arduino sau khi nhận chuỗi dữ liệu đú sẽ tiến hành thao tỏc phõn chia chuỗi lớn
ra thành từng chuỗi nhỏ ứng với cơ sở dữ liệu của từng người. Sau đú, Arduino thực
hiện cắt 1 chuỗi ra thành nhiều thành phần nhỏ tương ứng để so sỏnh. Arduino sẽ tiến
hành so sỏnh 4 thành phần đầu tiờn trong chuỗi dữ liệu với cỏc phần tử trong mảng
buffer. Khi thỏa món điều kiện thỡ hệ thống sẽ tiến hành bước tiếp theo, nếu sai thỡ sẽ
thụng bỏo lờn màn hỡnh LCD cho người dựng biết. Ở bước tiếp theo, Arduino sẽ tiến
hành so sỏnh cỏc điều kiện khỏc cũn lại. Khi điều kiện hoạt động hay khụng hoạt động
được thỏa món, Arduino sẽ tiến hành đọc thời gian thực từ module DS1307. Sau đú
tiến hành so sỏnh với cơ sở dữ liệu, nếu thỏa điều kiện về thứ ngày và khoảng thời gian
ra vào thỡ thẻ đú sẽ được cấp phộp vào. Ngược lại, nếu sai một thành phần nào đú trong
chuỗi điều kiện trờn thỡ thẻ đú khụng hợp lệ. Khi một thẻ hợp lệ được vào cửa, LCD sẽ
hiện thụng tin tờn sinh viờn được vào. Kế đến, Arduino sẽ điều khiển module thẻ nhớ
ghi lại lịch sử thời gian cụ thể của người đó mở cửa vào trong tập tin “History.txt” và
lưu tập tin này ở thẻ nhớ SD. Cuối cựng, cửa ra vào trong mụ hỡnh sẽ tự động mở nhờ
động cơ Servo. Hệ thống cũn một thành phần là module bluetooth HC-05 đúng vai trũ
thực hiện giao tiếp khụng dõy giữa vi điều khiển và mỏy vi tớnh. Chương trỡnh được
viết ra giỳp người quản lớ cú thể cập nhật cơ sở dữ liệu đồng thời thực hiện thao tỏc
ghi, xúa dữ liệu trong thẻ trờn mỏy vi tớnh cỏ nhõn.
18
2.2 Mụ hỡnh cửa tự động
Trong luận văn này, tụi tiến hành chế tạo một mụ hỡnh cửa tự động bảo mật bằng
thẻ từ. Dưới đõy là hỡnh ảnh mụ hỡnh thực tế.
Hỡnh 2.2: Mụ hỡnh cửa tự động.
Mụ hỡnh cửa được thực hiện bằng những vật liệu cú sđn, một cỏch hoàn toàn thủ
cụng. Bề mặt mụ hỡnh được làm bằng mica, phần đế của mụ hỡnh được làm bằng một
thanh nhụm. Động cơ Servo được đặt bờn dưới thanh nhụm và lắp trực tiếp lờn cỏnh
cửa. Bề mặt mụ hỡnh cú gắn module MFRC522 để người dựng quột thẻ cũng như gắn
kốm theo màn hỡnh LCD để hiển thị trạng thỏi của hệ thống. Khi bạn quột vào một
thẻ hợp lệ, hệ thống sẽ điều khiển động cơ Servo xoay và kộo cửa mở ra. Cửa được mở
ra trong khoảng thời gian 5 giõy và sau đú cửa sẽ tự động đúng lại.
Cụ thể hơn hoạt động của mụ hỡnh, tụi xột vớ dụ với cơ sở dữ liệu gồm 4 thẻ
tương ứng với 4 sinh viờn. Cơ sở dữ liệu được lưu trong thẻ nhớ SD với tờn tập tin là
“Database.txt” như hỡnh sau:
19
Hỡnh 2.3: Cơ sở dữ liệu trong tập tin “Database.txt”.
Với cấu trỳc dữ liệu như đó phõn tớch ở trờn, ta thấy rằng hệ thống quản lớ ra vào
cụ thể đối với từng người kốm theo những điều kiện khỏc nhau. Ngoài thỏa món điều
kiện về mó thẻ, một người muốn ra vào cửa cần thỏa cỏc điều kiện khỏc như giờ ra vào,
ngày được phộp ra vào. . . Tiến hành xột từng trường hợp khi một thẻ được quột vào
hệ thống. Phõn tớch dữ liệu đầu tiờn, sinh viờn “PhanNhutHuan” cú mó số sinh viờn
tương ứng với mó số trờn thẻ từ là 40.01.105.094, thẻ của sinh viờn này vẫn cũn được
phộp hoạt động (thành phần hoạt động hay khụng hoạt động cú giỏ trị là 1). Sinh viờn
này được phộp ra vào cửa trong khoảng thời gian từ 6 giờ đến 23 giờ đối với tất cả cỏc
ngày trong tuần. Khi sinh viờn này quột thẻ được cấp vào hệ thống, cửa tự động sẽ
được mở ra kốm theo màn hỡnh LCD hiển thị tờn sinh viờn vừa vào cửa như trờn hỡnh 2.4.
Hỡnh 2.4: Cửa tự động mở khi một thẻ hợp lệ được quột vào.
20
Với dữ liệu tiếp theo, sinh viờn “NguyenTanPhat” với thẻ cú mó được cấp tương
tự như mó số sinh viờn và thẻ này vẫn cũn được phộp hoạt động. Thẻ này được phộp
ra vào cửa trong khoảng từ 6 giờ đến 23 giờ đối với cỏc ngày thứ hai, thứ ba, thứ năm,
thứ sỏu và thứ bảy trong tuần. Khi thẻ này được quột vào ngày thứ tư, hệ thống sẽ
thụng bỏo rằng vào hụm nay thẻ này khụng được vào cửa như hỡnh 2.5.
Hỡnh 2.5: Hệ thống thụng bỏo khi quột thẻ vào ngày khụng được phộp vào.
Dữ liệu kế tiếp ứng với sinh viờn “VoTranKhoaNguyen”. Thẻ được cấp cho sinh
viờn này vẫn đang cũn hoạt động. Sinh viờn này được hệ thống cho phộp ra vào cửa
trong khoảng thời gian từ 12 giờ đến 17 giờ với tất cả cỏc ngày trong tuần. Nếu như
thời gian quột thẻ nằm ngoài khoảng thời gian trờn (vào lỳc 9 giờ) thỡ hệ thống sẽ hiện
thụng bỏo lờn màn hỡnh LCD như trờn hỡnh 2.6.
21
Hỡnh 2.6: Hệ thống thụng bỏo khi thẻ quột vào khụng đỳng thời gian được phộp vào.
Dữ liệu cuối cựng trong cơ sở dữ liệu ứng với sinh viờn “TranThanhPhuong”. Thẻ
từ được cấp cho sinh viờn này đó hết hạn sử dụng thụng qua thành phần hoạt động hay
khụng hoạt động cú giỏ trị “0”. Vỡ vậy, khi si
Các file đính kèm theo tài liệu này:
- khoa_luan_che_tao_mo_hinh_cua_thong_minh_bao_mat_bang_the_tu.pdf