Đồ án chuyên ngành điện tử viễn thông về đề tài: Thiết kế mô hình mở cửa bằng mật khẩu sử dụng STM32. Báo cáo gồm những nội dung sau: Phần 1: Mở đầu; Phần 2: Lý thuyết; Phần 3: Thiết kế, mô phỏng và thực hiện phần cứng; Phần 4: Thiết kế và thực hiện phần mềm; Phần 5: Kết quả thực hiện; Phần 6: Kết luận và hướng phát triển
KHOA ĐIỆN TỬ BỘ MÔN: ĐỒ ÁN ĐIỆN TỬ CƠ BẢN BÁO CÁO NỘI DUNG ĐỒ ÁN MÔN CHUYÊN NGÀNH ĐIỆN TỬ-VIỄN THƠNG Đề tài: Thiết kế mơ hình mở cửa mật sử dụng STM32 GVHD : Ts Trần Đình Thơng Sinh viên: Trần Thị Thùy Minh Msv: 2019602327 Sinh viên: Nguyễn Minh Tân Msv: 2019602781 Sinh viên: Nguyễn Thị Thắm Msv: 2019602329 Sinh viên: Nguyễn Xuân Trường Msv: 2019602323 Lớp : 20214FE6008001 Hà Nội, Năm 2022 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Hà Nội, Ngày … Tháng … Năm… Người nhận xét Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng LỜI CẢM ƠN Chúng em xin gửi lời cảm ơn chân thành đến quý thầy cô khoa Điện tử- Trường Đại học Công nghiệp Hà Nội giảng dạy truyền đạt kiến thức chun ngành để chúng em hồn thành đồ án chuyên ngành cách tốt thời gian vừa qua Đặc biệt em xin gửi lời cảm ơn sâu sắc đến TS Trần Đình Thơng, người tận tình hướng dẫn, giúp đỡ tạo điều kiện thuận lợi để chúng em thực hoàn thành đề tài đồ án chuyên ngành thời hạn Mặc dù trình thực có nhiều cố gắng nỗ lực, xong kiến thức khả chúng em cịn nhiều hạn chế nên q trình làm đồ án khơng thể tránh khỏi điều thiếu sót Chúng em mong nhận góp ý, dẫn quý thầy cô bạn sinh viên Hà Nội, ngày 07 tháng 09 năm 2021 Nhóm sinh viên Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng TĨM TẮT ĐỀ TÀI Là sinh viên ngành điện tử viễn thơng, để nâng cao tính thực hành khả vận dụng kiến thức học vào thực tế việc tìm tịi, tự nghiên cứu thiết kế điều tất yếu với sinh viên Để giúp cho việc tự tìm hiểu, nghiên cứu nâng cao kiến thức chuyên ngành, môn đồ án chuyên ngành điện tử viễn thông giúp chúng em nâng cao nhiều kiến thức kĩ Với vốn kiến thức học từ môn chuyên ngành hướng dẫn tận tình thầy TS Trần Đình Thơng, cộng thêm tìm hiểu kiến thức qua mạng, chúng em xin đưa đề tài: “Thiết kế mơ hình mở cửa mật sử dụng STM32” Đồ án trình bày về: Thiết kế mơ hình mở cửa mật sử dụng STM32 gồm nội dung sau: Phần 1: Mở đầu Phần 2: Lý thuyết Phần 3: Thiết kế, mô thực phần cứng Phần 4: Thiết kế thực phần mềm Phần 5: Kết thực Phần 6: Kết luận hướng phát triển Phần 7: Tài liệu tham khảo Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng MỤC LỤC NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN LỜI CẢM ƠN TÓM TẮT ĐỀ TÀI MỤC LỤC DANH MỤC CÁC HÌNH ẢNH DANH MỤC CÁC BẢNG SỐ LIỆU PHẦN MỞ ĐẦU 1.1 Tổng quan 1.2 Tình hình nghiên cứu nước 1.3 Nhiệm vụ đề tài 1.4 Phân chia công việc nhóm PHẦN LÝ THUYẾT 10 2.1 STM32F103C8 10 2.2 Keypad 4x4 12 2.3 LCD 1602 15 2.4 Step motor 28BYJ-48 17 2.5 IC L293D 18 PHẦN THIẾT KẾ, MÔ PHỎNG VÀ THỰC HIỆN PHẦN CỨNG 23 3.1 Yêu cầu thiết kế 23 3.2 Thiết kế sơ đồ khối 24 3.3 Sơ đồ mạch mô 28 PHẦN THIẾT KẾ VÀ THỰC HIỆN PHẦN MỀM 30 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng 4.1 Yêu cầu đặt cho phần mềm 30 4.2 Vẽ lưu đồ giải thuật tổng quát 31 PHẦN PHẦN KẾT QUẢ THỰC HIỆN 33 5.1 Mơ hình cửa mở mật sau hoàn thiện 33 5.2 Kết thực nghiệm 34 PHẦN KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 35 6.1 Kết luận: 35 6.2 Đạt được: 35 6.3 Khắc phục: 35 6.4 Hướng phát triển 35 PHẦN TÀI LIỆU THAM KHẢO 36 PHẦN PHỤ LỤC 37 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng DANH MỤC CÁC HÌNH ẢNH Hình 2.1: Hình ảnh thực tế STM32F103C8T6 10 Hình 2.2: Keypad 4x4 12 Hình 2.3: KeyPad 4×4 Proteus 13 Hình 2.4: Mơ hình KeyPad áp dụng thuật tốn “Qt phím” 14 Hình 2.5: LCD xanh 16 Hình 2.6: Sơ đồ chân động 28BYJ-48 17 Hình 2.7: Sơ đồ dây nối động 28BYJ-48 18 Hình 2.8: Hình ảnh thực tế IC L293D 19 Hình 2.9: Sơ đồ chân IC L293D 20 Hình 3.1: Sơ đồ khối 24 Hình 3.2: Nguồn pin 4.5V 25 Hình 3.3: Nguồn pin 3V 25 Hình 3.4: Khối đầu vào(key pad 4x4) mơ proteus 26 Hình 3.5: Khối điều khiển mô proteus 26 Hình 3.6: Màn hình hiển thị LCD mơ proteus 27 Hình 3.7: Động mô proteus 27 Hình 3.8: Mạch mơ phần mềm proteus 28 Hình 3.9: Mạch nguyên lý phần mềm Altium 28 Hình 3.10: Mạch in phần mềm Altium 29 Hình 4.1: Lưu đồ thuật tốn 31 Hình 5.1: Hình ảnh mơ hình mặt ngồi 33 Hình 5.2: Hình ảnh mơ hình mặt 33 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thông DANH MỤC CÁC BẢNG SỐ LIỆU Bảng 3.1: Bảng so sánh phương pháp 24 Bảng 5.2: Kết sau chạy thử nghiệm nhiều lần 34 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng PHẦN MỞ ĐẦU 1.1 Tổng quan Ngày nay, với phát triển mạnh mẽ công nghệ 4.0, theo phát triển ngành điện tử tin học, hệ thống thơng minh an tồn đời giúp đỡ người nhiều công việc bảo mật Điển hình thiết lập hệ thống bảo vệ cửa nhà trước xâm nhập kẻ lạ vấn đề trộm cắp Hệ thống bảo vệ ổ khóa thơng minh người dùng cài đặt mật dãy số, hay hệ thống tạo nên dựa sở công nghệ sinh trắc học nhận diện khuôn mặt hay cảm biến vân tay… Như nêu trên, nơi nhà máy xí nghiệp, quan, nhà cửa hay nơi có bảo mật hàng đầu hệ thống lối vào phát xâm nhập kẻ lạ, khả nghi giả mạo… vô cần thiết Trong đề tài này, chúng em thiết kế mơ hình đóng mở cửa mật sử dụng STM32 1.2 Tình hình nghiên cứu nước Dưới phát triển vượt trội cơng nghệ thời điểm giới sử dụng mật sử dụng cách rộng rãi Nhưng Việt Nam nhiều hạn chế sử dụng cơng cụ số lý chi phí lắp đặt cao người dân thường sử dụng khóa cửa chìa khóa truyền thống 1.3 Nhiệm vụ đề tài - Tìm hiểu, xây dựng mơ hình mở cửa mật - Nghiên cứu, tìm hiểu ứng dụng vi điều khiển STM32 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng - Góp phần phát triển cơng nghệ khóa cửa thơng minh 1.4 Phân chia cơng việc nhóm STT Nội dung thực Người thực Tìm hiểu lý thuyết Nhóm Thiết kế sơ đồ khối Nguyễn Thị Thắm Mô mạch Trần Thị Thùy Minh Thiết kế mạch nguyên lý Nguyễn Minh Tân Lập trình code Nguyễn Xuân Trường Vẽ mạch in Nhóm Mua linh kiện Làm mạch in Nhóm Thiết kế thi cơng mơ hình Nguyễn Thị Thắm Hồn thiện thử nghiệm sản phẩm Trần Thị Thùy Minh Hoàn thiện báo cáo đồ án slide thuyết trình Nhóm 35 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thông PHẦN KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 6.1 Kết luận: Sau khoảng thời gian nghiên cứu tìm hiểu, nhóm thực đề tài hồn thành báo cáo thi cơng mơ hình theo u cầu đặt ban đầu Trong trình thực hiện, nhóm đạt kết định: 6.2 Đạt được: - Thiết kế thành cơng mơ hình mở cửa mật - Có kiến thức vững vi điều khiển STM32, cách thức hoạt động keypad, LCD, step motor… 6.3 Khắc phục: - Vì đề tài nghiên cứu nên hoạt động linh kiện chưa phải tốt - Thời gian delay mở cửa lớn, cần khắc phục 6.4 Hướng phát triển - Phát triển đề tài lên nhiều cấp độ hướng khác để có tính tối ưu thực tế - Phát triển theo hướng tích hợp mở cửa mật dấu vân tay hay thẻ từ - Thêm chức thay đổi mật cảnh báo nhập sai mật nhiều lần để tăng tính bảo mật 36 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng PHẦN TÀI LIỆU THAM KHẢO Website tham khảo [1] https://nshopvn.com/product/mach-stm32f103c8t6/ [2] https://univtechnews.wordpress.com/2017/03/26/giao-tiep-voikeypad-4x4/ [3] https://components101.com/motors/28byj-48-stepper-motor [4] https://dientutuonglai.com/tim-hieu-l293d.html [5] https://blog.mecsu.vn/gioi-thieu-ic-dieu-khien-dong-co-l293d/ Giáo trình tham khảo [6] Nguyễn Ngọc Anh, Phạm Thị Thanh Huyền, Nguyễn Thị Minh Tâm, "Linh kiện điện tử," NXB Đại học Sư Phạm 37 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng PHẦN PHỤ LỤC Code: #include "main.h" void SystemClock_Config(void); static void MX_GPIO_Init(void); void LCD_init(void); void LCD(uint8_t val_1,uint8_t cmd); void LCD_str(unsigned char * str1); unsigned char key_press(void); unsigned char check_clm(unsigned char pin_var); void Disp_pass_key(unsigned char key_var); void stepper_forward(unsigned int steps); void stepper_reverse(unsigned int steps); int main(void) { unsigned char var1; unsigned char arr[]=" welcom"; HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); LCD_init(); LCD_str(&arr[0]); LCD(0x80,0); HAL_Delay(1000); LCD_str("enter password"); LCD(0xc0,0); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0 GPIO_PIN_2| GPIO_PIN_4,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5 GPIO_PIN_7| GPIO_PIN_8,GPIO_PIN_RESET); | GPIO_PIN_1 | | GPIO_PIN_6 | 38 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thơng while (1) { HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET); HAL_Delay(200); var1=key_press(); Disp_pass_key(var1); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET); HAL_Delay(200); } /* USER CODE END */ } void LCD_init(void) { LCD(0X38,0); LCD(0X0E,0); LCD(0X06,0); LCD(0X01,0); LCD(0X80,0); } void LCD(uint8_t val_1, uint8_t cmd) { uint8_t data1; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_11,cmd); data1 = val_1 & 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_0,data1); data1 = (val_1>>1)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,data1); data1 = (val_1>>2)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_4,data1); 39 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng data1 = (val_1>>3)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_6,data1); data1 = (val_1>>4)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_7,data1); data1 = (val_1>>5)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_8,data1); data1 = (val_1>>6)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_9,data1); data1 = (val_1>>7)& 0x01; HAL_GPIO_WritePin(GPIOA,GPIO_PIN_10,data1); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_SET); HAL_Delay(1); HAL_GPIO_WritePin(GPIOA,GPIO_PIN_12,GPIO_PIN_RESET); } void LCD_str(unsigned char *str1) { while(*str1 !=0) { LCD(*str1,1); str1++; } } unsigned char key_press(void) { unsigned char clm_var; unsigned char key_arr[] ={7,8,9,15,4,5,6,14,1,2,3,13,10,0,11,12}; 40 Đồ án chuyên ngành ĐT-VT GVHD: TS Trần Đình Thông //HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7| GPIO_PIN_8,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0)==0) { clm_var =check_clm(GPIO_PIN_0); return key_arr[clm_var-1]; } else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_1)==0) { clm_var =check_clm(GPIO_PIN_1); return key_arr[clm_var+3]; } else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_2)==0) { clm_var =check_clm(GPIO_PIN_2); return key_arr[clm_var+7]; } else if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_4)==0) { clm_var =check_clm(GPIO_PIN_4); return key_arr[clm_var+11]; } else return 16; } unsigned char check_clm(unsigned char pin_var) { unsigned char clm; HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7| GPIO_PIN_8,GPIO_PIN_SET); 41 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOB,pin_var)==0) clm=1; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_5,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOB,pin_var)==0) clm=2; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_6,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOB,pin_var)==0) clm=3; HAL_GPIO_WritePin(GPIOB, GPIO_PIN_7,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOB, GPIO_PIN_8,GPIO_PIN_RESET); if(HAL_GPIO_ReadPin(GPIOB,pin_var)==0) clm=4; HAL_GPIO_WritePin(GPIOB,GPIO_PIN_5 | GPIO_PIN_6 | GPIO_PIN_7| GPIO_PIN_8,GPIO_PIN_RESET); return clm; } void Disp_pass_key(unsigned char key_var) { static unsigned char pass_var1=0; static unsigned char key_arr[5]; unsigned char enter_key[5] ={"12345"}; unsigned char i; 42 Đồ án chun ngành ĐT-VT GVHD: TS Trần Đình Thơng if(key_var !=16) { key_arr[pass_var1]=key_var +48; LCD(key_var+48,1); pass_var1++; if(pass_var1==5) { LCD(0XC0,0); for(i=0;i