Xem mẫu

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. 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
  11. 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
  12. 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
  13. 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
  14. 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
  15. 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
  16. 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
  17. 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
  18. 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
  19. “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
  20. 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