THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT ĐIỆN NĂNG TIÊU THỤ............................................................................................................................................................................................................................................
TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày 10 tháng năm 2019 NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: Trương Khánh Oanh MSSV: 14141224 Nguyễn Chí Khang MSSV: 14141147 Chuyên ngành: Điện Tử Công Nghiệp Mã ngành: 141 Hệ đào tạo: Đại học quy Mã hệ: Khóa: 2014 Lớp: 14141DT2 I TÊN ĐỀ TÀI: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT ĐIỆN NĂNG TIÊU THỤ II NHIỆM VỤ Các số liệu ban đầu: Tiến hành tìm kiếm tài liệu, thơng số kỹ thuật liên quan tới giá trị điện Tham khảo mô hình thực tế, từ đề tài nghiên cứu trước Tìm hiểu chọn module, ngoại vi thích hợp cho hệ thống Nội dung thực hiện: Nội dung 1: Nghiên cứu mơ hình thực tế, tìm giải pháp phù hợp với yêu cầy đặt tính tốn thơng số cho hệ thống giám sát điện Nội dung 2: Nghiên cứu phương pháp điều khiển, giám sát, bảo vệ điện, tính tốn, chọn lựa linh kiện phù hợp với yêu cầu đặt Nội dung 3: Thiết kế sơ đồ hệ thống, sơ đồ nguyên lý, thiết kế mơ hình Nội dung 4: Viết chương trình điều khiển hệ thống để đạt yêu cầu đặt Nội dung 5: Lắp ráp mơ hình, chạy thử nghiệm sản phẩm Nội dung 6: Viết báo cáo nội dung thực III NGÀY GIAO NHIỆM VỤ: 26/08/2019 IV NGÀY HOÀN THÀNH NHIỆM VỤ: 20/12/2019 V HỌ VÀ TÊN CÁN BỘ HƯỚNG DẪN: CÁN BỘ HƯỚNG DẪN ThS Nguyễn Đình Phú BM ĐIỆN TỬ CƠNG NGHIỆP – Y SINH TRƯỜNG ĐH SPKT TP HỒ CHÍ MINH KHOA ĐIỆN-ĐIỆN TỬ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP – Y SINH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM ĐỘC LẬP - TỰ DO - HẠNH PHÚC o0o Tp HCM, ngày 10 tháng năm 2019 LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên 1: Trương Khánh Oanh Lớp: 14141DT2C MSSV: 14141224 Họ tên sinh viên 2: Nguyễn Chí Khang Lớp: 14141DT2B MSSV: 14141147 Tên đề tài: THIẾT KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT ĐIỆN NĂNG TIÊU THỤ Nội dung Tuần/ngày - thực chọn đề tài, thống tên (2/9 – 8/9) (9/9 – 15/9) Gặp GVHD để phổ biến quy định: đề tài, thời gian làm việc - Tìm hiểu đề tài - Duyệt đề tài - Viết đề cương chi tiết - Tìm hiểu kiến thức liên quan tới thực đề tài - Tìm hiểu hệ thống giám sát điện thực tế (16/9 – 22/9) - Tìm hiểu nguyên lý hoạt động module đo điện - Tìm hiểu cách lập trình ứng dụng điện thoại, máy tính, cách thiết kế web server - Thiết kế sơ đồ khối cho sản phầm, giải thích vai trò chức (23/9 – 29/9) khối - Tính tốn, lựa chọn linh kiện cho khối Xác nhận GVHD (30/9 – 6/10) Thiết kế sơ đồ nguyên lý, cách bố trí linh kiện giải thích hoạt động mạch - Thiết kế, bố trí STM32F407, module PZEM004T, hình LCD, module (7/10 – 13/10) wifi ESP8266 ESP-01S - Thi công mạch, xây dụng mơ hình sản phẩm - Viết báo cáo - Thi cơng mạch, xây dụng mơ hình sản phẩm (14/10 – 20/10) - Viết chương trình điều khiển - Lập trình thiết kế web server - Viết chỉnh sửa báo cáo - Thi công mạch, xây dụng mơ hình sản phẩm (21/10 – 27/10) - Viết chương trình diều khiển - Viết chương trình, thiết kế web server - Viết chỉnh sửa báo cáo - Thi cơng mạch, xây dụng mơ hình sản phẩm (28/10 – 3/11) - Viết chương trình điều khiển - Viết chương trình, thiết kế web server 10 (4/11 – 10/11) 11 (11/11 – 17/11) - Viết chỉnh sửa báo cáo - Lắp ghép mơ hình - Tiến hành chạy thử nghiệm, sửa lỗi chương trình điều khiển - Viết chỉnh sửa báo cáo - Hoàn thiện, kiểm tra theo dõi hoạt động mơ hình sản phẩm 12 (18/11 – 24/11) 13 (25/11 – 1/12) 14 (2/12 – 8/12) - Sửa lỗi chương trình điều khiển - Viết chỉnh sửa báo cáo - Hoàn thiện, kiểm tra theo dõi hoạt động mơ hình sản phẩm - Viết chỉnh sửa báo cáo - Hoàn thiện sản phẩm - Viết chỉnh sửa báo cáo - Chỉnh sửa báo cáo lần cuối trước gửi cho GVHD 15 (9/12 – 15/12) 16 (16/12 – 22/12) Hồn thiện báo cáo, gửi GVHD xem xét, góp ý - In báo cáo - Nộp báo cáo hoàn thiện GV HƯỚNG DẪN (Ký ghi rõ họ tên) LỜI CAM ĐOAN Đề tài cơng trình thân nhóm tự thực dựa vào số tài liệu trước hướng dẫn ThS.Nguyễn Đình Phú Các số liệu đề tài nhóm thu thập khơng chép từ tài liệu hay cơng trình khác Người thực đề tài: Trương Khánh Oanh Nguyễn Chí Khang LỜI CẢM ƠN Sau thời gian thực hiện, nhóm may mắn hoàn thành đề tài “THIẾT KẾ VÀ THI CÔNG H Ệ THỐNG GIÁM SÁT ĐIỆN NĂNG TIÊU THỤ”, để đạt thành trê n ngồi cố gắng thành viên nhóm cịn có giúp đỡ gia đình, b ạn bè, thầy khoa Điện – Điện Tử Nhóm thực xin chân thành gửi lời cảm ơn đến: Thầy Nguyễn Đình Phú n gười trực tiếp hướng dẫn nhóm suốt q trình thực Cảm ơn Thầy giàn h thời gian quý báu để hướng dẫn nhóm, hỗ trợ thiết bị góp ý đưa hướng giả i nhóm gặp khó khăn Bên c ạnh đó, nhóm cảm ơn kiến thức mà thầy cô truyền đạt suốt năm học trường Đại Học Sư Phạm Kỹ Thuật TP.HCM để từ nhóm có sở để vận dụng hoàn thiện nên đồ án tốt ngh iệp Cảm ơn gia đình, người thân ln độn g viên bên cạnh lúc khó khăn Xin gửi lời c ảm ơn đến người bạn sinh viên khoa Điện-Điện tử đồng hành trình học tập, cố gắng, tạo động lực để nhóm để hoàn thành tốt đề tài Xin trân trọng cảm n! Những người thực hiện: Trương Khánh Oanh Nguyễn Chí Khang MỤC LỤC NHIỆM VỤ ĐỒ ÁN TỐT NGH IỆP i LỊCH TRÌNH THỰC HIỆN ĐỒ ÁN TỐT NGHIỆP ii LỜI CAM ĐOAN .v LỜI CẢM ƠN vi MỤC LỤC vii LIỆT KÊ HÌNH VẼ x LIỆT KÊ BẢNG xiii TÓM TẮT xiv CHƯƠNG TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ 1.2 MỤC TIÊU 1.3 NỘI DUNG NGHIÊN CỨU 1.4 GIỚI HAṆ 1.5 BỐ CUC̣ CHƯƠNG CƠ SỞ LÝ THUYẾT .4 2.1 MODULE PZEM004T v3.0 .4 2.1.1 Giới Thiệu 2.1.2 Cấu Trúc Các Lệnh 2.1.3 Sơ Đồ Khối Chức Năng Và Kết Nối Dây 2.2 KIT STM 32F407VE 2.2.1 Giới Thiệu 2.2.2 Hardware and Layout 10 2.3 LCD 2004 12 2.4 NODEMCU ESP8266 .13 2.4.1 Giới Thiệu .13 2.4.2 ESP8266-12 .14 2.4.4 Sơ Đồ Mạch Nguyên Lý Của NodeMCU ESP8266 .16 2.5 CÁC LINH KIỆN KHÁC .17 2.5.1 Module Channel Logic Level Converter 3.3-5V .17 2.5.2 Relay .18 2.6 CHUẨN GIAO TIẾP UART 19 2.6.1 Giới Thiệu Uart .19 2.6.2 Các Thông Số Uart 21 2.7 GIAO THỨC Modbus RTU 22 2.7.1 Giới Thiệu Modbus RTU .22 2.7.2 Cấu trúc tin Modbus RTU .22 2.8 TRUYỀN DỮ LIỆU SONG SONG .23 2.9 GIAO THỨC KẾT NỐI .24 2.10 GIAO THỨC TRUYỂN TẢI DỮ LIỆU .25 2.9 CƠ SỞ LÝ THUYẾT VỀ ĐIỆN BA PHA 26 2.9.1 Điện ba pha gì? 26 2.9.2 Những ưu điểm sử dụng điện pha .26 2.9.3 Lý thuyết mạch điện xoay chiều pha 27 2.9.4 Hiện tượng pha 31 CHƯƠNG 3: TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 34 3.1 GIỚI THIỆU 34 3.2 TÍNH TỐN VÀ THIẾT KẾ HỆ THỐNG 34 3.2.1 Sơ đồ kết nối toàn mạch 34 3.2.2 Thiết kế sơ đồ khối hệ thống 35 CHƯƠNG 4: THI CÔNG HỆ THỐNG 42 4.1 GIỚI THIỆU 42 4.2 THI CÔNG HỆ THỐNG .42 4.2.1 Thi công bo mạch 42 4.2.1.1 Danh sách linh kiện 42 4.2.1.2 Sơ đồ bố trí các linh kiện .43 4.2.1.3 Sơ đồ thi công mạch in PCB 43 4.2.2 Lắp ráp kiểm tra 44 4.3 ĐÓNG GÓI VÀ THI CƠNG MƠ HÌNH 44 4.3.1 Đóng gói điều khiển 44 4.3.2 Thi công mô hình 46 4.4 LẬP TRÌNH HỆ THỐNG .49 4.4.1 Lưu đồ giải thuật 49 4.4.2 Phần mềm lập trình cho vi điều khiển 52 4.4.3 Code chương trình cho lưu đồ giải thuật 66 4.5 VIẾT TÀI LIỆU HƯỚNG DẪN VÀ THAO TÁC 70 CHƯƠNG 5: KẾT QUẢ, NHẬN XÉT, ĐÁNH GIÁ 72 5.1 KẾT QUẢ 72 5.2 KẾT QUẢ MƠ HÌNH HỆ THỐNG .72 5.3 KẾT QUẢ WEB .74 CHƯƠNG 6: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN .77 6.1 KẾT LUẬN .77 6.2 HƯỚNG PHÁT TRIỂN 77 TÀI LIỆU THAM KHẢO 79 PHỤ LỤC 80 LIỆT KÊ HÌNH VẼ Hình………………………………………………………………………… Trang Hình 2.1: Module đo điện PZEM004T v3.0 Hình 2.2: Sơ đồ khối chức PZEM004T V3.0 Hình 2.3: Sơ đồ kết nối dây thực tế PZEM004T với máy tính Hình 2.4: Hình ảnh thực tế STM32F407VET6 Hình 2.5: Sơ đồ khối STM32F4DISCOVERY 10 Hình 2.6: Cấu tạo kích thước .11 Hình 2.7: Sơ đồ nguyên lý 12 Hình 2.8: LCD 2004 13 Hình 2.9: ESP8266 sơ đồ chân .14 Hình 2.10: Module NODEMCU ESP8266 v12 15 Hình 2.11: Sơ đồ nguyên lý NodeMCU ESP8266 v12 16 Hình 2.12: Module Channel Logic Level Converter 3.3-5V 17 Hình 2.13: Relay 5V DC 18 Hình 2.14: Kết nối UART hai vi điều khiển .20 Hình 2.15: Khung truyền liệu chuẩn giao tiếp UART 21 Hình 2.16: Cấu trúc tin Modbus RT 22 Hình 2.17: Cơ chế truyền liệu song song .24 Hình 2.18: Giao thức truyền MQTT 25 Hình 2.19: Sơ đồ cấu tạo máy phát điện xoay chiều pha .28 Hình 2.20: Đồ thị biểu diễn pha dòng điện xoay chiều pha 28 Hình 2.21: Mạch pha gồm mạch điện pha riêng lẻ 29 Hình 2.22: Sơ đồ mạch điện hình .29 Hình 2.23: Sơ đồ mạch điện hình tam giác .30 Hình 3.1: Sơ đồ kết nối toàn hệ thống 34 Hình 3.2: Sơ đồ khối chức 36 Hình 3.3: Sơ đồ nguyên lý kết nối nút nhấn với STM32F407 38 Hình 3.4: Sơ đồ nguyên lý kết nối LCD với STM32F407 38 Hình 3.5: Sơ đồ nguyên lý kết nối PZEM004T với STM32F407 39 Hình 3.6: Sơ đồ nguyên lý kết nối STM32F407 .39 Hình 3.7: Sơ đồ nguyên lý toàn mạch 41 PHỤ LỤC if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_9)==1){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_9)==1){ mode2++; if (mode2 >= 3) mode2 = 1; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_9)==1); } } switch (mode1) { case 1: switch (mode2) { case 1: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ust++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ust ; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; case 2: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ist++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 89 PHỤ LỤC if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ist ; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; } break; case 2: switch (mode2) { case 1: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ust1++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ust1 ; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; case 2: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ist1++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 90 PHỤ LỤC if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ist1 ; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; } break; case 3: switch (mode2) { case 1: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ust2++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ust2 ; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; case 2: if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6)){ ist2++; while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_6));}} if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ HAL_Delay(10); if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8)){ ist2 ; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 91 PHỤ LỤC while (HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_8));}} break; } break; } send1[0]=100; send1[1]=irt; send1[2]=prt send1[3]=wrt; send1[4]=urt; send1[5]=irt; send1[6]=prt; send1[7]=wrt; send1[8]=urt; send1[9]=irt; send1[10]=prt; send1[11]=wrt; send1[12]=urt; HAL_UART_Transmit_IT(&huart6,send,8); HAL_UART_Transmit_IT(&huart5,send,8); HAL_UART_Transmit_IT(&huart1,send,8); HAL_UART_Transmit_IT(&huart1,send1,13); k++; } void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huarts) { if (huarts->Instance==huart6.Instance) { HAL_UART_Receive_IT(&huart6,data,23); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 92 PHỤ LỤC //chuyen gia tri u a1=data[3]4; b=data[3]>>4; c1=data[4]4; d=data[4]>>4; urt=(b*16*16*16+a*16*16+d*16+c)/10; //chuyen gia tri i a3=data[5]4; b2=data[5]>>4; c3=data[6]4; d2=data[6]>>4; irt=(b2*16*16*16+a2*16*16+d2*16+c2); //chuyen doi gia tri cong suat a5=data[9]4; b4=data[9]>>4; c5=data[10]4; d4=data[10]>>4; prt=(b4*16*16*16+a4*16*16+d4*16+c4); //chuyen doi gia tri tan so a7=data[17]4; b6=data[17]>>4; c7=data[18]4; d6=data[18]>>4; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 93 PHỤ LỤC frt=(b6*16*16*16+a6*16*16+d6*16+c6)/10; //chuyen doi gia tri cong suat tren gio a9=data[11]4; b8=data[11]>>4; c9=data[12]4; d8=data[12]>>4; wrt=(b8*16*16*16+a8*16*16+d8*16+c8); } if (huarts->Instance==huart5.Instance) { HAL_UART_Receive_IT(&huart5,data1,23); //chuyen gia tri u aa1=data1[3]4; ba=data1[3]>>4; ca1=data1[4]4; da=data1[4]>>4; urt1=(ba*16*16*16+aa*16*16+da*16+ca)/10; //chuyen gia tri i aa3=data1[5]4; ba2=data1[5]>>4; ca3=data1[6]4; da2=data1[6]>>4; irt1=(ba2*16*16*16+aa2*16*16+da2*16+ca2); //chuyen doi gia tri cong suat aa5=data1[9]4; ba4=data1[9]>>4; ca5=data1[10]4; da4=data1[10]>>4; prt1=(ba4*16*16*16+aa4*16*16+da4*16+ca4); //chuyen doi gia tri tan so aa7=data1[17]4; ba6=data1[17]>>4; ca7=data1[18]4; da6=data1[18]>>4; frt1=(ba6*16*16*16+aa6*16*16+da6*16+ca6)/10; //chuyen doi gia tri cong suat tren gio aa9=data[11]4; ba8=data[11]>>4; ca9=data[12]4; da8=data[12]>>4; wrt1=(ba8*16*16*16+aa8*16*16+da8*16+ca8); } if (huarts->Instance==huart3.Instance) { HAL_UART_Receive_IT(&huart3,data2,23); //chuyen gia tri u ab1=data2[3]4; bb=data2[3]>>4; cb1=data2[4]4; db=data2[4]>>4; urt2=(bb*16*16*16+ab*16*16+db*16+c)/10; //chuyen gia tri i ab3=data2[5]4; bb2=data2[5]>>4; cb3=data2[6]4; db2=data2[6]>>4; irt2=(bb2*16*16*16+ab2*16*16+db2*16+cb2); //chuyen doi gia tri cong suat ab5=data2[9]4; bb4=data2[9]>>4; cb5=data2[10]4; db4=data2[10]>>4; prt2=(bb4*16*16*16+ab4*16*16+db4*16+cb4); //chuyen doi gia tri tan so ab7=data2[17]4; bb6=data2[17]>>4; cb7=data2[18]4; db6=data2[18]>>4; frt2=(bb6*16*16*16+ab6*16*16+db6*16+cb6)/10; //chuyen doi gia tri cong suat tren gio ab9=data[11]4; bb8=data[11]>>4; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 96 PHỤ LỤC cb9=data[12]4; db8=data[12]>>4; wrt2=(bb8*16*16*16+ab8*16*16+db8*16+cb8); } } void SystemClock_Config(void) { RCC_OscInitTypeDef RCC_OscInitStruct; RCC_ClkInitTypeDef RCC_ClkInitStruct; HAL_RCC_PWR_CLK_ENABLE(); HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAG E_SCALE1); RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 8; RCC_OscInitStruct.PLL.PLLN = 336; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV4; RCC_OscInitStruct.PLL.PLLQ = 4; HAL_RCC_OscConfig(&RCC_OscInitStruct); RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK; RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2; RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV2; RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV2; HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 97 PHỤ LỤC HAL_SYSTICK_Config(HAL_RCC_GetHCLKFreq()/1000); HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK); /* SysTick_IRQn interrupt configuration */ HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0); } /* UART5 init function */ void MX_UART5_Init(void) { huart5.Instance = UART5; huart5.Init.BaudRate = 9600; huart5.Init.WordLength = UART_WORDLENGTH_8B; huart5.Init.StopBits = UART_STOPBITS_1; huart5.Init.Parity = UART_PARITY_NONE; huart5.Init.Mode = UART_MODE_TX_RX; huart5.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart5.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart5); } /* USART1 init function */ void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 9600; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart1); } BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 98 PHỤ LỤC /* USART3 init function */ void MX_USART3_UART_Init(void) { huart3.Instance = USART3; huart3.Init.BaudRate = 9600; huart3.Init.WordLength = UART_WORDLENGTH_8B; huart3.Init.StopBits = UART_STOPBITS_1; huart3.Init.Parity = UART_PARITY_NONE; huart3.Init.Mode = UART_MODE_TX_RX; huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart3.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart3); } /* USART6 init function */ void MX_USART6_UART_Init(void) { huart6.Instance = USART6; huart6.Init.BaudRate = 9600; huart6.Init.WordLength = UART_WORDLENGTH_8B; huart6.Init.StopBits = UART_STOPBITS_1; huart6.Init.Parity = UART_PARITY_NONE; huart6.Init.Mode = UART_MODE_TX_RX; huart6.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart6.Init.OverSampling = UART_OVERSAMPLING_16; HAL_UART_Init(&huart6); } /** Configure pins as * Analog * Input * Output * EVENT_OUT BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 99 PHỤ LỤC * EXTI */ void MX_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct; /* GPIO Ports Clock Enable */ HAL_RCC_GPIOE_CLK_ENABLE(); HAL_RCC_GPIOH_CLK_ENABLE(); HAL_RCC_GPIOC_CLK_ENABLE(); HAL_RCC_GPIOA_CLK_ENABLE(); HAL_RCC_GPIOB_CLK_ENABLE(); HAL_RCC_GPIOD_CLK_ENABLE(); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOE, GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOC, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOA, GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_6, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOB, GPIO_PIN_0|GPIO_PIN_3, GPIO_PIN_RESET); /*Configure GPIO pin Output Level */ HAL_GPIO_WritePin(GPIOD, GPIO_PIN_6, GPIO_PIN_RESET); BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 100 PHỤ LỤC /*Configure GPIO pins : PE2 PE4 PE6 PE7 */ GPIO_InitStruct.Pin = GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_6|GPIO_PIN_7; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOE, &GPIO_InitStruct); /*Configure GPIO pins : PC0 PC2 PC4 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); /*Configure GPIO pins : PA0 PA2 PA4 PA6 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_2|GPIO_PIN_4|GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); /*Configure GPIO pins : PB0 PB3 */ GPIO_InitStruct.Pin = GPIO_PIN_0|GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /*Configure GPIO pin : PD6 */ GPIO_InitStruct.Pin = GPIO_PIN_6; GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 101 PHỤ LỤC GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); /*Configure GPIO pins : PB5 PB6 PB7 PB8 PB9 */ GPIO_InitStruct.Pin = GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7|GPIO_PIN_8 |GPIO_PIN_9; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_PULLDOWN; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); /* EXTI interrupt init*/ HAL_NVIC_SetPriority(EXTI9_5_IRQn, 0, 0); HAL_NVIC_EnableIRQ(EXTI9_5_IRQn); } /* USER CODE BEGIN */ /* USER CODE END */ #ifdef USE_FULL_ASSERT /** * @brief Reports the name of the source file and the source line number * where the assert_param error has occurred * @param file: pointer to the source file name * @param line: assert_param error line source number * @retval None */ void assert_failed(uint8_t* file, uint32_t line) { BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 102 PHỤ LỤC /* USER CODE BEGIN */ /* User can add his own implementation to report the file name and line number, ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */ /* USER CODE END */ } #endif /** * @} */ /** * @} */ /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 103 ... tiền điện tháng BỘ MÔN ĐIỆN TỬ CÔNG NGHIỆP 33 CHƯƠNG TÍNH TỐN VÀ THI? ??T KẾ CHƯƠNG 3: TÍNH TỐN VÀ THI? ??T KẾ HỆ THỐNG 3.1 GIỚI THI? ??U Đề tài thi? ??t kế thi? ??t bi ̣ ? ?THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT... ngành điện Viêt Nam, nhóm em bắt tay vào nghiên cứu thưc đề tài ? ?THI? ??T KẾ VÀ THI CÔNG HỆ THỐNG GIÁM SÁT ĐIỆN NĂNG TIÊU THỤ” Trên sở tìm hiểu IoT nhằm giám sát điện thông số khác hệ thống điện. .. ngõ vào: Các thi? ??t bi ̣ điện đo điện giám sát từ xa thông qua ổ cắm gắn cố định vỏ hộp thi? ??t bị Khi cần giám sát điện thi? ??t bi ̣nào cắm thi? ??t bi đ̣ iện vào ổ cắm Đề tài ta giám sát điện cho ba thi? ??t