Xem mẫu
- BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH
KHOA VẬT LÝ
PHAN NHỰT HUÂN
CHẾ TẠO MÔ HÌNH CỬA THÔNG MINH
BẢO MẬT BẰNG THẺ TỪ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH: VẬT LÝ HỌC
MÃ NGÀNH: 105
TP. HỒ CHÍ MINH – 04/2018
- BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP. HỒ CHÍ MINH
KHOA VẬT LÝ
PHAN NHỰT HUÂN
CHẾ TẠO MÔ HÌNH CỬA THÔNG MINH
BẢO MẬT BẰNG THẺ TỪ
KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC
CHUYÊN NGÀNH: VẬT LÝ HỌC
MÃ NGÀNH: 105
NGƯỜI HƯỚNG DẪN KHOA HỌC
ThS. NGUYỄN TẤN PHÁT
TP. HỒ CHÍ MINH – 04/2018
- Lời cảm ơn
Trong thực tế không có thành công nào mà không gắn liền với sự hỗ trợ, giúp đỡ
dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian học
tập trên giảng đường đại học, tôi đã nhận được rất nhiều sự quan tâm, giúp đỡ của quý
thầy cô, gia đình và bạn bè.
Tôi xin gửi lời cảm ơn chân thành nhất của mình đến thầy Nguyễn Tấn Phát,
người đã rất nhiệt tình, tận tâm, chu đáo cung cấp những kiến thức và hướng dẫn tôi
thực hiện khóa luận này. Thầy là người truyền cho tôi niềm đam mê Vật Lý, truyền cho
tôi sự đam mê khoa học và khao khát tìm tòi những kiến thức mới.
Bên cạnh đó, tôi cũng xin gửi lời cảm ơn đến thầy Nguyễn Lâm Duy, thầy Nguyễn
Hoàng Long, thầy Ngô Minh Nhựt, những người đã luôn động viên, hướng dẫn và hỗ
trợ những lúc tôi gặp khó khăn khi thực hiện luận văn này.
Tôi xin gửi lời cảm ơn đến các thầy, cô giảng viên Khoa Vật Lý, Trường Đại học
Sư phạm TP. Hồ Chí Minh – những người đã trang bị cho tôi kiến thức hữu ích giúp
tôi hoàn thành luận văn này.
Cuối cùng tôi xin gửi lời cảm ơn đến các bạn sinh viên trong phòng thí nghiệm
Vật lý đại cương nâng cao – những người đã luôn động viên, chia sẻ, giúp đỡ và đóng
góp những ý kiến quý báu trong suốt quá trình tôi thực hiện luận văn. Cảm ơn bạn
Trần Dương Anh Tài đã hỗ trợ LATEX giúp luận văn của tôi được hoàn thiện nhất.
Tôi xin chân thành cảm ơn!
Tp. Hồ Chí Minh, ngày 12 tháng 04 năm 2018
Sinh viên
Phan Nhựt Huân
- Mục lục
Trang
Danh sách hình vẽ ii
Danh sách bảng biểu iv
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
i
- Danh sách hình vẽ
Trang
Hình 1.1: Giao diện phần mềm Arduino IDE. . . . . . . . . . . . . . . . . 4
Hình 1.2: Arduino Mega 2560 R3. . . . . . . . . . . . . . . . . . . . . . . . 5
Hình 1.3: Sơ đồ chân của Arduino Mega 2560 R3 qua phần mềm mô phỏng
Proteus. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Hình 1.4: Module RFID MFRC522. . . . . . . . . . . . . . . . . . . . . . . 8
Hình 1.5: Thẻ Mifare Classic 1K. . . . . . . . . . . . . . . . . . . . . . . . 9
Hình 1.6: Cấu trúc dữ liệu trong thẻ Mifare Classic 1K. . . . . . . . . . . . 9
Hình 1.7: Module thẻ nhớ SD. . . . . . . . . . . . . . . . . . . . . . . . . . 11
Hình 1.8: Module thời gian thực DS1307. . . . . . . . . . . . . . . . . . . . 12
Hình 1.9: Module bluetooth HC-05. . . . . . . . . . . . . . . . . . . . . . . 13
Hình 1.10: Màn hình LCD I2C. . . . . . . . . . . . . . . . . . . . . . . . . . 13
Hình 1.11: Động cơ Micro Servo 9G. . . . . . . . . . . . . . . . . . . . . . . 14
Hình 2.1: Sơ đồ nguyên lý cấu trúc hoạt động của hệ thống. . . . . . . . . 15
Hình 2.2: Mô hình cửa tự động. . . . . . . . . . . . . . . . . . . . . . . . . 19
Hình 2.3: Cơ sở dữ liệu trong tập tin “Database.txt”. . . . . . . . . . . . . 20
Hình 2.4: Cửa tự động mở khi một thẻ hợp lệ được quét vào. . . . . . . . . 20
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. 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. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Hình 2.7: Hệ thống thông báo khi thẻ quét vào đã hết hạn sử dụng. . . . . 22
Hình 2.8: Hệ thống thông báo khi mã thẻ quét vào không hợp lệ. . . . . . . 23
Hình 2.9: Lịch sử quét thẻ được lưu trong tập tin “History.txt”. . . . . . . . 24
Hình 2.10: Giao diện chính trong chương trình giao tiếp với máy vi tính. . . 25
ii
- Hình 2.11: Cửa sổ xác nhận là người quản lí. . . . . . . . . . . . . . . . . . 25
Hình 2.12: Hệ thống thông báo khi quá trình cập nhật cơ sở dữ liệu hoàn tất. 26
Hình 2.13: Quá trình ghi xóa dữ liệu vào thẻ từ. . . . . . . . . . . . . . . . . 27
iii
- Danh sách bảng biểu
Trang
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ể. 16
iv
- Mở đầu
Hiện nay, nhu cầu tự động hóa các thiết bị đang là một nhu cầu thiết yếu của
cuộc sống hiện đại và cửa tự động là một trong số đó. Hệ thống cửa tự động hiện nay
sử dụng nhiều công nghệ bảo mật khác nhau, trong đó bảo mật bằng thẻ từ được sử
dụng khá phổ biến. Hệ thống cửa tự động bằng thẻ từ có rất nhiều ưu điểm: nhanh
chóng, tiện lợi, tiết kiệm được thời gian đóng mở, độ bảo mật cao. Chính vì những ưu
điểm trên mà ngày nay hệ thống này được sử dụng rộng rãi ở khắp nơi đặc biệt là tại
các khách sạn, văn phòng, công ty. . .
Hệ thống cửa tự động đóng mở bằng thẻ từ sử dụng công nghệ Radio Frequency
Identification (RFID). RFID là công nghệ nhận dạng đối tượng bằng sóng vô tuyến. Hệ
thống RFID hoạt động dựa trên nguyên tắc thu phát sóng điện từ cùng tần số với nhau.
Một hệ thống RFID được cấu tạo bởi hai thành phần chính là thiết bị đọc và thiết bị
phát mã RFID [1]. Khoảng cách giao tiếp giữa thiết bị đọc và thiết bị phát vào khoảng
60mm [1]. Do khoảng cách giao tiếp ngắn nên hệ thống RFID có độ bảo mật cao, tuyệt
đối an toàn, mang lại sự tiện dụng, tính thẩm mỹ cao hơn ổ khóa cơ thông thường.
Công nghệ cửa tự động bảo mật bằng thẻ từ đã được ứng dụng ở rất nhiều nơi.
Tuy nhiên, tại Trường Đại học Sư phạm TP. Hồ Chí Minh chưa sử dụng công nghệ này.
Đối với các phòng thí nghiệm của Khoa Vật Lý, việc bảo vệ dụng cụ thiết bị là rất quan
trọng. Vì vậy, nhằm nâng cao khả năng bảo mật của phòng thí nghiệm thì việc xây
dựng hệ thống cửa bảo mật bằng công nghệ khóa thẻ từ là rất cần thiết. Luận văn này
bước đầu xây dựng một mô hình cửa tự động sử dụng công nghệ thẻ từ, sau đó định
hướng áp dụng vào thực tế tại phòng thí nghiệm Vật lý đại cương nâng cao của Khoa
Vật Lý – Trường Đại học Sư phạm TP. Hồ Chí Minh. Khi ứng dụng mô hình vào thực
tế không những tăng cường độ bảo mật của phòng thí nghiệm thay cho ổ khóa thông
thường mà còn thực hiện thêm chức năng điểm danh sinh viên ra vào phòng thí nghiệm.
Để thực hiện chức năng này ta cần kiểm soát được các mã ghi trên thẻ từ. Các thẻ từ
1
- bán sẵn trên thị trường sử dụng mã do nhà sản xuất quy định. Vì thế ta không thể cá
nhân hóa để quản lí hệ thống được. Thẻ từ cần được mã hóa lại để có thể quản lí. Việc
kiểm soát được mã thẻ từ không những giúp ta quản lí tốt mà còn có thể cải tiến hệ
thống nhằm phục vụ cho chức năng điểm danh sinh viên.
Mô hình chế tạo được trong luận văn này có các đặc điểm nổi bật: hệ thống cửa
hoạt động ổn định; mã thẻ từ được kiểm soát hoàn toàn và ta có thể mã hóa thẻ tùy
theo ý muốn. Ngoài ra, hệ thống còn được tích hợp thêm các module khác nổi bật như
module thẻ nhớ, thời gian thực và bluetooth. Đầu tiên, thẻ nhớ giúp lưu trữ cơ sở dữ
liệu trong hệ thống. Kế đến, module thời gian thực giúp tăng cường thêm độ bảo mật
thông qua việc đọc thời gian thực để so sánh với cơ sở dữ liệu. Ngoài ra, module này
còn thực hiện chức năng điểm danh thông qua việc ghi lại lịch sử ra vào cửa. Module
bluetooth có vai trò thực hiện giao tiếp không dây giữa hệ thống và máy vi tính thông
qua chương trình giao tiếp. Chương trình được xây dựng giúp người quản lí cập nhật
cơ sở dữ liệu trong hệ thống đồng thời thực hiện thao tác ghi/xóa dữ liệu trong thẻ từ.
2
- Chương 1
Cơ sở lý thuyết
Trong mô hình cửa thông minh bảo mật bằng thẻ từ này, tôi sử dụng các linh kiện
điện tử bao gồm vi điều khiển, module đọc/ghi thẻ từ, các module khác cùng với màn
hình LCD và động cơ để đóng mở cửa. Hệ thống cửa được điều khiển bằng board mạch
vi xử lý Arduino 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
nguon tai.lieu . vn