Trong thời đại công nghệ số phát triển mạnh mẽ như hiện nay, vấn đề về kiểm tra thông tin sản phẩm, thanh toán chi tiêu, truy cập web nhanh hay là khai báo y tế,... phải cần một phương thức nhanh chóng và tiện lợi nhưng phải đảm bảo tính an toàn cao. Do đó mã QR code được hình thành để đáp ứng tốt nhất những nhu cầu trên nên Qr code có mặt ở khắp nơi như ở siêu thị, các cửa hàng, trong y tế hay trong xí nghiệp. Trong một số ngành công nghiệp đòi hỏi việc phân loại sản phẩm phải nhanh và độ chính xác cao, tiết kiệm chi phí cải tiến tự động hóa toàn bộ dây truyền.Để giải quyết vấn đề trên mà đề tài “THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI THEO MÃ QR” nhằm đáp ứng những yêu cầu về tự động hóa, giải quyết các khó khăn trong việc phân loại sản phẩm của công nghiệp.
BỘ GIAO THÔNG VẬN TẢI - BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI SẢN PHẨM THEO MÃ QR HẢI PHÒNG - 2022 BỘ GIAO THÔNG VẬN TẢI - BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HÀNG HẢI VIỆT NAM ĐỒ ÁN TỐT NGHIỆP THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI SẢN PHẨM THEO MÃ QR NGÀNH: KỸ THUẬT ĐIỀU KHIỂN VÀ TỰ ĐỘNG HÓA MÃ SỐ: 7520216 – D105 CHUYÊN NGÀNH: ĐIỆN TỰ ĐỘNG CÔNG NGHIỆP Giảng viên hướng dẫn đồ án: HẢI PHÒNG – 2022 LỜI CẢM ƠN Để hồn thiện đồ án tốt nghiệp “THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI THEO MÃ QR" cách tốt nhất, nhóm em xin chân thành gửi lời cảm ơn đến cô … thầy cô giảng viên khoa Điện – Điện tử trường Đại học Hàng Hải Việt Nam Các thầy cô đưa đóng góp hướng dẫn tận tình chi tiết để nhóm em hoàn thành đồ án tốt nghiệp cách chỉnh chu đầy đủ Do chưa có nhiều kinh nghiệm kiến thức chuyên sâu nên trình hoàn thiện đồ án tốt nghiệp chắn tránh khỏi số lỗi thiếu sót Nhóm em mong nhận đánh giá, nhận xét góp ý từ phía để đồ án tốt hoàn thiện cách tốt Nhóm em xin chân thành cảm ơn ! Hải Phịng, ngày….tháng… năm 2022 Nhóm sinh viên thực LỜI CAM ĐOAN Nhóm em xin cam đoan q trình thực đề tài đồ án: “THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI THEO MÃ QR” hoàn toàn nhóm em tự nghiên cứu tự hồn thiện Trong lúc nghiên cứu, nhóm em có tham khảo số tài liệu thông số, định nghĩa, … tài liệu trích dẫn mục “ TÀI LIỆU THAM KHẢO” Thời gian làm đồ án tốt nghiệp hoàn thiện theo thời gian quy định Hải phòng, ngày … tháng … năm 2022 Nhóm sinh viên thực MỤC LỤC MỞ ĐẦU DANH MỤC CÁC BẢNG .3 DANH `MỤC CÁC HÌNH .4 CHƯƠNG 1: KHÁI QUÁT VỀ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI SẢN PHẨM THEO MÃ QR 1.1 Tổng quan mã QR 1.1.1 Khái niệm mã QR 1.1.2 Cấu tạo mã QR 1.1.3 Ưu, nhược điểm mã QR [1] 1.1.4 Ứng dụng mã QR .10 1.2 Tổng quan xử lý ảnh 11 1.2.1 Khái niệm xử lý ảnh .11 1.2.2 Các trình xử lý ảnh [6] .11 1.2.3 Ứng dụng xử lý ảnh 13 1.3 Tổng quan hệ thống đọc phân loại sản phẩm theo mã QR 13 1.3.1 Giới thiệu hệ thống phân loại sản phẩm .13 1.3.2 Hệ thống phân loại sản phẩm theo mã QR .15 1.4 Xây dựng sơ đồ khối hệ thống 17 CHƯƠNG 2: XÂY DỰNG PHẦN CỨNG HỆ THỐNG ĐỌC MÃ QR VÀ PHÂN LOẠI 19 2.1 Giới thiệu phần cứng .19 2.1.1 Kit Raspberry Pi Model B+ 19 2.1.2 Kit Arduino Uno R3 21 2.1.3 NoIR Camera Module V2 24 2.1.4 Động Servo SG09 26 2.1.5 Màn hình hiển thị 27 2.1.6 Hệ thống băng tải 28 2.1.7 Cảm biến hồng ngoại E18-D80NK 29 2.2 Giới thiệu phần mềm .31 2.2.1 Phần mềm lập trình Arduino IDE 31 2.2.2 Ngôn ngữ Python .33 2.2.3 Phần mềm lập trình Thonny Python IDE .34 2.3 Thiết kế phần cứng hệ thống 35 2.3.1 Thiết kế hệ thống đọc mã QR 35 2.3.2 Thiết kế hệ thống phân loại 36 2.3.3 Sơ đồ kết nối toàn mạch 37 CHƯƠNG 3: THIẾT KẾ PHẦN MỀM, LIÊN KẾT HỆ THỐNG VÀ KẾT QUẢ THỰC NGHIỆM 38 3.1 Thiết kế phần mềm hệ thống 38 3.1.1 Cài đặt hệ điều hành cho Rasberry Pi .38 3.1.2 Lập trình đọc mã QR 42 3.1.3 Xây dựng giao diện giám sát hình 43 3.1.4 Lập trình phân loại sản phẩm 44 3.2 Lắp ráp hệ thống mơ hình thực tế .45 3.2.1 Liệt kê thiết bị .45 3.2.2 Lắp ráp hệ thống thực tế 47 3.3 Thực nghiệm mơ hình đánh giá 50 3.3.1 Thực nghiệm mơ hình .51 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 PHỤ LỤC 1: CHƯƠNG TRÌNH ĐỌC VÀ XỬ LÝ MÃ QR 58 PHỤ LỤC 2: CHƯƠNG TRÌNH GIAO DIỆN GIÁM SÁT 59 PHỤ LỤC 3: CHƯƠNG TRÌNH ĐIỀU KHIỂN HỆ THỐNG 68 MỞ ĐẦU Tính cấp thiết đề tài Trong thời đại công nghệ số phát triển mạnh mẽ nay, vấn đề kiểm tra thông tin sản phẩm, toán chi tiêu, truy cập web nhanh khai báo y tế, phải cần phương thức nhanh chóng tiện lợi phải đảm bảo tính an tồn cao Do mã QR code hình thành để đáp ứng tốt nhu cầu nên Qr code có mặt khắp nơi siêu thị, cửa hàng, y tế hay xí nghiệp Trong số ngành cơng nghiệp địi hỏi việc phân loại sản phẩm phải nhanh độ xác cao, tiết kiệm chi phí cải tiến tự động hóa tồn dây truyền Để giải vấn đề mà đề tài “THIẾT KẾ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI THEO MÃ QR” nhằm đáp ứng yêu cầu tự động hóa, giải khó khăn việc phân loại sản phẩm cơng nghiệp Mục đích phạm vi nghiên cứu - Mục đích nghiên cứu: Giúp hiểu rõ mã QR ứng dụng cơng nghiệp sống Bên cạnh giúp ta học hỏi nâng cao thêm kiến thức lập trình Python Arduino xử lý hình ảnh phân loại sản phẩm - Phạm vi nghiên cứu: Đồ án môn học giới hạn nghiên cứu phạm vi băng tải phân loại sản phẩm sử dụng phần mềm Raspberry Pi ứng dụng công nghệ quét mã QR code để phân loại sản phẩm theo mã QR code sản phẩm tự động hóa hồn tồn Đối tượng phương pháp nghiên cứu - Đối tượng nghiên cứu: + Mã QR code; + Phần mềm Raspberry Pi; + Công nghệ tự động hóa băng tải - Phương pháp nghiên cứu: + Tìm hiểu cấu trúc chung cho hệ thống phân loại sản phẩm mã QR code; + Sử dụng phần mềm Raspberry Pi Arduino xây dựng khâu điều khiển hệ thống đọc mã QR Ý nghĩa khoa học thực tiễn đề tài - Ý nghĩa khoa học đề tài: Nắm rõ nguyên lý làm việc hệ thống để thiết kế hệ thống phân loại sản phẩm QR code để giúp giải vấn đề phân loại sản phẩm cơng nghiệp tự động hóa, nhanh chóng đại - Ý nghĩa thực tiễn đề tài: Thiết kế hệ thống nhận dạng phân loại sản phẩm theo mã QR code có khả áp dụng vào thực tiễn DANH MỤC CÁC BẢNG Bảng 1: Các nút lệnh menu 31 Bảng 1: Thiết bị lắp đặt 44 DANH MỤC CÁC HÌNH Hình 1: Một số hình ảnh mã QR .7 Hình 2: Cấu tạo mã QR Hình 3: Số ký tự mà QR code lưu trữ Hình 4: Các thông tin lưu trữ mã QR Hình 5: Quét mã QR 10 Hình 6: Sử dụng mã QR để khai báo y tế 10 Hình 7: Kiểm kê sản phẩm mã QR 11 Hình 8: Thanh tốn sản phẩm mã QR .11 Hình 9: Các giai đoạn xử lý ảnh 12 Hình 10: Phân loại hạt tiêu theo màu sắc 15 Hình 11: Phân loại nông sản theo khối lượng 15 Hình 12: Hệ thống phân loại mã QR 16 Hình 13: Phân loại bưu kiện 17 Hình 14: Quản lý sản phẩm 17 Hình 15: Sơ đồ khối hệ thống 17 Hình 1: Raspberry Pi Model B+ .19 Hình 2: Cấu hình phần cứng Raspberry Pi Model B+ 20 Hình 3: Arduino Uno R3 22 Hình 4: Thông số chân Arduino Uno R3 23 Hình 5: : Các chân vào số (Digital) 23 Hình 6: Các chân vào tương tự (ANALOG) 24 Hình 7: NoIR Camera Module V2 .25 Hình 8: Động servo SG09 .26 Hình 9: Sơ đồ chân servo SG09 27 Hình 10: Màn hình hiển thị 28 Hình 11: Các chân kết nối nút điều khiển .28 Hình 12: Băng tải .29 Arduino_Serial.write('1'.encode()) if A == '': messagebox.showinfo("Báo lỗi", "Yêu cầu chọn chế độ") except: print("LỖI băng tải chạy") def Stop(): try: A = txt.get() if A == 'Manual': Arduino_Serial.write('2'.encode()) if A == '': messagebox.showinfo("Báo lỗi", "Yêu cầu chọn chế độ") except: print("LỖI băng tải chạy") def Gat1(): try: A = txt.get() if A == 'Manual': Arduino_Serial.write('3'.encode()) if A == 'Tự động': messagebox.showinfo("Báo lỗi", "Yêu cầu chuyển sang Manual") if A == '': messagebox.showinfo("Báo lỗi", "Yêu cầu chọn chế độ") except: print("LỖI Gạt 1") def Gat2(): try: A = txt.get() if A == 'Manual': Arduino_Serial.write('4'.encode()) if A == 'Tự động': messagebox.showinfo("Báolỗi","Yêucầu chuyển sang Manual") if A == '': messagebox.showinfo("Báo lỗi", "Yêu cầu chọn chế độ") except: print("LỖI Gạt 2") hieu = truong = 67 tai = tong = class update_frame(): def init (self): global canvas, photo, hieu, truong, tai ret, frame = video.read() barcodes = pyzbar.decode(frame) if (Arduino_Serial.in_waiting > 0): data = Arduino_Serial.readline() data = data.decode("utf") data1 = data.rstrip() print(data1) if data1 == "gat1": denbao2.config(image=denxanh) denbao3.config(image=denxam) if data1 == 'gat2': denbao3.config(image=denxanh) denbao2.config(image=denxam) if data1 == 'gat0': denbao3.config(image=denxam) denbao2.config(image=denxam) if data1 == 'chay': denbao.config(image=denxanh) denbao1.config(image=denxam) if data1 == 'dung': denbao.config(image=denxam) denbao1.config(image=dendo) if data1 == 'h': txt3.delete(0, END) hieu += txt3.insert(INSERT, hieu) tong = hieu+truong+tai txt6.delete(0, END) txt6.insert(INSERT,tong) if data1 == 'tr': 68 txt4.delete(0, END) truong += txt4.insert(INSERT, truong) tong = hieu + truong + tai txt6.delete(0, END) txt6.insert(INSERT, tong) if data1 == 't': txt5.delete(0, END) tai += txt5.insert(INSERT, tai) tong = hieu + truong + tai txt6.delete(0, END) txt6.insert(INSERT, tong) for barcode in barcodes: try: C = txt.get() D = txt1.get() if D == 'Hieu': txt2.configure(state='normal') txt2.delete(0, END) txt2.config(fg="black") txt2.insert(INSERT, "Type 1") left.configure(image=img) left.image = img if D == 'Truong': txt2.configure(state='normal') txt2.delete(0, END) txt2.config(fg="black") txt2.insert(INSERT, "Type 2") left.configure(image=img) left.image = img if D == 'Tai': txt2.configure(state='normal') txt2.delete(0, END) txt2.config(fg="black") txt2.insert(INSERT, "Type 3") left.configure(image=img) 69 left.image = img if D == 'Hieu' and C == 'Tự động' : Arduino_Serial.write('3'.encode()) if D == 'Truong' and C == 'Tự động': Arduino_Serial.write('4'.encode()) if D == 'Tai' and C == 'Tự động': Arduino_Serial.write('5'.encode()) if D == 'Tai' and C == 'Manual': Arduino_Serial.write('5'.encode()) except: print("LỖI") update_frame() window.mainloop() - Lập trình Arduino #include #include #include int value=0; int value1=0; int data=0; Servo myservo1; Servo myservo2; int servo1 = 11; int servo2 = 12; int vitri1 ; int Relay = 9; int bt = 2; int bt2 = 3; int bt3 = 4; void setup() { Serial.begin(9600); myservo1.attach(servo1); myservo1.write (30); 70 myservo2.attach(servo2); myservo2.write (11); pinMode (Relay, OUTPUT); pinMode(bt, INPUT_PULLUP); pinMode(bt2, INPUT_PULLUP); pinMode(bt3, INPUT_PULLUP); } void loop() { while (Serial.available()) {value = Serial.read(); delay (200); } // chay/dung bang tai if (value == '1') {ON_bangtai(); Serial.println("chay"); delay(400);} if (value == '2') {OFF_bangtai(); Serial.println("dung"); delay(400);} if ( digitalRead(2) == LOW and value == '3') {value = '0'; delay(100); Serial.println("h"); Hieu_Qr(); while (digitalRead(2) == LOW); Serial.println("gat1"); return_servo1(); Serial.println("gat0");} if ( digitalRead(3) == LOW and value == '4') {value = '0'; delay(100); Serial.println("tr"); truong_Qr(); 71 while (digitalRead(3) == LOW); Serial.println("gat2"); return_servo2(); Serial.println("gat0");} if ( digitalRead(4) == LOW and value == '5') {value = '0'; delay(100); Serial.println("t"); while (digitalRead(4) == LOW); }} // Bat bang tai void ON_bangtai(){ digitalWrite(Relay, HIGH);} // Tat bang tai void OFF_bangtai(){ digitalWrite(Relay, LOW);} // hieu_Qr void Hieu_Qr(){ myservo1.write (100); } //truong_Qr void truong_Qr(){ myservo2.write (70);} void return_servo1(){ myservo1.write (30);} void update_servo1(unsigned char ser1, unsigned char ser2) { myservo1.write(ser2); delay(2000);} void return_servo2(){ myservo2.write (11);} void update_servo2(unsigned char ser1, unsigned char ser2) { myservo2.write(ser2); delay(2000);} 72 NHẬN XÉT TÓM TẮT CỦA GIẢNG VIÊN HƯỚNG DẪN Tinh thần thái độ, cố gắng sinh viên q trình làm Đồ án/khóa luận tốt nghiệp: 73 Đánh giá chất lượng Đồ án/khóa luận tốt nghiệp (so với nội dung yêu cầu đề mặt: lý luận, thực tiễn, chất lượng thuyết minh vẽ): Đánh giá: Đạt Khơng đạt Hải Phịng, ngày tháng năm 20 Giảng viên hướng dẫn ThS Vũ Thị Thu 74 ĐÁNH GIÁ CỦA GIẢNG VIÊN PHẢN BIỆN Đánh giá chất lượng Đồ án/khóa luận tốt nghiệp mặt: thu thập phân tích số liệu ban đầu, sở lý thuyết, vận dụng vào điều kiện cụ thể, chất lượng thuyết minh vẽ, mơ hình (nếu có), ý nghĩa khoa học thực tiễn Đồ án/khóa luận tốt nghiệp: Chấm điểm giảng viên phản biện (Điểm ghi số chữ) Hải Phòng, ngày tháng Giảng viên phản biện 75 năm ... hệ thống đọc phân loại sản phẩm theo mã QR 13 1.3.1 Giới thiệu hệ thống phân loại sản phẩm .13 1.3.2 Hệ thống phân loại sản phẩm theo mã QR .15 1.4 Xây dựng sơ đồ khối hệ thống ... độ phân loại tay 54 Hình 27: Hệ thống báo lỗi 55 CHƯƠNG 1: KHÁI QUÁT VỀ HỆ THỐNG NHẬN DẠNG VÀ PHÂN LOẠI SẢN PHẨM THEO MÃ QR 1.1 Tổng quan mã QR 1.1.1 Khái niệm mã QR Mã QR code... để nhận diện sản phẩm, xác định sản phẩm lỗi 1.3 Tổng quan hệ thống đọc phân loại sản phẩm theo mã QR 1.3.1 Giới thiệu hệ thống phân loại sản phẩm Trong thời đại 4.0 việc áp dụng tự động hoá vào