Tải bản đầy đủ (.docx) (69 trang)

THIẾT KẾ VÀ THI CÔNG HỆ THỐNG QUẢN LÝ ĐIỂM DANH SINH VIÊN DÙNG RFID

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (4.49 MB, 69 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>GVHD: ThS. Nguyễn Duy Thảo</b>

<b>THIẾT KẾ VÀ THI CÔNG HỆ THỐNG QUẢN LÝĐIỂM DANH SINH VIÊN DÙNG RFID</b>

<b>---KHOA ĐIỆN ĐIỆN TỬ</b>

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM</b>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HCM KHOA ĐIỆN ĐIỆN TỬ</b>

------

<b>ĐỒ ÁN 2 </b>

<b>THIẾT KẾ VÀ THI CÔNG HỆ THỐNG QUẢN LÝ ĐIỂMDANH SINH VIÊN DÙNG RFID</b>

<b>GVHD: ThS. Nguyễn Duy Thảo SVTH: </b>

<i><b>Thành phố Hồ Chí Minh, Tháng 12 năm 2023 </b></i>

<b>Nhận xét của giảng </b>

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>LỜI CẢM ƠN</b>

Lời đầu tiên, nhóm em xin gửi lời cảm đến ThS. Nguyễn Duy Thảo đã quan tâm hướng dẫn để em có thể hồn thành đồ án điện tử 2.

Em cũng xin gửi lời cảm ơn chân thành đến các thầy cơ khoa Điện-Điện tử đã hết lịng truyền đạt những kiến thức để em có đủ kiến thức nền tảng để áp dụng vào đồ án và hoàn thành.

Đồng thời em xin cảm ơn bạn bè lớp 20161DTCN2 ngành Điện tử-Viễn thông đã quan tâm giúp đỡ em trong quá trình làm đồ án.

Lời cuối cùng em xin gửi lời cảm ơn đến ban Lãnh đạo Trường Đại học Sư Phạm Kỹ Thuật và gia đình đã tạo nên một môi trường tốt, điều kiện thuận lợi nhất trong quá trình học tập tại trường.

Xin chân thành cảm ơn!

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b>TÓM TẮT </b>

Quản lý điểm danh sinh viên là một phần quan trọng trong cơng tác giảng dạy. Nó giúp thầy cơ có thể nắm rõ về tình hình học tập của sinh viên. Vì vậy, việc thiết kế một hệ thống quản lý sinh viên là rất quan trọng trong công tác giảng dạy tại đại học.

Đồ án này đưa ra cái nhìn tổng quan về một hệ thống điểm danh quản lý sinh viên, qua đó thiết kế lên phần mềm quản lý. Đồ án cũng tập trung nguyên cứu về cơng nghệ RFID để ứng dụng nó vào hệ thống quản lý. Trong đồ án này sử dụng những công cụ như Microsoft Visual Studio, SQL Sever, Arduino IDE …để xây dựng lên hệ một về thống hồn chỉnh với đầy đủ chức năng có thể áp dụng vào thực tế.

Nội dung chia làm 6 chương:

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

Chương 2. CƠ SỞ LÝ THUYẾT...3

2.1 TÌM HIỂU MODULE RFID...3

3.2.3 Module còi buzzer...22

3.2.4 Module RC522 mạch đọc ghi IC RFID...23

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

4.4 LẬP TRÌNH CODE...35

4.4.1 Tạo database:...35

4.4.2 Tạo getUID và UIDContainer:...36

4.4.3 Tạo trang hiện thị Home:...37

4.4.4 Tạo trang đăng ký thẻ:...38

4.4.5 Tạo trang đọc dữ liệu:...41

4.4.6 Tạo trang xóa dữ liệu sinh viên:...43

4.5 LẬP TRÌNH CODE CHO ESP32:...44

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

Hình 5. Logo phần mềm Visual studio code...8

Hình 6. Giao diện chính của Visual studio code...10

Hình 7. Phần mềm Arduino IDE...11

Hình 8. Sơ đồ khối hệ thống...12

Hình 9. Module esp32...13

Hình 10. Sơ đồ chân của esp32...16

Hình 11.Sơ đồ nguyên lý esp32...19

Hình 23. Giao diện xampp chưa khởi động...28

Hình 24. Giao diện xampp khởi động...29

Hình 25. Giao diện quản lý dữ liệu...29

Hình 26. Lưu đồ giải thuật chương trình chính...33

Hình 27. Lưu đồ giải thuật chương trình lưu dữ liệu sinh viên lên webserver...34

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

Hình 28. Mạch in sau khi thi cơng...50

Hình 29.Mơ hình thực tế của mạch...51

Hình 30. Hình trạng thái đang đợi thẻ...52

Hình 31. Trạng thái khi quét thẻ thành cơng...53

Hình 32. Giao diện trang chính...54

Hình 33. Giao diện trang đăng ký...54

Hình 34. Giao diện trang hiển thị danh sách sinh viên...55

Hình 35. Giao diện trang chỉnh sửa thơng tin sinh viên...55

Hình 36. Giao diện trang đọc thơng tin sinh viên...56

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>Chương 1. TỔNG QUAN</b>

<b>1.1 GIỚI THIỆU HỆ THỐNG QUẢN LÝ ĐIỂM DANH SINH VIÊN</b>

Hệ thống quản lý điểm danh sinh viên sử dụng ESP32, RFID RC522 và PHPMyAdmin qua web server là một giải pháp tích hợp giữa thiết bị nhúng ESP32, đầu đọc thẻ RFID RC522 và môi trường phần mềm PHPMyAdmin. ESP32 được lập trình để kết nối với RFID RC522 để đọc thông tin từ thẻ RFID của sinh viên. Dữ liệu này sau đó được truyền đến một web server thông qua thư viện ESPAsyncWebServer. Trên phía server, PHP được sử dụng để xử lý dữ liệu từ ESP32 và tương tác với cơ sở dữ liệu MySQL được quản lý bằng PHPMyAdmin. Cơ sở dữ liệu chứa thông tin về sinh viên cũng như dữ liệu điểm danh. Các script PHP được tạo để thực hiện các thao tác như thêm, sửa, xóa và truy vấn dữ liệu trong cơ sở dữ liệu.

Giao tiếp giữa ESP32 và server được xây dựng trên cơ sở giao thức HTTP hoặc HTTPS để đảm bảo an toàn dữ liệu. Các biện pháp bảo mật, như xác thực và ủy quyền, được áp dụng để đảm bảo chỉ người dùng có quyền mới có thể truy cập vào hệ thống.

Ngồi ra, hệ thống cũng cung cấp các tính năng hiển thị thông tin và điểm danh. Các trang web hoặc ứng dụng được tạo để liên tục cập nhật thông tin từ cơ sở dữ liệu, cung cấp một giao diện người dùng thuận tiện và thông tin chi tiết về tình trạng điểm danh.

<b>1.2 ĐẶT VẤN ĐỀ</b>

Cơng nghệ ngày càng phát triển kéo theo đó là hàng loạt các máy móc thiết bị được các cơng ty phát triển. Song song với sự phát triển của các máy móc, thiết bị thì vi xử lý cùng cơng nghệ cảm biến cũng tạo ra một cuộc cách mạng đảm nhiệm các chức năng thay cho con người trong các quy trình cơng nghiệp và dân dụng địi hỏi sự chính xác, tốc độ và khả năng làm việc liên tục mà con người không làm được.

Kết hợp vi xử lý và cảm biến đã tạo ra nhiều ứng dụng giúp ích cho con người. Có thể kể đến dùng làm máy chấm công trong các trường học, công ty, doanh nghiệp. Làm cách nào để có thể nhận biết chính xác đối tượng mình cần quản lý, tránh sai sót hoặc gian lận là vấn đề lớn nhất của máy chấm công từ trước đến nay. Tuy nhiên hầu

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">

hết các giải pháp này đều sử dụng riêng lẻ. Chính vì vậy để tạo tính mới cho mơ hình đã phá phổ biến này, nhóm tiến hành thiết kế và thi cơng mơ hình điểm danh bằng đề tài: “THẾ KẾ VÀ THI CÔNG HỆ THỐNG QUẢN LÝ ĐIỂM DANH SINH VIÊN SỬ DỤNG RFID”.

<b>1.3 MỤC TIÊU ĐỀ TÀI</b>

Tìm hiểu về ESP 32 cùng các ngoại vi giao tiếp, song song đó là tìm hiểu về RFID và các ngoại vi khác, kết hợp cùng với sự điều khiển của vi xử lí, tương tác từ màn hình LCD 16x2 nhằm tạo ra một thiết bị có khả năng điểm danh bằng hình thức: qt thẻ.

Quản lý thơng tin sinh viên một cách hiệu quả. Cơ sở dữ liệu MySQL kết hợp với PHPMyAdmin cung cấp một nền tảng mạnh mẽ để lưu trữ, quản lý và cập nhật thông tin liên quan đến sinh viên. Hệ thống này không chỉ giúp theo dõi q trình điểm danh mà cịn cung cấp thông tin chi tiết về học viên, tạo điều kiện thuận lợi cho quản lý sinh viên.

<b>1.4 GIỚI HẠN ĐỀ TÀI</b>

-Sử dụng 1 module RFID RC522 để tiến hành điểm danh.

-Giao tiếp giữa module RFID RC522 với bộ vi điều khiển ESP 32. -Giao diện được xây dựng và xử lý trên nền tảng web local.

-Tiến hành đưa dữ liệu lên server để dễ dàng quản lý từ xa.

<b>1.5 CÁC PHÂN MỀM HỖ TRỢ</b>

- Protues: thiết kế mạch. - Xampp: tạo sever ảo.

- Visual studio code: Lập trình tạo giao diện web và kết nối sever. - Arduino IDE: Lập trình cho ESP32.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12">

<b>Chương 2. CƠ SỞ LÝ THUYẾT</b>

<b>2.1 TÌM HIỂU MODULE RFID </b>

 Giới thiệu chung

RFID – Radio Frequency Identification công nghệ truyền nhận dữ liệu từ chip ở khoảng cách xa mà không thông qua tiếp xúc vật lý trực tiếp nào.

Các thiết bị thu phát thơng qua sóng vơ tuyến cùng tần số với nhau. Các tần số thường được dùng là 125Khz hoặc 900Mhz.

<i>Hình 1. Nguyên lý làm việc RFID</i>

Nguyên lý làm việc của hệ thống RFID sử dụng thông dụng ngày nay:

Bộ đọc (Reader) phát 1 tín hiệu thơng qua anten đến một con chip sau đó bộ đọc nhận thông tin lại từ chip rồi sẽ gửi nó đến trạm chủ để điều khiển và xử lý dữ liệu nhận được.

Các chip không tiếp xúc vật lý với nhau, hoạt động bằng sử dụng năng lượng nhận từ tín hiệu của bộ đọc.

 Cấu tạo chức năng

- Thẻ Tag tích hợp Chip và Anten. (Transponder) - Bộ đọc nhận dữ liệu từ các thẻ. (Reader)

- Thiết bị liên kết giữa thẻ và bộ đọc. (Antenna) - Trạm thu nhận, xử lý, thống kê, điều khiển. (Server)

<b>2.2 MODULE ESP32</b>

 Giới thiệu

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

ESP-WROOM-32 là một module WiFi và Bluetooth tích hợp, dựa trên vi điều khiển mạnh mẽ ESP32 của Espressif Systems. Được thiết kế nhằm hỗ trợ các ứng dụng IoT (Internet of Things), ESP-WROOM-32 cung cấp một giải pháp linh hoạt và hiệu quả cho việc kết nối thiết bị với mạng không dây và giao tiếp không dây.

Vi điều khiển ESP32 trong ESP-WROOM-32 được xây dựng với kiến trúc hai nhân Tensilica LX6, cho phép nó chạy ở tốc độ cao lên đến 240 MHz. Điều này đảm bảo hiệu suất đủ mạnh mẽ để xử lý các nhiệm vụ đa nhiệm và xử lý dữ liệu phức tạp trong ứng dụng IoT.

ESP-WROOM-32 hỗ trợ kết nối WiFi băng tần kép ở tần số 2.4 GHz, cũng như Bluetooth Classic và Bluetooth Low Energy (BLE). Điều này giúp nó tương thích với nhiều ứng dụng khác nhau, từ việc truyền dữ liệu không dây đến điều khiển thiết bị từ xa.

Module này thường được sử dụng trong nhiều dự án IoT và các ứng dụng nhúng khác, nhờ vào khả năng linh hoạt, hiệu suất cao và khả năng tích hợp các giao tiếp không dây. Với ESP-WROOM-32, những dự án IoT có thể được triển khai một cách hiệu quả và dễ dàng tích hợp vào các hệ thống thông tin và mạng lưới liên kết.

 Cấu tạo chức năng

- Như một vi điều khiển với kiến trúc đa nhân, cung cấp khả năng xử lý đa nhiệm và hiệu suất cao.

- Kết nối không dây qua wifi. - Giao tiếp ngoại vi và GPIO.

- Có khả năng lưu trữ và RAM đủ lớn.

<b>2.3 PHẦN MỀM XAMPP</b>

XAMPP là một phần mềm cho phép giả lập môi trường server hosting ngay trên máy tính của ta, cho phép ta chạy demo website mà không cần phải mua hosting hay VPS. Chính vì vậy, XAMPP hay được phục vụ cho hoạt động học tập giảng dạy thực hành và phát triển web.

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">

<i>Hình 2. Logo phần mềm XAMPP</i>

XAMPP được viết tắt của X + Apache + MySQL + PHP + Perl vì nó được tích hợp sẵn Apache, MySQL, PHP, FTP server, Mail Server. Còn X thể hiện cho sự đa nền tảng của XAMPP vì nó có thể dùng được cho 4 hệ điều hành khác nhau: Windows, MacOS, Linux và Solaris.

Đặc điểm của XAMPP:

<i>Ưu điểm</i>

- Có thể chạy được linh hoạt được trên mọi hệ điều hành: Cross-platform, Windows, MacOS, Linux.

- Có cấu hình đơn giản nhưng mang đến nhiều chức năng hữu ích như: Lập Server giả định, lập Mail Server giả định và hỗ trợ SSL trên localhost.

- Tạo mã nguồn mở: Giao diện quản lý dễ dàng và tiện lợi giúp người dùng luôn chủ động được trong chế độ khởi động lại hay bật/ tắt đối với máy chủ theo thời gian phù hợp nhất.

<i>Nhược điểm</i>

- Do cấu hình khá đơn giản cho nên Xampp hồn tồn khơng nhận được sự hỗ trợ về cấu hình Module, đồng thời cũng khơng có cả MySQL.

- Dung lượng tương đối nặng (141Mb).

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

- Khơng có nhiều phiên bản cho từng thành phần của server như PHP, Apache mà phải cài đặt riêng.

- Tích hợp được nhiều tính năng với các thành phần quan trọng như: Apache, PHP, MySql. Vì thế, người dùng khơng cần cài đặt từng phần trên riêng lẻ mà chỉ cần cài XAMPP là có 1 web server hồn chỉnh.

XAMPP được dùng để xây dựng và phát triển website theo ngơn ngữ PHP. Ngồi ra, XAMPP cịn được sử dụng để phát triển, nghiên cứu website thông qua localhost của máy tính cá nhân, biến máy tính cá nhân thành máy chủ, dùng chính ổ cứng của máy tính để làm nơi lưu trữ cho máy chủ trang web.

Tuy nhiên, đối với các trang web kinh doanh, các trang web cần vận hành liên tục thì việc sử dụng XAMPP để tạo lập không khả thi. Do localhost sử dụng máy tính để làm máy chủ, nên việc duy trì máy chủ sẽ rất khó khăn và khơng đảm bảo tốc độ lâu dài, thay vào đó các chủ trang web sẽ thuê server hosting. Chung quy lại XAMPP dùng chủ yếu để học tập, nâng cấp và thử nghiệm web.

Để sử dụng các tệp trong XAMPP:

<i>Hình 3. Giao diện chính của XAMMP</i>

Bước 1: Khởi chạy XAMPP, khi ứng dụng được mở, ta sẽ nhìn thấy mục Control Panel

Trong mục này, ta có thể kiểm sốt các phần riêng lẻ của máy chủ. Ta có thể bắt đầu hoặc dừng các module riêng lẻ bằng cách nhấp vào các nút bên dưới “Actions”.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

Bảng điều khiển bao gồm nhiều các nút khác nhau như config, netstat, shell, explorer, services, help, quit

Config: Cho phép ta định cấu hình XAMPP cũng như các thành phần riêng lẻ Netstat: Giúp ta hiển thị tất cả quá trình đang chạy trên hệ thống cục bộ Shell: Cho phép mở shell UNIX

Service: Giúp hiển thị các dịch vụ đang chạy ở backend

Help: Cung cấp cho người sử dụng Xampp các cộng đồng hỗ trợ Quit: Thoát XAMPP

Bước 2: Nhấn vào nút Start trên thanh Start trong hàng Apache. Thao tác này sẽ giúp ta khởi chạy máy chủ Apache. Nhãn Apache trong cột Module sẽ chuyển sang màu xanh lục và ta sẽ thấy một thông báo trong nhật ký ở cuối Control Panel, thông báo cho ta biết rằng máy chủ đang chạy.

Sử dụng Xampp

<i>Hình 4. Khởi động XAMPP</i>

Bước 3: Mở trình duyệt của ta, nhập localhost vào thanh địa chỉ

Bước 4: Ta sẽ thấy tùy chọn “Local host - Welcome to XAMPP” ngay bên dưới thanh địa chỉ. Nhấn vào đó.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

Bước 5: Ta sẽ chuyển hướng đến localhost/dashboard. Thay thế phần bảng điều khiển bằng tên của thư mục chứa tệp PHP của ta.

Bước 6: Ta sẽ thấy danh sách các tệp trong thư mục đã nói, nhấp chọn vào tệp PHP của ta.

<b>2.4 VISUAL STUDIO CODE</b>

Visual Studio Code, thường được viết tắt là VS Code, là một trình soạn thảo mã nguồn mở miễn phí do Microsoft phát triển. Đây là công cụ phát triển mã nguồn rất phổ biến trong cộng đồng phát triển phần mềm và có sẵn cho các hệ điều hành Windows, macOS và Linux.

VS Code thường được sử dụng cho việc phát triển ứng dụng web, ứng dụng di động, phát triển back-end, và nhiều tác vụ phát triển mã nguồn khác. Điều quan trọng là nó là một cơng cụ linh hoạt có khả năng tuỳ chỉnh cao, phù hợp với nhiều dự án phát triển khác nhau.

<i>Hình 5. Logo phần mềm Visual studio code</i>

Visual Studio Code là một trình soạn thảo mã nguồn mã nguồn mở phổ biến và mạnh mẽ. Một số tính năng nổi bật của VS Code bao gồm:

1. Hỗ trợ đa ngôn ngữ

VS Code có khả năng làm việc với nhiều loại ngơn ngữ lập trình khác nhau, chẳng hạn như JavaScript, TypeScript, Python, C#, Java, Go, Ruby và nhiều hơn nữa.

2. Hỗ trợ gỡ lỗi

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">

Visual Studio Code hỗ trợ mạnh mẽ cho q trình gỡ lỗi với các tính năng như Breakpoints, kiểm tra biến, theo dõi code từng bước, và bảng điều khiển gỡ lỗi. Các công cụ và tính năng này giúp ta tìm và sửa lỗi trong mã nguồn của mình một cách dễ dàng và hiệu quả.

3. Tích hợp Git

Với tích hợp Git sẵn có trong VS Code, ta có thể thực hiện các nhiệm vụ quản lý phiên bản trực tiếp trong trình soạn thảo. Ta có thể thực hiện các thao tác Git như commit, push, pull và xem lịch sử mã nguồn một cách dễ dàng.

4. Tự động hoàn thành mã (IntelliSense)

VS Code cung cấp tính năng IntelliSense giúp tự động hồn thành mã nguồn dựa trên ngữ cảnh. Nó hiển thị gợi ý về biến, phương thức và các thành phần khác của mã nguồn của ta, giúp tăng tốc quá trình viết mã.

5. Hỗ trợ đa nền tảng

Visual Studio Code khả dụng trên Windows, macOS và Linux, cho phép người dùng làm việc trên nhiều nền tảng khác nhau và đồng bộ hóa cài đặt và tiện ích mở rộng giữa các máy tính.

6. Tích hợp Terminal

Terminal tích hợp cho phép người dùng dễ dàng chuyển đổi giữa việc chỉnh sửa mã và thực hiện các lệnh dòng lệnh mà khơng cần mở cửa sổ dịng lệnh riêng biệt. Điều này giúp tiết kiệm thời gian và tăng hiệu suất làm việc cho nhà phát triển.

7. Tiện ích mở rộng

Visual Studio Code hỗ trợ hầu hết các ngôn ngữ lập trình. Nhưng nếu người dùng sử dụng một ngơn ngữ không thuộc danh sách ngôn ngữ được hỗ trợ, họ vẫn có thể tải và sử dụng tiện ích mở rộng. Về mặt hiệu suất, tiện ích mở rộng khơng làm chậm trình soạn thảo vì nó chạy dưới dạng một tiến trình riêng biệt.

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<i>Hình 6. Giao diện chính của Visual studio code</i>

8. Cấu trúc phân cấp

Cấu trúc cấp bậc (Hierarchy Structure) trong Visual Studio Code cho phép ta tổ chức mã nguồn của dự án một cách rõ ràng bằng cách sắp xếp các tệp và thư mục. Điều này giúp ta duyệt và tìm kiếm tệp một cách hiệu quả hơn, đặc biệt là đối với các dự án lớn và phức tạp.

9. Nhiều dự án

Ta có thể mở đồng thời nhiều dự án chứa nhiều tệp/thư mục. Các dự án/thư mục này có thể liên quan hoặc không liên quan đến nhau.

<b>2.5 ARDUINO IDE</b>

Arduino IDE là một phần mềm mã nguồn mở chủ yếu được sử dụng để viết và biên dịch mã vào module Arduino.

Đây là một phần mềm Arduino chính thức, giúp cho việc biên dịch mã trở nên dễ dàng mà ngay cả một người bình thường khơng có kiến thức kỹ thuật cũng có thể làm được.

Nó có các phiên bản cho các hệ điều hành như MAC, Windows, Linux và chạy trên nền tảng Java đi kèm với các chức năng và lệnh có sẵn đóng vai trị quan trọng để gỡ lỗi, chỉnh sửa và biên dịch mã trong mơi trường.

Có rất nhiều các module Arduino như Arduino Uno, Arduino Mega, Arduino Leonardo, Arduino Micro và nhiều module khác.

</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">

<i>Hình 7. Phần mềm Arduino IDE</i>

Mỗi module chứa một bộ vi điều khiển trên bo mạch được lập trình và chấp nhận thơng tin dưới dạng mã.

Mã chính, cịn được gọi là sketch, được tạo trên nền tảng IDE sẽ tạo ra một file Hex, sau đó được chuyển và tải lên trong bộ điều khiển trên bo.

Môi trường IDE chủ yếu chứa hai phần cơ bản: Trình chỉnh sửa và Trình biên dịch, phần đầu sử dụng để viết mã được yêu cầu và phần sau được sử dụng để biên dịch và tải mã lên module Arduino.

Môi trường này hỗ trợ cả ngôn ngữ C và C ++.

</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">

<b>Chương 3. THIẾT KẾ PHẦN CỨNG</b>

<b>3.1 TỔNG QUAN VỀ HỆ THỐNG</b>

<b>3.1.1 Sơ đồ khối hệ thống</b>

Theo yêu cầu của đề tài nhóm tiến hành thiết kế sơ đồ khối của mạch hệ thống điểm danh. Sau đây là sơ đồ khối của mạch hệ thống điểm danh :

<i>Hình 8. Sơ đồ khối hệ thống</i>

Cấp nguồn 5V cho bộ điều khiển trung tâm ESP32 và các ngoại vi. Chức năng từng khối:

 Khối nguồn: Cung cấp nguồn cho toàn bộ hệ thống hoạt động ổn định

 Khối xử lý trung tâm: Sử dụng ESP 32 làm bộ xử lí trung tâm, giao tiếp với mạng Wifi, xử lí tín hiệu từ khối đọc rồi gửi dữ liệu đến cơ sở dữ liệu để hiển thị lên web.

 Khối đọc: đọc các thơng tin từ thẻ từ sau đó chuyển dữ liệu đến khối xử lý trung tâm.

</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">

 Cơ sở dữ liệu: Nhận dữ liệu được gởi từ ESP32 để tiến hành lưu trữ và là nơi khối hiển thị truy cập vào để lấy dữ liệu hiển thị.

 Khối hiển thị: truy xuất dữ liệu từ cơ sở dữ liệu để hiển thị thông tin sinh viên, thực hiện thao tác đăng ký thông tin để gửi dữ liệu vào cơ sở dữ liệu.

<b>3.1.2 Nguyên lý hoạt động</b>

Cấp nguồn 5V cho bộ điều khiển trung tâm ESP32 cùng các thiết bị ngoại vi sử dụng nguồn 5V.

Thiết bị quẹt thẻ điểm danh RFID sử dụng nguồn 3,3V hoạt động bằng cách quẹt thẻ Tag. Sau khi giao tiếp, bộ điều khiển trung tâm ESP32 sẽ nhận dữ liệu thông tin từ thẻ và truyền tiếp thông tin lên cơ sở dữ liệu. Khối hiển thị sẽ truy xuất dữ liệu từ cơ sở dữ liệu để hiển thị thơng tin sinh viên cùng với đó sẽ thực hiện thao tác đăng ký thông tin để gửi dữ liệu vào cơ sở dữ liệu.

LCD được dùng để hiển thị thông báo.

</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">

 Chạy hệ 32 bit

 Tốc độ xử lý từ 160 MHz đến 240 MHz  ROM: 448 Kb

 Tốc độ xung nhịp từ 40 Mhz ÷ 80 Mhz (có thể tùy chỉnh khi lập trình)  RAM: 520 Kb SRAM liền chip. Trong đó 8 Kb RAM RTC tốc độ cao –

Hỗ trợ tất cả các loại giao tiếp

 Bộ chuyển đổi số sang tương tự (DAC) 8 bit

 18 kênh bộ chuyển đổi tương tự sang số (ADC) 12 bit.  cổng giao tiếp I2C

 cổng giao tiếp UART

 cổng giao tiếp SPI (1 cổng cho chip FLASH)  2 cổng giao tiếp I²S

 10 kênh ngõ ra điều chế độ rộng xung (PWM)

 Khởi động an toàn (Secure boot)  Mã hóa flash (Flash encryption)

 1024-bit OTP, lên đến 768-bit cho khách hàng

 Tăng tốc phần cứng mật mã: AES, SHA-2, RSA, mật mã đường cong elliptic (ECC – elliptic curve cryptography), bộ tạo số ngẫu nhiên (RNG – random number generator)

</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">

Nguồn điện hoạt động

 Điện áp hoạt động: 2,2V ÷ 3,6V  Tiêu thụ điện năng dưới 200 mA  Nhiệt độ hoạt động: -40 ÷ + 85℃ ℃  Số cổng GPIO: 38

Nút khởi động: Nút này được sử dụng để tải bản phác thảo / chương trình mới lên vi điều khiển ESP32. Trong quá trình tải lên, chúng ta phải giữ nút khởi động. Micro USB: Bo mạch được cấp nguồn bằng cổng Micro USB tích hợp. Cổng này cũng có thể được sử dụng để kết nối bo mạch với máy tính để tải lên các chương trình.

Nút RESET: Nút này chỉ đơn giản được sử dụng để đặt lại bảng.

Cảm biến cảm ứng: ESP32 đi kèm với 10 cảm biến cảm ứng điện dung được kết nối với chân

Các chân GPIO này có thể cảm nhận được các biến thể nếu chúng chạm vào bất cứ thứ gì dẫn điện, như da người. Vì vậy, khi chúng ta chạm vào chân GPIO bằng ngón tay, nó sẽ tạo ra biến thể này được đọc bởi cảm biến. Chúng ta có thể sử dụng chức năng touchRead (GPIO) để đọc giá trị từ cảm biến cảm ứng.

Cảm biến hiệu ứng Hall: Bo mạch đi kèm với một cảm biến tích hợp khác, cảm biến hiệu ứng Hall. Cảm biến hiệu ứng Hall được sử dụng để đo sự thay đổi từ trường

</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25">

Bảng phát triển ESP32 SƠ ĐỒ CHÂN:

<i>Hình 10. Sơ đồ chân của esp32<small>.</small></i>

Chân nguồn:

Bo mạch đi kèm với hai chân nguồn - chân 5V và chân 3.3V. Chân 5V có thể được sử dụng để cung cấp trực tiếp ESP32 và các thiết bị ngoại vi của nó nếu ta có nguồn điện áp 5V được điều chỉnh. Trong khi chân 3.3V là đầu ra của bộ điều chỉnh điện áp (CP2102), nó có thể được sử dụng để cấp nguồn cho các thành phần bên ngoài.

GND: Chân nối đất của ESP32 được sử dụng để hoàn thành mạch. Kênh ADC (Tương tự sang kỹ thuật số):

Bo mạch có 18 ADC SAR 12 bit và hỗ trợ các phép đo trên 15 kênh (chân hỗ trợ tương tự. ADC1_CH0 (GPIO 36)

</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">

Kênh DAC (Digital to Analog):

Bo mạch đi kèm với hai kênh DAC 8 bit có thể được sử dụng để chuyển đổi tín hiệu kỹ thuật số thành điện áp tương tự.

 DAC_1 (GPIO25)  DAC_2 (GPIO26)

Chân UART (Máy thu-phát không đồng bộ đa năng):

Bảng phát triển ESP32 có ba giao diện UART, - UART0, UART1 và UART2, cung cấp giao tiếp không đồng bộ giữa các thiết bị hỗ trợ UART lên đến tốc độ 5 Mbps.

Giao diện UART trong bảng phát triển cũng bao gồm hai chân bổ sung cho phép người nhận và người gửi cảnh báo lẫn nhau về trạng thái hiện tại của họ - chân tín

</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">

 U2 CTS (GPIO8)  U2 RTS (GPIO7) Chân SPI:

Bo mạch có ba SPI (SPI, HSPI và VSPI) ở chế độ chủ và tớ. Các chân này được sử dụng để kết nối với các thiết bị hỗ trợ SPI bên ngoài.

Chân SPI trên board:

Bo mạch đi kèm với 25 chân hỗ trợ PWM (Gần như tất cả các chân GPIO). Đầu ra PWM có thể được sử dụng để điều khiển động cơ kỹ thuật số và đèn LED.

EN hoặc Bật mã pin:

</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28">

EN là viết tắt của Enable; chân này là chân kích hoạt bộ điều chỉnh 3.3 V. Khi điều này được kéo THẤP, nó sẽ đặt lại vi điều khiển.

Chú ý: Bảng dev được thảo luận ở trên có 38 chân. Hai biến thể phổ biến khác chỉ có 30 hoặc 36 chân lộ ra ngồi (có sẵn cho kết nối bên ngồi), mặc dù chúng có cùng chip WROOM-32 được cài đặt.

Sơ đồ của ESP32 Board:

<i>Hình 11.Sơ đồ ngun lý ESP32.</i>

<b>3.2.2 Màn hình LCD 16x2 tích hợp I2C</b>

Mô tả:

Đây là LCD ký tự 16x2 chữ trắng nền xanh dương có IC điều khiển HD44780 Super Twisted Nematic (STN) LCD. Giao tiếp đơn giản với 4 bit hoặc 8 bit. Giao tiếp dễ dàng với các loại vi điều khiển và board Arduino, ATMEL AVR hoặc PIC.

</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">

<i>Hình 12. Màn hình LCD16x2 tích hợp I2C</i>

<i>Hình 13. Sơ đồ ngun lý LCD tích hợp I2C.</i>

Đặc điểm màn LCD:

</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">

Có đèn led nền, có thể dùng biến trở hoặc PWM điều chình độ sáng để sử dụng ít điện năng hơn.

Có thể được điều khiển với 6 dây tín hiệu

LCD 16×2 có 16 chân trong đó 8 chân dữ liệu (D0 – D7) và 3 chân điều khiển (RS, RW, EN).

5 chân còn lại dùng để cấp nguồn và đèn nền cho LCD 16×2.

Các chân điều khiển giúp ta dễ dàng cấu hình LCD ở chế độ lệnh hoặc chế độ dữ liệu.

Chúng cịn giúp ta cấu hình ở chế độ đọc hoặc ghi.

LCD 16×2 có thể sử dụng ở chế độ 4 bit hoặc 8 bit tùy theo ứng dụng ta đang làm. Đặc điểm Module I2C Arduino:

</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">

<i>Hình 15. Module I2C.</i>

LCD có q nhiều nhiều chân gây khó khăn trong q trình đấu nối và chiếm dụng nhiều chân trên vi điều khiển.

Module I2C LCD ra đời và giải quyết vấn để này cho bạn.

Thay vì phải mất 6 chân vi điều khiển để kết nối với LCD 16×2 (RS, EN, D7, D6, D5 và D4) thì module IC2 bạn chỉ cần tốn 2 chân (SCL, SDA) để kết nối.

Module I2C hỗ trợ các loại LCD sử dụng driver HD44780(LCD 16×2, LCD 20×4, …) và tương thích với hầu hết các vi điều khiển hiện nay.

Thông số kĩ thuật:

Điện áp hoạt động: 2.5-6V DC.

Hỗ trợ màn hình: LCD1602,1604,2004 (driver HD44780). Giao tiếp: I2C.

Địa chỉ mặc định: 0X27 (có thể điều chỉnh bằng ngắn mạch chân A0/A1/A2). Tích hợp Jump chốt để cung cấp đèn cho LCD hoặc ngắt.

Tích hợp biến trở xoay điều chỉnh độ tương phản cho LCD.

<b>3.2.3 Module còi buzzer </b>

Module còi buzzer có 3 chân giao tiếp ngoại vi GNP, I/O, VCC rất dễ sử dụng. Buzzer kêu liên tục khi cấp điện áp 3-5V.

</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32">

<i>Hình 16. Module cịi buzzer</i>

 Điện áp sử dụng: 3.3~5VDC

 Tín hiệu kích: TLL mức thấp low 0VDC  Kích thước: 32x13mm

<b>3.2.4 Module RC522 mạch đọc ghi IC RFID</b>

RC522 Mạch Đọc Ghi IC RFID hoạt động với tần số 13.56mhz không tiếp xúc, được thiết kế bởi NXP sử dụng chip tiêu thụ điện năng thấp và kích thước nhỏ gọn, là sự lựa chọn tốt nhất trong sự phát triển các ứng dụng thông minh như máy đo và thiết bị cầm tay di động...

Mơ-đun này có thể lắp trực tiếp trong các thiết bị cầm tay để sản xuất hàng loạt. Mô-đun sử dụng nguồn điện 3.3V và có thể giao tiếp trực tiếp với bất kỳ bo mạch CPU nào bằng cách kết nối thông qua giao tiếp SPI, khoảng cách đọc tốt.

</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">

 Hỗ trợ các loại card: mifare1 S50, mifare1 S70, mifare UltraLight, mifare Pro, mifare Desfire

 Kích thước: 40×60 mm

 Nhiệt độ hoạt động: -20~80oC  Nhiệt độ lưu trữ: -40~85oC  Độ ẩm: 5% -95%

 Giao tiếp: SPI

</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34">

 Tốc độ truyền data: Max 10Mbit/s

 Dòng điện cung cấp esp32: 50 mA.  Dòng điện cung cấp LCD: 100 mA.  Dòng điện cung cấp buzzer: 20 mA.  Dòng điện cung cấp rfid_rc522: 30 mA. => Dịng điện tiêu thụ tồn mạch là ~ 2 A.

</div>

×