Khóa luận Chế tạo mô hình cửa thông minh bảo mật bằng thẻ từ

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

 

pdf39 trang | Chia sẻ: honganh20 | Ngày: 14/02/2022 | Lượt xem: 314 | Lượt tải: 2download
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:

  • pdfkhoa_luan_che_tao_mo_hinh_cua_thong_minh_bao_mat_bang_the_tu.pdf
Tài liệu liên quan