MỤC LỤC Chương 1: 12 GIỚI THIỆU 12 1.1 . TỔNG QUAN VÀ LÝ DO CHỌN ĐỀ TÀI 12 1.2. MỤC TIÊU VÀ GIỚI HẠN 13 1.2.1. Mục tiêu 13 1.2.2. Giới hạn 13 1.3. NỘI DUNG THỰC HIỆN 13 Chương 2: 14 CƠ SỞ LÍ THUYẾT 14 2.1. BỘ XỬ LÝ TRUNG TÂM PIC 16F877A 14 2.3. LCD 16X2 18 Bảng 23. Bảng thông tin chân LCD. 19 2.4. THIẾT BỊ QUẸT THẺ ĐIỂM DANH RFID 19 2.4.1. Giới thiệu RFID 20 2.4.2. Hệ thống RFID gồm những thành phần cơ bản sau: 20 2.4.3. Độ bảo mật và tin cậy: 21 2.5. MODULE MFRC 522 21 2.6. PL2303 – USB2COM 22 2.7. PC 23 2.8. MẠCH ỔN ÁP 23 2.9. TRANSISTOR C1815 24 Chương 3: 26 TÍNH TOÁN THIẾT KẾ 26 3.1. GIỚI THIỆU 26 3.2. THIẾT KẾ SƠ ĐỒ KHỐI 26 3.3. THIẾT KẾ MẠCH 27 3.3.1. Khối điều khiển trung tâm 27 3.3.2. Khối nguồn 5V 27 3.3.3. Khối nguồn 3,3V 28 3.3.4. Khối hiển thị 29 Bảng 3.6 Cấu trúc các chân LCD 16X2 30 3.3.5. Khối âm thanh 30 3.3.6. Khối nút nhấn 30 3.4. SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 31 Chương 4: 33 THI CÔNG MẠCH, MÔ HÌNH VÀ VIẾT CHƯƠNG TRÌNH 33 4.1. THI CÔNG PCB 33 4.1.1. BẢNG DANH SÁCH LINH KIỆN 33 4.1.2. VẼ PCB. 33 4.1.2. HÀN LINH KIỆN. 35 4.2. VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 36 4.2.1. LƯU ĐỒ CHƯƠNG TRÌNH 36 4.2.2. GIỚI THIỆU PHẦN MỀM PIC C COMPILER 37 KẾT QUẢ THỰC HIỆN 51 5.1. KẾT QUẢ THỰC HIỆN 51 Chương 6: 56 KẾT LUẬN 56 6.1. KẾT LUẬN: 56 6.2. HƯỚNG PHÁT TRIỂN 56 Chương 1: GIỚI THIỆU 1.1 . TỔNG QUAN VÀ LÝ DO CHỌN ĐỀ TÀI Hiện nay, với sự phát triển của khoa học, các ứng dụng công nghệ thông minh ngày càng được sử dụng trong cuộc sống hằng ngày nhằm mục đích phục vụ tốt cho con người. Hệ thống điểm danh thông minh sử dụng RFID là một trong những ứng dụng được phát minh trong thời đại công nghệ này. Các hệ thống điểm danh thông minh RFID đươc lắp đặt rộng rãi trong các trường học, thư viện, cơ quan, … nhằm kiểm soát, quản lý nhân sự. Giải pháp điểm danh sinh viên bằng công nghệ RFID giúp quá trình quản lý dạy học, quản lý sinh viên, quản lý mọi diễn biến hiện diện và địa điểm, vị trí của đối tượng quản lý được dễ dàng nhanh chóng và chính xác, giúp nâng cao hiệu quả quản lý của nhà trường đối với sinh viên về mọi mặt của công tác đào tạo và quản lý con người. Các sự kiện vắng mặt, điểm danh, truy xét địa điểm vị trí… được dễ dàng hiển thị thị trên hệ thống một cách tức thời và chính xác. Mỗi sinh viên chỉ cần đeo 1 tag hoặc thẻ RFID, tại các vị trí trong nhà trường phủ sóng RFID là dễ dàng có thể đem lại kết quả quản lý như mong muốn. Ứng dụng RFID trong giáo dục chỉ là một vấn đề của thời gian. Thiết bị nhận dạng tần số vô tuyến là một phần hàng ngày của thời đại điện tử và nhanh chóng trở thành một phần của kiểm soát truy cập, thư viện và thẻ thanh toán và dự kiến có thể phát triển rộng rãi để thay thế nhãn mã vạch trên hàng tiêu dung. Qua tóm tắt trên, nhóm chúng em đã chọn đề tài “HỆ THỐNG ĐIỂM DANH SỬ DỤNG RIFD” để nghiên cứu và chọn làm đề tài Đồ Án Môn Học 2 này. Hệ thống sử dụng RFID, dùng PIC 16F877A làm vi điều khiển trung tâm, LCD để hiển thị. 1.2. MỤC TIÊU VÀ GIỚI HẠN 1.2.1. Mục tiêu Đồ án nguyên cứu và thực hiện nhằm áp dụng những kiến thức đã học trong nhà trường và khoa học kỹ thuật để tạo ra một hệ thống có điểm danh sinh viên tự động. Đồ án này được thực hiện nhằm mục đích tạo ra một hệ thống có thể giúp giảng viên quản lý việc điểm danh sinh viên, thống kê đưa ra kết quả để cuối kì giảng viên có thể đánh giá tình trạng chuyên cần của sinh viên. Đồng thời có thể giúp sinh viên có thể theo dõi tình trạng chuyên cần của bản thân. 1.2.2. Giới hạn Sử dụng PIC 16F877A để làm khối điều khiển trung tâm. Hiện thị trên LCD với những ký tự đơn giản. 1.3. NỘI DUNG THỰC HIỆN Tìm hiểu cách thức hoạt động của hệ thống điềm danh. Thiết kế mạch nguồn. Thiết kế và thi công hệ thống điểm danh: dùng Module MFRC 522, hiển thị lên LCD. Viết chương trình điều khiển cho PIC 16F877A, nạp code và chạy thử nghiệm sản phẩm, chỉnh sửa và hoàn thiện. Thực hiện viết luận văn báo cáo. Tiến hành báo cáo đề tài.
ĐAMH2 – Hệ thống điểm danh sử dụng RFID BỘ GIÁO DỤC & ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ - CÔNG NGHIỆP ĐỒ ÁN MÔN HỌC 2 THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỂM DANH SINH VIÊN DÙNG RFID GVHD: PGS TS NGUYỄN THANH HẢI SVTH: MSSV HÀ GIA KÍNH 16141189 NGUYỄN NHẬT PHA 16141224 Tp Hồ Chí Minh, tháng 12 năm 2019 1 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Lời cảm ơn Lời đầu tiên, em xin chân thành cảm ơn Thầy Nguyễn Thanh Hải đã tận tình trực tiếp hướng dẫn, góp ý và tạo điều kiện thuận lợi cho chúng em hoàn thành đề tài này Em cũng xin chân thành cảm ơn quý thầy cô trong Khoa Điện – Điện tử cùng các bạn sinh viên trong Khoa đã đóng góp ý kiến và kinh nghiệm trong quá trình em thực hiện đề tài này Tuy nhiên trong quá trình thực hiện, do kiến thức và kinh nghiệm thực tế của chúng em còn hạn chế, nên không thể tránh khỏi nhiều sai sót Vì vậy, em rất mong nhận được những ý kiến đóng góp của thầy để em được hiểu biết hơn trong quá trình học tập tiếp theo Nhóm chúng em xin chân thành cảm ơn! Tp Hồ Chí Minh, tháng 12 năm 2019 Nhóm sinh viên thực hiện Hà Gia Kính Nguyễn Nhật Pha 2 ĐAMH2 – Hệ thống điểm danh sử dụng RFID ĐỀ CƯƠNG ĐỒ ÁN MÔN HỌC I Tên đề tài THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỂM DANH SINH VIÊN SỬ DỤNG RIFD Giáo Viên Hướng Dẫn: thầy Nguyễn Thanh Hải Sinh Viên Thực Hiện: - Sinh Viên 1: Hà Gia Kính MSSV:16141189 - Sinh Viên 2: Nguyễn Nhật Pha MSSV:16141224 Học kỳ 1_Năm 2019-2020 II Tổng quan quan và lý do chọn đề tài : 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 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: “THIẾT KẾ VÀ THI CÔNG HỆ THỐNG ĐIỂM DANH SINH VIÊN SỬ DỤNG VI ĐIỀU KHIỂN PIC 16F877A VÀ RFID ” 3 ĐAMH2 – Hệ thống điểm danh sử dụng RFID III Mục tiêu và giới hạn : 3.1 Mục tiêu: -Tìm hiểu về dòng vi xử lí 16F887A 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: quét thẻ 3.2 Giới hạn -Sử dụng 1 module RFID RC522 để tiến hành điểm danh -Sử dụng 1 module PL2303 để gửi và truyền dữ liệu từ vi xử lí qua máy tính -Giao tiếp giữa module RFID RC522 với vi xử lí 16F887A -Giao diện được xây dựng và xử lý trên màn hình LCD 16x2 -Xử lý việc điểm danh bằng file Excel lưu sẵn trong thẻ nhớ -Tiến hành đưa dữ liệu lên server để dễ dàng quản lý từ xa -Sử dụng 1 module RFID RC522 để tiến hành điểm danh IV Nội dung thực hiện : -Thiết kế sơ đồ khối và nguyên lý chức năng của từng khối -Vẽ sơ đồ mạch -Thiết kế ,thi công hệ thống -Lắp ráp các khối điều khiển vào mô hình -Viết chương trình điều khiển -Nạp chương trình vào vi điều khiển -Chạy thử nghiệm hệ thống -Kiểm tra, tinh chỉnh hoàn thiện hệ thống -Viết báo cáo -Báo cáo đồ án môn học 2 V Tài liệu tham khảo: [1] Nguyễn Đình Phú, Phan Vân Hoàn, Trương Ngọc Anh, Giáo trình: Thực hành vi điều khiển Pic, NXB đại học quốc gia TP Hồ Chí Minh, 2017 4 ĐAMH2 – Hệ thống điểm danh sử dụng RFID [2] Nguyễn Việt Hùng, Nguyễn Ngô Lâm, Nguyễn Văn Phúc, Đặng Phước Hải Trang, giáo trình kỹ thuật truyền số liệu, NXB ĐH Quốc Gia, Tp Hồ Chí Minh, 2013 [3] Hoàng Ngọc Văn, Giáo trình thực hành điện tử công suất, 2015 [4] MaViet, Tìm hiểu về RFID, http://maviet.com.vn/tu-van/cong-nghe- rfid.html 15/11/2018 [5] Nguyễn Đình Phú, Nguyễn Trường Duy, “Giáo Trình: Kỹ Thuật Số”, Xuất bản ĐH Quốc Gia, Tp.HCM, 2013 [6] Nguyễn Đình Phú, “Giáo trình Vi Xử Lý”, NXB Trường Đại Học Sư Phạm Kĩ Thuật TP.HCM, 2016 Ngày tháng 12 năm2019 Xác nhận của GVHD 5 ĐAMH2 – Hệ thống điểm danh sử dụng RFID TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ TP.HCM NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ Độc lập- Tự do- Hạnh phúc PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN G viên hướng dẫn: PGS.TS Nguyễn Thanh Hải Sinh viên thực hiện: Hà Gia Kính MSSV: 16141189 Nguyễn Nhật Pha MSSV: 16141224 Ngành: Công nghệ kĩ thuật Điện tử, truyền thông Tên đề tài: Thiết kế và thi công hệ thống điểm danh sinh viên sử dụng RFID NHẬN XÉT 1.Về nội dung đề tài và khối lượng thực hiện: …………………………………………………………………………………… … .………………………………………………………………………… 2 Ưu điểm: …………………………………………………………………………………… ….……………………………………………………………………………… 3 Khuyết điểm: …………………………………………………………………………………… .…………………………………………………………………………………… 4 Đánh giá loại: …………………………………………………………………………………… Điểm:……………….( Bằngchữ:……………………………………………… ) 6 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Tp Hồ Chí Minh, ngày tháng 12 năm 2019 Xác nhận của GV viên hướng dẫn TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT CỘNG HÒA XÃ HỘI CHỦ TP.HCM NGHĨA VIỆT NAM KHOA ĐIỆN-ĐIỆN TỬ Độc lập- Tự do- Hạnh phúc BẢNG MÔ TẢ CÔNG VIỆC Họ tên sinh viên 1: Hà Gia Kính MSSV: 16141189 Họ tên sinh viên 2: Nguyễn Nhật Pha MSSV: 16141224 Tên đề tài: Thiết kế và thi công hệ thống điểm danh sinh viên sử dụng RFID 1 MÔ TẢ MỤC TIÊU CỦA ĐỀ TÀI - Hiểu được nguyên lí cơ bản của mạch điều khiển - Thiết kế được mạch điều khiển - Thi công mạch - Hoàn thiện mạch 2 MÔ TẢ CÔNG VIỆC THỰC HIỆN ĐỀ TÀI CỦA TỪNG SINH VIÊN Họ và tên sinh viên 1: Hà Gia Kính Các công việc thực hiện trong đề tài: STT Nội dung công việc 1 Tìm hiểu đề tài 2 Thiết kế sơ đồ nguyên lí 3 Tính toán lựa chọn linh kiện 7 ĐAMH2 – Hệ thống điểm danh sử dụng RFID 4 Viết chương trình điều khiển 5 Viết báo cáo Họ và tên sinh viên 2: Nguyễn Nhật Pha Các công việc thực hiên trong đề tài: STT Nội dung công việc 1 Tìm hiểu đề tài 2 Viết chương trình điều khiển 3 Thi công mạch 4 Cân chỉnh mạch 5 Viết báo cáo Sinh viên 1 Sinh viên 2 (Ký và ghi rõ họ tên) (Ký và ghi rõ họ tên) XÁC NHẬN CỦA GIÁO VIÊN HƯỚNG DẪN (Ký và ghi rõ họ tên) 8 ĐAMH2 – Hệ thống điểm danh sử dụng RFID MỤC LỤC Chương 1: 12 GIỚI THIỆU .12 1.1 TỔNG QUAN VÀ LÝ DO CHỌN ĐỀ TÀI .12 1.2 MỤC TIÊU VÀ GIỚI HẠN 13 1.2.1 Mục tiêu 13 1.2.2 Giới hạn 13 1.3 NỘI DUNG THỰC HIỆN 13 Chương 2: 14 CƠ SỞ LÍ THUYẾT 14 2.1 BỘ XỬ LÝ TRUNG TÂM PIC 16F877A 14 2.3 LCD 16X2 .18 Bảng 2-3 Bảng thông tin chân LCD .19 2.4 THIẾT BỊ QUẸT THẺ ĐIỂM DANH RFID 19 2.4.1 Giới thiệu RFID 20 2.4.2 Hệ thống RFID gồm những thành phần cơ bản sau: 20 2.4.3 Độ bảo mật và tin cậy: 21 2.5 MODULE MFRC 522 21 2.6 PL2303 – USB2COM 22 2.7 PC 23 2.8 MẠCH ỔN ÁP 23 9 ĐAMH2 – Hệ thống điểm danh sử dụng RFID 2.9 TRANSISTOR C1815 24 Chương 3: 26 TÍNH TOÁN THIẾT KẾ 26 3.1 GIỚI THIỆU 26 3.2 THIẾT KẾ SƠ ĐỒ KHỐI .26 3.3 THIẾT KẾ MẠCH 27 3.3.1 Khối điều khiển trung tâm 27 3.3.2 Khối nguồn 5V 27 3.3.3 Khối nguồn 3,3V 28 3.3.4 Khối hiển thị .29 Bảng 3.6 Cấu trúc các chân LCD 16X2 .30 3.3.5 Khối âm thanh 30 3.3.6 Khối nút nhấn 30 3.4 SƠ ĐỒ NGUYÊN LÝ TOÀN MẠCH 31 Chương 4: 33 THI CÔNG MẠCH, MÔ HÌNH VÀ VIẾT CHƯƠNG TRÌNH .33 4.1 THI CÔNG PCB .33 4.1.1 BẢNG DANH SÁCH LINH KIỆN 33 4.1.2 VẼ PCB 33 4.1.2 HÀN LINH KIỆN 35 4.2 VIẾT CHƯƠNG TRÌNH ĐIỀU KHIỂN 36 4.2.1 LƯU ĐỒ CHƯƠNG TRÌNH 36 4.2.2 GIỚI THIỆU PHẦN MỀM PIC C COMPILER 37 KẾT QUẢ THỰC HIỆN 51 10 ĐAMH2 – Hệ thống điểm danh sử dụng RFID #INCLUDE #fuses NOWDT,PUT,NOPROTECT,HS,NOPUT,NODEBUG #use delay(clock=40mhz) //Khai bao chan LCD #define LCD_RS_PIN PIN_B6 #define LCD_RW_PIN PIN_B5 #define LCD_ENABLE_PIN PIN_B4 #define LCD_DATA4 PIN_B3 #define LCD_DATA5 PIN_B2 #define LCD_DATA6 PIN_B1 #define LCD_DATA7 PIN_D7 #include //Khai bao chan MFRC522 #define MFRC522_CS PIN_D1 #define MFRC522_SCK PIN_D3 #define MFRC522_SI PIN_C4 #define MFRC522_SO PIN_C5 #define MFRC522_RST PIN_D0 #include #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7,PARITY=N,BITS=8,STOP=1, ERRORS)//thiet lap thong so ngat #include #include #include //Khai bao chuong trinh con VOID _Init_Uart(void); //ham khoi tao ngat uart VOID _Init_lcd(void); VOID buzzer(unsigned int8 im, unsigned int8 phat); VOID hienthiNP(void); VOID hienthiGK(void); VOID hienthiROI(void); //Khai bao bien INT1 quetthe(char DATA[], char UID[]); CHAR DATA_KINH[5] ={0x79, 0x6C, 0x10, 0x2B, 0x2E}; CHAR DATA_PHA[5] ={0x19, 0x9b, 0xb2, 0x55, 0x65}; // du lieu quet the INT t_1, t_2; CHAR a, c, data[20], UID[6]; UNSIGNED int8 index = 0; INT1 flag_data = 0, THE = 0; INT1 t1 = 0, t2 = 0; INT8 i, x; #INT_RDA VOID _Interrupt_RDA(void) { c = getchar(); //gan tam gia tri nhan duoc vao bien c IF(c != '.') { data[index++] = c; //nap du lieu nhan duoc vao cac phan tu mang IF(index >= 19) { index = 0; } } flag_data = 0; ELSE { flag_data = 1; 43 ĐAMH2 – Hệ thống điểm danh sử dụng RFID index = 0; } } //Chuong trinh chinh VOID main() { CHAR UID[6]; UNSIGNED int TagType; lcd_init();{ printf(lcd_putc, "\f"); lcd_gotoxy(5, 1); printf(lcd_putc, "HE THONG"); lcd_gotoxy(4, 2); printf(lcd_putc, "DIEM DANH"); delay_ms(500);} MFRC522_Init(); _Init_Uart(); WHILE(TRUE) { IF(MFRC522_isCard(&TagType)) { IF(MFRC522_ReadCardSerial(&UID)) { t_1 = quetthe(DATA_KINH, UID); t_2 = quetthe(DATA_PHA, UID); IF(t_1 == 1) { IF(t1 == 0) { hienthiNP(); FOR(x = 0; x < 5; x++) { printf(" %x", UID[x]); } } else IF(t1 == 1) { hienthiROI(); } t1 = ~t1; delay_ms(1000); } else IF(t_2 == 1) { IF(t2 == 0) { hienthiGK(); FOR(x = 0; x < 5; x++) { printf(" %x", UID[x]); } } 44 ĐAMH2 – Hệ thống điểm danh sử dụng RFID else IF(t2 == 1) { hienthiROI(); } } t2 = ~t2; delay_ms(1000); ELSE { lcd_send_byte(0, 0x01); lcd_gotoxy(6, 1); printf(lcd_putc, "\fKHONG TIM THAY ! "); buzzer(10, 10); } } } MFRC522_Halt(); ELSE { lcd_gotoxy(1, 1); printf(lcd_putc, "\fXIN MOI QUET THE"); } } } //Cac chuong trinh con INT1 quetthe(char DATA[],char UID[]) { INT a; FOR(a = 0; a < 5; a++) { IF(UID[a] == DATA[a]) { THE = 1; } } ELSE { THE = 0; BREAK; } RETURN THE; } VOID _Init_lcd(void) { lcd_init(); lcd_putc('\f'); } 45 ĐAMH2 – Hệ thống điểm danh sử dụng RFID VOID hienthiNP(void) { { printf(lcd_putc, "\f"); lcd_gotoxy(4, 1); printf(lcd_putc, "DIEM DANH"); lcd_gotoxy(4, 2); printf(lcd_putc, "THANH CONG"); buzzer(5, 5); delay_ms(500); } {printf(lcd_putc, "\f"); lcd_gotoxy(2, 1); printf(lcd_putc, "NGUYEN NHAT PHA"); lcd_gotoxy(4, 2); printf(lcd_putc, "16141224"); } } VOID hienthiROI(void) { printf(lcd_putc, "\f"); lcd_gotoxy(5, 1); printf(lcd_putc, "BAN DA"); lcd_gotoxy(2, 2); printf(lcd_putc, "DIEM DANH ROI"); buzzer(5, 5); delay_ms(500); } VOID hienthiGK(void) { { printf(lcd_putc, "\f"); lcd_gotoxy(4, 1); printf(lcd_putc, "DIEM DANH"); lcd_gotoxy(4, 2); printf(lcd_putc, "THANH CONG"); buzzer(5, 5); delay_ms(500); } {printf(lcd_putc, "\f"); lcd_gotoxy(2, 1); printf(lcd_putc, "HA GIA KINH "); lcd_gotoxy(4, 2); printf(lcd_putc, "16141189"); } } VOID buzzer(unsigned int8 im, unsigned int8 phat) { UNSIGNED int8 i, j; FOR(i = 0; i < im; i++) { FOR(j = 0; j < phat; j++) { output_high(pin_c0); delay_ms(10); } output_low(pin_c0); delay_ms(10); } 46 ĐAMH2 – Hệ thống điểm danh sử dụng RFID } VOID _Init_Uart(void) { ENABLE_INTERRUPTS(INT_RDA); //ngat truyen nhan du lieu ENABLE_INTERRUPTS(GLOBAL); //ngat toan cuc } 4.2.4 Chương trình C# using using using using using using using using using using using using System; System.Collections.Generic; System.ComponentModel; System.Data; System.Drawing; System.Linq; System.Text; System.Threading.Tasks; System.Windows.Forms; System.IO.Ports; Microsoft.Office.Interop.Excel; System.Data.SqlClient; namespace ComPort { public partial class Form1 : Form { delegate void SetTextCallback(string text); string dataIN; public Form1() { InitializeComponent(); textBox1.Visible = false; } Int16 i = 1; string t = string.Empty; string h= string.Empty; SqlConnection con; private void Form1_Load(object sender, EventArgs e) { string[] ports = SerialPort.GetPortNames(); cBoxCOMPORT.Items.AddRange(ports); btnOpen.Enabled = true; btnClose.Enabled = false; con = new SqlConnection("Data Source=DESKTOPV1LICCN\\SQLEXPRESS;Initial Catalog=doan2;Integrated Security=True"); con.Open(); } private void Form1_FormClosing(object sender, FormClosingEventArgs e) 47 ĐAMH2 – Hệ thống điểm danh sử dụng RFID { con.Close(); } private void btnOpen_Click(object sender, EventArgs e) { try { serialPort1.PortName = cBoxCOMPORT.Text; serialPort1.BaudRate = Convert.ToInt32(CBoxBaudRate.Text); serialPort1.Open(); progressBar1.Value = 100; btnOpen.Enabled = false; btnClose.Enabled = true; lblStatusCom.ForeColor = Color.Green; lblStatusCom.Text = "CONNECTED"; } catch (Exception err) { MessageBox.Show("Vui lòng chọn cổng Com trước khi kết nối?", "", MessageBoxButtons.OK, MessageBoxIcon.Warning); btnOpen.Enabled = true; btnClose.Enabled = false; lblStatusCom.ForeColor = Color.Red; lblStatusCom.Text = "DISCONNECTED"; } } private void btnClose_Click(object sender, EventArgs e) { //if (serialPort1.IsOpen) { serialPort1.Close(); progressBar1.Value = 0; btnOpen.Enabled = true; btnClose.Enabled = false; lblStatusCom.ForeColor = Color.Red; lblStatusCom.Text = "DISCONNECTED"; } } private void serialPort1_DataReceived(object sender, SerialDataReceivedEventArgs e) { dataIN = serialPort1.ReadExisting(); if (dataIN != String.Empty) { SetText(dataIN); } } string chuoi = ""; int dem = 0; private void SetText(string text) { if (this.listView1.InvokeRequired) { SetTextCallback d = new SetTextCallback(SetText); // khởi tạo 1 delegate mới gọi đến SetText this.Invoke(d, new object[] { text }); 48 ĐAMH2 – Hệ thống điểm danh sử dụng RFID } else { chuoi = dataIN; ListViewItem item = new ListViewItem(); textBox1.Text += text; int x; for (x = 0; x < listView1.Items.Count; x++) { if (listView1.Items[x].Text == textBox1.Text) { int a = listView1.Items.Count; t = DateTime.Now.ToString("HH:mm:ss và dd/MM/yyyy"); listView1.Items[x].SubItems[4].Text = "Có"; listView1.Items[x].SubItems[5].Text = t; textBox1.Text = ""; label4.Text = dem.ToString("0"); return; } } } } private void ShowData(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { using (SaveFileDialog luu = new SaveFileDialog() { Filter = "Excel Workbook|*.xls", ValidateNames = true }) { if (luu.ShowDialog() == DialogResult.OK) { Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Workbook wb = app.Workbooks.Add(XlSheetType.xlWorksheet); Worksheet ws = (Worksheet)app.ActiveSheet; app.Visible = false; ws.Name = "DANH SÁCH SINH VIÊN"; ws.Range[ws.Cells[1, 1], ws.Cells[1, listView1.Columns.Count]].Merge(); ws.Cells[1, 1].value = "DANH SÁCH SINH VIÊN"; 49 ĐAMH2 – Hệ thống điểm danh sử dụng RFID ws.Cells[1, 1].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[1, 1].font.size = 18; ws.Cells[2, 1] = "STT"; ws.Cells[2, 1].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[2, 2] = "HỌ VÀ TÊN"; ws.Cells[2, 2].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[2, 3] = "MÃ SỐ SINH VIÊN"; ws.Cells[2, 3].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[2, 4] = "HIỆN DIỆN"; ws.Cells[2, 4].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[2, 5] = "THỜI GIAN"; ws.Cells[2, 5].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; int i = 3; foreach (ListViewItem item in listView1.Items) { ws.Cells[i, 1] = item.SubItems[1].Text; ws.Cells[i, 1].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[i, 2] = item.SubItems[2].Text; ws.Cells[i, 2].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[i, 3] = item.SubItems[3].Text; ws.Cells[i, 3].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[i, 4] = item.SubItems[4].Text; ws.Cells[i, 4].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; ws.Cells[i, 5] = item.SubItems[5].Text; ws.Cells[i, 5].HorizontalAlignment = Microsoft.Office.Interop.Excel.XlHAlign.xlHAlignCenter; i++; } wb.SaveAs(luu.FileName, XlFileFormat.xlWorkbookDefault, Type.Missing, Type.Missing, true, false, XlSaveAsAccessMode.xlNoChange, XlSaveConflictResolution.xlLocalSessionChanges, Type.Missing, Type.Missing); app.Quit(); MessageBox.Show("XUẤT DỮ LIỆU THÀNH CÔNG.", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information); } } 50 ĐAMH2 – Hệ thống điểm danh sử dụng RFID } private void button2_Click(object sender, EventArgs e) { listView1.Items.Clear(); SqlCommand cm = new SqlCommand("SELECT *FROM DANHSACH", con); try { SqlDataReader dr = cm.ExecuteReader(); while (dr.Read()) { ListViewItem item = new ListViewItem(dr["idcard"].ToString()); item.SubItems.Add(dr["stt"].ToString()); item.SubItems.Add(dr["hoten"].ToString()); item.SubItems.Add(dr["mssv"].ToString()); item.SubItems.Add(dr["hiendien"].ToString()); item.SubItems.Add(dr["thoigian"].ToString()); listView1.Items.Add(item); int a = listView1.Items.Count; label6.Text = a.ToString("0") ; } } catch (Exception ex) { } } private void lblStatusCom_Click(object sender, EventArgs e) { } private void cBoxDataBits_SelectedIndexChanged(object sender, EventArgs e) { } private void CBoxBaudRate_SelectedIndexChanged(object sender, EventArgs e) { } private void groupBox1_Enter(object sender, EventArgs e) { } private void groupBox8_Enter(object sender, EventArgs e) { } private void listView1_SelectedIndexChanged(object sender, EventArgs e) { } private void groupBox9_Enter(object sender, EventArgs e) { } 51 ĐAMH2 – Hệ thống điểm danh sử dụng RFID private void label5_Click(object sender, EventArgs e) { } private void listView1_SelectedIndexChanged_1(object sender, EventArgs e) { } } } Chương 5: KẾT QUẢ THỰC HIỆN 5.1 KẾT QUẢ THỰC HIỆN Bước 1: Hiển thị LCD Hình 5-1.Hiển thị LCD 52 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Hình 5-2 Hiển thị kết quả sau điểm danh Bước 2: Kết nối và hiển thị danh sách từ công cụ quản lý SQL Hình 5-3 Kết nối và hiển thị chương trình 53 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Bước 3: Quẹt thẻ điểm danh Hình 5-4 Điểm danh sinh viên Bước 4: Xuất file Excel và lưu trữ Hình 5-5 Xuất file danh sách sinh viên 54 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Bảng 5-1: Bảng kết quả thực nghiệm HÀNH ĐỘNG Mỗi lần quẹt 1 thẻ Mỗi lần quẹt 2 thẻ cùng lúc Quẹt 1 thẻ 2 lần liên tục Quẹt thẻ chưa khai báo HỆ THỐNG KẾT QUẢ Điểm danh thành công 10/10 Nhận kết quả thẻ quẹt lần 10/10 trước Hệ thống chỉ nhận dữ liệu lần 10/10 quẹt đầu tiên Hệ thống cảnh báo 10/10 55 ĐAMH2 – Hệ thống điểm danh sử dụng RFID Chương 6: KẾT LUẬN 6.1 KẾT LUẬN: Hoàn thành thi công xong mạch thiết bị điểm danh sử dụng RFID Board mạch module RFID giao tiếp với PIC 16F877A thực thi nhận diện mã thẻ cho phép sinh viên điểm danh thành công Thiết lập được ứng dụng điểm danh có tính bảo mật tốt thông qua dữ liệu thẻ, cho phép người dùng (Giáo viên) điểm danh sinh viên theo danh sách và biết được số lượng sinh viên hiện diện trong lớp 6.2 HƯỚNG PHÁT TRIỂN Mô hình nhóm làm ra còn khá đơn giản, nhưng vẩn đáp ứng được phần nào nhu cầu về điểm danh sinh viên Sản phẩm là tiền đề để phát triển thêm những tính năng sau: Tích hợp thêm module cảm biến để sử dụng thiết bị ở khoảng cách xa Ứng dụng vào hệ thống cửa ra vào của các dự án nhà thông minh, thư viện, phòng máy Tích hợp thêm camera, chụp ảnh nhận diện, thanh toán di động Ứng dụng quản lý sách, chống trộm, tìm kiếm trong thư viện 56 ... Nhóm sinh viên thực Hà Gia Kính Nguyễn Nhật Pha ĐAMH2 – Hệ thống điểm danh sử dụng RFID ĐỀ CƯƠNG ĐỒ ÁN MÔN HỌC I Tên đề tài THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG ĐIỂM DANH SINH VIÊN SỬ DỤNG RIFD Giáo Viên. .. BẢNG MÔ TẢ CÔNG VIỆC Họ tên sinh viên 1: Hà Gia Kính MSSV: 16141189 Họ tên sinh viên 2: Nguyễn Nhật Pha MSSV: 16141224 Tên đề tài: Thi? ??t kế thi công hệ thống điểm danh sinh viên sử dụng RFID MÔ... giản 1.3 NỘI DUNG THỰC HIỆN Tìm hiểu cách thức hoạt động hệ thống điềm danh Thi? ??t kế mạch nguồn Thi? ??t kế thi công hệ thống điểm danh: dùng Module MFRC 522, hiển thị lên LCD Viết chương trình