Ứng dụng thị giác máy tính trong thiết kế chế tạo hệ thống phát hiện sâu bệnh trên lá rau cải Ứng dụng thị giác máy tính trong thiết kế chế tạo hệ thống phát hiện sâu bệnh trên lá rau cải Ứng dụng thị giác máy tính trong thiết kế chế tạo hệ thống phát hiện sâu bệnh trên lá rau cải Ứng dụng thị giác máy tính trong thiết kế chế tạo hệ thống phát hiện sâu bệnh trên lá rau cải
HỌC VIỆN NÔNG NGHIỆP VIỆT NAM KHOA CƠ ĐIỆN - ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG THỊ GIÁC MÁY TÍNH TRONG THIẾT KẾ CHẾ TẠO HỆ THỐNG PHÁT HIỆN SÂU BỆNH TRÊN LÁ RAU CẢI Giảng viên hướng dẫn : TS NGÔ TRÍ DƯƠNG Sinh viên thưc : NGUYỄN TRỌNG CHINH Msv : 597692 Lớp : K59 – TDHB LỜI CẢM ƠN Với tất tình cảm chân thành, em xin bày tỏ lòng biết ơn sâu sắc tới Ban Giám đốc, Ban Quản lý đào tạo, Khoa điện - Học viê Mn Nông nghiệp Việt Nam, thầy cô, giảng viên tham gia giảng dạy khoá học 2014-2019, tạo điều kiện thuận lợi cho em học tập nghiên cứu, làm sở việc nghiên cứu đề tài Đặc biệt, em xin chân thành cảm ơn thầy giáo TS Ngơ Trí Dương dành nhiều thời gian, công sức để dẫn, hướng dẫn em tận tình chu đáo mặt chun mơn để em thực hồn thành đồ án tốt nghiệp Em xin bày tỏ lòng biết ơn sâu sắc đến thầy cô phản biện, thầy cô hội đồng chấm đồ án đồng ý đọc duyệt góp ý kiến quý báu để em hồn chỉnh đồ án định hướng nghiên cứu tương lai Mặc dù có nhiều cố gắng, song chắn khơng tránh khỏi thiếu sót định Rất mong đóng góp ý kiến Hội đồng chấm đồ án tốt nghiệp, đọc quan tâm đến đề tài đồ án Em xin chân thành cảm ơn! Hà Nội, ngày tháng năm 20 Sinh viên thực Nguyễn Trọng Chinh MỤC LỤC LỜI CAM ĐOAN i LỜI CẢM ƠN ii MỤC LỤC iii DANH MỤC BẢNG vi DANH MỤC HÌNH vii MỞ ĐẦU 1 Đặt vấn đề Mục đích nghiên cứu Phạm vi nghiên cứu Ý nghĩa khoa học đề tài CHƯƠNG I: TỔNG QUAN TÀI LIỆU 1.1 Tổng quan thị giác máy tính 1.1.1 Khái quát thị giác máy tính 1.1.2 Nhận dạng đối tượng thị giác máy tính 1.2 Ứng dụng thị giác máy tính đời sống 1.3 Ứng dụng thị giác máy tính tự động hóa 12 1.3.1 Trong công nghiệp 12 1.3.2 Ứng dụng sản xuất nơng nghiệp 16 1.4 u cầu thiết kế mơ hình 19 CHƯƠNG II: NỘI DUNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU 21 2.1 Đối tượng nghiên cứu 21 2.1.1 Phương pháp nhận dạng đối tượng 21 2.1.2 Cây rau cải 32 2.1.3 Thiết bị chung 35 2.1.4 Cài đặt hệ điều hành cho Raspberry PI 39 2.1.5 Thư viện OpenCV 41 2.1.6 Phần mềm Visual Studio 45 2.1.7 Ngôn ngữ lập trình Python 48 2.1.8 Giới thiệu Thonny Python IDE 50 2.2 Nội dung nghiên cứu 51 2.3 Phương pháp nghiên cứu 51 CHƯƠNG III: KẾT QUẢ VÀ THẢO LUẬN 53 3.1 Sơ đồ tổng quát 53 3.1.1 Sơ đồ khối 53 3.1.2 Sơ đồ thiết kế không gian 54 3.2 Thiết kế phần cứng 54 3.2.1 Khung 54 3.2.2 Lựa chọn thiết bị 57 3.2.3 Các cấu chấp hành 65 3.2.4 Sơ đồ mạch điều khiển mạch động lực 66 3.3 Thiết kế phần mềm 67 3.3.1 Bảng phân cơng tín hiệu 67 3.3.2 Lưu đồ thuật toán 67 3.3.3 Nguyên lý hoạt động 70 3.3.4 Xây dựng chương trình 70 3.4 Giao diện Raspberry điện thoại 71 3.5 Xây dựng mẫu rút trích đặc trưng Haar-like 74 3.6 Lắp ráp chạy thử robot 78 3.6.1 Lắp ráp 78 3.6.2 Chạy thử 81 3.6.3 Một số hình ảnh chạy thực tế 83 3.7 Kết thảo luận 89 3.7.1 Kết 89 3.7.2 Thảo luận 90 3.8 Hoạch toán 91 CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ 92 4.1 Kết luận 92 4.2 Đề nghị 92 TÀI LIỆU THAM KHẢO 94 DANH MỤC BẢNG Bảng 3.1 Bảng phân cơng tín hiệu 67 Bảng 3.2 Bảng trạng thái động 67 Bảng 3.4 Kết thí nghiệm phịng thí nghiệm 89 Bảng 3.5 Kết chạy thực tế nhà lưới 90 Bảng 3.6 Bảng hoạch tốn 91 DANH MỤC HÌNH Hình 1.1 Thị giác máy tính nhận dạng đối tượng Hình 1.2 Minh họa thay đổi góc chụp Hình 1.3 Minh họa cho che khuất Hình 1.4 Sự phức tạp hình Hình 1.5 Minh họa độ sáng khác Hình 1.6 Các bước hệ thống nhận dạng đối tượng Hình 1.7 Thị giác máy tính hỗ trợ bác sĩ chẩn đốn Hình 1.8 Hệ thống Camera nhận dạng khn mặt Hình 1.9 Bộ nhận dạng mặt người smartphone 12 Hình 1.10 Chương trình ZDT 13 Hình 1.11 Ứng dụng Machine Vision xem xét lỗi chai 15 Hình 1.12 Kiểm tra 3d 16 Hình 2.1 Các đặc trưng Haar-Like 21 Hình 2.2 Bốn đặc trưng Haar-Like 21 Hình 2.3 Bốn tập đặc trưng Haar-Like 22 Hình 2.4 Khoanh vùng đối tượng 22 Hình 2.5 Biểu diễn ảnh tích hợp 24 Hình 2.6 Ví dụ ảnh tích hợp 25 Hình 2.7 Tính giá trị mức xám vùng D ảnh 25 Hình 2.8 Mơ hình phân lớp phân tầng 32 Hình 2.9 Cây cải xanh 33 Hình 2.10 Bệnh thối nhũn 34 Hình 2.11 Bệnh vàng rau cải 36 Hình 2.12 Mạch Raspberry PI 3B Zero 37 Hình 2.13 Các khối chức CPU S7-1200 40 Hình 2.14 Các kết nối PLC S7-1200 40 Hình 2.15 Sơ đồ cắm đầu kết nối để cài hệ điều hành 41 Hình 2.16 Hướng dẫn cài đặt hệ điều hành trung tâm 42 Hình 2.17 Giao diện hệ điều hành trung tâm Raspberry pi 42 Hình 2.18 Cấu trúc Open CV 44 Hình 2.19 Cài thư viện 45 Hình 2.20 Cài thư viện opencv 46 Hình 2.21 Cài thư viện OpenCV cho Raspberry PI 46 Hình 2.22 Giao diện Visual Studio 2015 47 Hình 2.23 Cài opencv visual 48 Hình 2.24 Cài opencv visual 49 Hình 2.25 Build lib OpenCV Visual Studio 50 Hình 2.26 Giao diện Thonny Python IDE 52 Hình 3.1 Sơ đồ khối hệ thống 54 Hình 3.2 Sơ đồ thiết kế khơng gian 55 Hình 3.3 Đường ray robot 56 Hình 3.4 Khung robot 57 Hình 3.5 Raspberry Pi 3B 58 Hình 3.6 Raspberry Pi Zero 59 Hình 3.7 Sơ đồ chân tín hiệu module L298N 61 Hình 3.8 Hình ảnh Raspberry pi camera V2 62 Hình 3.9 Kích thước mainboard Raspberry pi camera 63 Hình 3.10 Truyền thơng MQTT 64 Hình 3.11 Cấu tạo phần cứng 65 Hình 3.12 Động giảm tốc 66 Hình 3.13 Động bánh xe lắp ráp 67 Hình 3.14 Sơ đồ mạch điều khiển mạch động lực 67 Hình 3.15 Lưu đồ thuật tốn tốn 70 Hình 3.16 Lưu đồ thuật tốn q trình xử lí ảnh 71 Hình 3.18 Code nhận dạng đối tượng 72 Hình 3.19 Cài VNC Rasperry PI 73 Hình 3.20 Cài đặt vnc viewer điện thoại 74 Hình 3.21 Giao diện Raspberry PI điện thoại 76 Hình 3.22 Khoanh vùng đối tượng 77 Hình 3.23 Xây dựng Haar-like 78 Hình 3.24 Tạo file vecto 79 Hình 3.25 Chạy chương trình trích xuất 80 Hình 3.26 Lắp động 81 Hình 3.27 Lắp modul L298 82 Hình 3.28 Lắp Raspberry PI 3B 82 Hình 3.29 Lắp camera 83 Hình 3.30 Mơ hình hồn chỉnh 83 Hình 3.31 Cấp nguồn cho nhận tín hiệu ( PI1) 84 Hình 3.32 Cấp nguồn cho xe 84 Hình 3.33 Kết nối wifi 85 Hình 3.34 Kết nối wifi 85 Hình 3.35 Nhập địa ip Zero 86 Hình 3.36 Khởi động lại hệ thống 86 Hình 3.37 Robot vận hành thực tế nhà lưới 88 Hình 3.38 Chạy thực tế đồng với tủ điều khiển PLC 89 Hình 3.39 Kết thực tế điện thoại nhà lưới 90 Hình 3.40 Kết thực tế điện thoại nhà lưới 91 Hình 3.41 Kết nhận diện thực tế máy tính nhà lưới 92 Hình 3.42 Kết nhận diện thực tế máy tính nhà lưới 93 MỞ ĐẦU Đặt vấn đề Hiện nước ta thời kỳ công nghiệp hóa, đại hóa phát triển đất nước Sự phát triển công ty, đặc biệt nước có cơng nghiệp mạnh kỹ thuật cao Nhật Bản, Hàn Quốc,…xây dựng nhà máy, chuyển giao kỹ thuật đào tạo nguồn nhân lực cho Việt Nam Sinh viên Việt Nam học hỏi, tiếp cận với trang thiết bị đại, tìm hiểu, thực hành với mức độ cao Khơng có ngành cơng nghiệp, việc ứng dụng tự động hóa vào ngành nơng nghiệp Việt Nam có bước tiến quang trọng Nông nghiệp 4.0, phát triển diễn đồng thời với phát triển giới công nghiệp 4.0 giai đoạn ứng dụng mạnh mẽ thiết bị cảm biến kết nối internet (IoT), công nghệ đèn LED, thiết bị bay không người lái, robot nơng nghiệp quản trị tài trang trại thơng minh Cũng tương tự nhiều nước phát triển giới khu vực Đông - Nam Á, đến Việt Nam chưa có mơ hình Nơng nghiệp 4.0 hoàn chỉnh Song thực tế nay, nơng nghiệp thơng minh bắt đầu có nghiên cứu, áp dụng thực tiễn Thị giác máy tính nằm số đó, việc đưa thị giác máy tính vào khâu sản xuất nông nghiệp đem lại tự động hóa cao, thay đổi lớn phương thức sản xuất nông nghiệp so với cách truyền thống trước Đem lại suất cao hơn, chất lượng tốt hơn, tiến tới gần với Nơng nghiệp 4.0, phụ thuộc người tham gia trực tiếp vào trình sản xuất Từ tầm quan trọng việc áp dụng công nghệ cao vào sản xuất nông nghiệp, bắt kịp xu phát triển khoa học kỹ thuật mà em tiến hành nghiên cứu thực đề tài: “Ứng dụng thị giác máy tính thiết kế chế tạo hệ thống phát sâu bệnh rau cải” Mục đích nghiên cứu 10 Với mục tiêu đề tài hướng đến tìm giải pháp giúp ích thực tế lĩnh vực nghành nông nghiệp là: -Thứ nhất: Thiết kế hệ thống theo dõi, giám sát trình phát triển trồng, nhận biết nguy sâu bệnh, sâu bệnh có -Thứ hai: Robot chụp ảnh, nhận dạng sâu bệnh loại trồng có -Thứ ba: Gửi nhận tín hiệu khơng dây tủ điều khiển - Thứ tư: Điều khiển truy cập từ xa vào robot Phạm vi nghiên cứu Trong phạm vi đề tài em tìm hiểu nhận dạng đối tượng, bước đầu vào nghiên cứu toán nhận dạng sâu bệnh, đưa liệu , thông tin điều khiển tủ điều khiển xử lí trung tâm Do thời gian hạn hẹp kiến thức hạn chế nên em tập trung nhận dạng loại bệnh ruồi đục lá, thối nhũn Đề tài giúp ta có nhìn tốt xây dựng hệ thống tự động thực tế với quy mô nhỏ ( vấn đề kinh phí, cách thức lựa chọn sử dụng thiết bị cho phù hợp, lắp đặt thiết bị cho đúng, ) Để từ ta thương mại hóa, xây dựng với quy mơ lớn Ý nghĩa khoa học đề tài Đề tài: “Ứng dụng thị giác máy tính thiết kế chế tạo hệ thống phát sâu bệnh rau cải”, nhằm phụ vụ cho việc phát sâu bệnh sớm kịp thời, sản xuất nông nghiệp Để từ sở ban đầu khơng phát sâu bệnh với công nghệ nhận dạng đối tượng xây dựng tốn khác Đưa việc sản xuất, canh tác nông nghiệp Việt Nam tiến gần tới nông nghiệp 4.0 11 Hình 3.42 Kết nhận diện thực tế máy tính nhà lưới 3.7 Kết thảo luận 104 3.7.1 Kết Tiến hành làm thí nghiệm điều kiện ban ngày.Kết thực nghiệm ghi bảng sau: Bảng 3.3 Các lỗi gặp phải trình thử nghiệm ST Lỗi Nguyên nhân Cách khắc phục T Động không Dây nguồn bị Cắm lại dây nguồn chạy Chạy khơng hết lỏng Sóng wifi bị Khởi động lại router quãng đường Nhận dạng sai đối ngắt kết nối Do Haar- wifi Xây dựng thêm tượng Khơng chụp like cịn ảnh Hướng camera liệu cho Haar-like Chỉnh lại hướng chủ thể đối tượng lệch camera Bảng 3.4 Kết thí nghiệm phịng thí nghiệm STT Khoảng Số lượng Nhận cách thay mẫu có dạng đổi(cm) sâu/ thối 30cm 50cm 70cm 90cm 110cm 130cm 30 30 30 30 30 30 30 30 25 10 105 Nhận dạng nhầm(hoặc không nhận dạng được) 0 20 28 30 Độ xác % 100 100 83 33 Tiến hành lắp đặt thực nghiệm nhà lưới kết thống kê lại bảng sau Bảng 3.5 Kết chạy thực tế nhà lưới Điều kiện ánh sáng Thời điểm chạy Phát ruồi đục lá/cây thối Ruồi đục lá/cây thối thực tế Tỷ lệ chạy 15:30 3 100 Ánh sáng tốt 16:05 3 100 16:45 3 100 Ánh sáng yếu 17:15 67 17:30 33 Ánh sáng bóng đèn 18:10 3 100 18:30 3 100 18:50 67 (%) (giờ) 3.7.2 Thảo luận Mơ hình làm việc ổn định điều kiện ánh sáng khác sai số nằm ngưỡng cho phép Giao diện điều khiển chạy ổn định, liên kết đồng với chương trình phần mềm kết nối toán Robot di chuyển trơn chu, chắn Hình ảnh chụp rõ nét, nhận dạng đối tượng tốt Từ số liệu thống kê Bảng 3.5, cho thấy kết thử nghiệm điều kiện ánh sáng đầy đủ chuẩn xác, với ánh sáng đèn độ xác lên tới xấp xỉ 90% Kết với mơ hình thực tế quy mô nhỏ sở vững để phát triển đồng quy mơ lớn Và nghiên cứu tối ưu kinh phí để tiến tới thương mại hóa 3.8 Hoạch tốn 106 Bảng 3.6 Bảng hoạch toán STT Tên thiết bị Số lượng Đơn giá (VNĐ) Raspberry PI Camera V2 Raspberry PI Model B Raspberry PI ZERO 900.000 Thẻ nhớ Micro SD 16G class 10 Sandisk ultra 400.000 Vỏ hộp Raspberry PI có quạt tản nhiệt 150.000 Nguồn cấp cho Raspberry PI 600.000 Động giảm tốc gắn bánh xe 180.000 Khung xe 150.000 Đường ray 100.000 Tổng 13 1.300.000 Tổng tiền(VNĐ): 107 800.000 4.580.000 4.580.000 CHƯƠNG IV: KẾT LUẬN VÀ ĐỀ NGHỊ 4.1 Kết luận Sau thời gian nghiên cứu tìm hiểu hướng dẫn nhiệt tình TS.Ngơ Trí Dương đề tài : “ứng dụng thị giác máy tính thiết kế chế tạo hệ thống phát sâu bệnh rau cải” em hoàn thành Qua trình nghiên cứu tìm hiểu em biết thêm về: ▪ Raspberry PI máy tính nhúng hữu dụng để nghiên cứu phát triển AI, nông nghiệp 4.0 ▪ Cách chụp ảnh, xử lí ảnh, xây dựng học máy cho robot ▪ Truyền thông IoT cho nông nghiệp hay ứng dụng đời sống Đề tài em hoàn thành yêu cầu ban đầu đề ra: ▪ Chụp ảnh ▪ Nhận dạng đối tượng ▪ Đưa kết quả, đưa PLC ▪ Cơ cấu di chuyển Từ đề tài cho thấy việc áp dụng cơng nghệ vào nơng nghiệp khơng cịn q xa nữa, mà thực hiện, nghiên cứu Trong đồ án đưa phương pháp tối ưu với diện tích lớn thay nhiều nguồn nhân công hay thời gian, kịp thời canh tác, robot hoạt động ngày Ở đồ án không phát màu với dải màu định sẵn đề tài trước đây, mà thay đổi hoàn toàn với học máy, với liệu rút trích đặc trưng để nhận dạng đối tượng đa dạng hơn, đối tượng nhận dạng đặc điểm đặc trưng 4.2 Đề nghị Trong khoảng thời gian thực đề tài có số nội dung em chưa thể tối ưu thời gian kinh phí cịn hạn hẹp, bổ sung: Xây dựng rút trích đặc trưng lớn với số mẫu nhiều vài nghìn ảnh, để nhận dạng nhiều loại sâu bệnh 108 Có thể nâng cấp phận di chuyển tối ưu hơn, di chuyển linh hoạt Đối với ứng dụng nhận dạng đối tượng phát triển rộng không sâu bệnh cây, chăn ni, hay đời sống hàng ngày giám sát an ninh, nhận dạng khuôn mặt, theo dõi đối tượng 109 TÀI LIỆU THAM KHẢO [1] Pivietnam.com.vn công nghệ [2] Tài liệu học làm robot < http://mlab.vn/mo-hinh-robot> [3] Điều trị bệnh thối nhũn rau cải [4] loại bệnh thường gặp rau cải người trồng cần lưu ý [5] Paul A Viola and Michael J Jones, (2001) Rapid Object Detection using a Boosted Cascade of Simple Features IEEE Conference on Computer Vision and Pattern Recognition [6] Paul A Viola and Michael J Jones, (2004) Robust real-time face detection International Journal of Computer Vision [6] Stan Z Li and Anil K Jain (2005) Handbook of Face Recognition 110 PHỤ LỤC Chương trình cài đặt thư viên OpenCV Raspberry Cài đặt gói phụ thuộc để khởi tạo phần mềm: -Đầu tiên cần phải cập nhật, nâng cấp gói có lệnh : Sudo apt-get update Sudo apt-get upgrade -Khởi động lại hệ điều hành trung tâm alphabot Raspberry pi3 sau cập nhật phần mềm Sudo reboot -Tiếp theo cài đặt công cụ phát triển : Sudo apt-get install build-essential cmake pkg-config Sudo apt-get install libjpeg-dev libtiff5 -dev libjasper -dev libpng12-dev -Tiếp theo cần cài đặt gói video I/O cho phép ta tải định dạng video dạng tệp khác làm việc với nguồn video khác Sudo apt-get install libavcodec-dev libavfomat-dec libswscale-dev libv4ldev Sudo apt-get install libxvidcore-dev libx264-dev - Tiếp theo cần cài đặt thư viện phát triển GTK ( cơng cụ tạo giao diện đồ hoạ) , để biên soạn modul phụ Open CV ,cho phép hiển thị hình ảnh hình xây dựng giao diện GUI đơn giản Sudo apt-get install libgtk2.0-dev libgtk-3-dev -Cài đặt gói tối ưu hố (cải thiện phép toán ma trận cho OpenCV) Sudo apt-get i install libatlas-bbase-dev gfortran -Cài đặt Python Numpy Sudo apt-get install python3 python3-setuptools python3-dev-y Wget https://bootstrap.pypa.io/get-pip.py Sudo python3 get.pip.py Sudo pip3 installl numpy 111 -Tải xuống OpenCV 3.4 ta gõ lệnh cài đặt sau cd~ wget-0 opencv.zip https://github.com/opencv/opencv/archive/3.4.0.zip unzip opencv-3.4.0.zip -Để cài đặt đầy đủ OpenCV bao gồm tính SIFT (nhận dạng điểm đặc trưng) SÙ (nhận dạng đối tương ) cần phải lâ kho lưu trữ opencv_contrib Wget-0 opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/3.4.0.zip Unzip opencv_contrib-3.4.0.zip -Biên dịch cài đặt opencv 3.4.0 cho python3:ta gõ lệnh cd opencv-3.4.0 mkdir build cd build cmake -D CMAKE_BUILD_TYPE=RELEASE\ -D CMAKE_INSTALL_PREFIX=/usr/local\ -D BUILD_opencv_java=OFF\ -D BUILD_opencv_python2=OFF\ -D BUILD_opencv_python3=ON\ -D PYTHON_DDEFAULD_ EXECUTABLE=$( which python3)\ -D INSTALL_C_ EXAMPLES= OF\ -D INSTALL_PYTHON_ EXAMPLES=ON\ -D BUILD_ EXAMPLES=ON\ -D OPENCV_ EXTRA_MODULES_PATH=~/opencv_contrib3.4.0/modules\ -D WITH_CUDA= OFF\ -D BUILD_TESTS= OFF\ -D BUILD_PERF_TESTS= OFF 112 -Sau cài đặt xong ta biên dịch lại OpenCV gõ lệnh sau Make -j4 J4 viết tắt số lõi để sử dụng biên soạn OpenCV - Cài đặt OpenCV vào hệ thống: Sudo make install Sudo idconfig Code PI 1: “phathiencontrung.py” #dien dia chi IP cua Pi Zero mang WiFI Pi_zero_Broker='192.168.1.41' #thoi gian xe chay (giay) Run_time=0.5 #xe chay 0.5s from picamera import PiCamera from time import sleep import cv2 import datetime import paho.mqtt.client as mqtt import RPi.GPIO as GPIO GPIO.setwarnings(False) led = 26 A = 17 B = 27 GPIO.setmode(GPIO.BCM) # chon kieu danh so chan GPIO la BCM GPIO.setup(A, GPIO.OUT) GPIO.setup(B, GPIO.OUT) GPIO.output(A, GPIO.HIGH) GPIO.output(B, GPIO.HIGH) GPIO.setup(led, GPIO.OUT) for x in range (0, 5) : GPIO.output(led, GPIO.HIGH) sleep(0.2) GPIO.output(led, GPIO.LOW) sleep(0.2) def on_connect(mqttc, obj, flags, rc): mqttc.subscribe("cam1_res", 0) 113 mqttc.publish("cam1","cam1 hoat dong") def on_message(mqttc, obj, msg): return def on_publish(mqttc, obj, mid): return def on_subscribe(mqttc, obj, mid, granted_qos): return mqttc = mqtt.Client(client_id="cam1") mqttc.username_pw_set("","") mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish mqttc.on_subscribe = on_subscribe mqttc.connect(Pi_zero_Broker, 1883, 60) camera = PiCamera() for x in range (0, 30) : #chay xe if x0: for y in range (0, 10) : GPIO.output(led, GPIO.HIGH) sleep(0.1) GPIO.output(led, GPIO.LOW) sleep(0.1) #gui tin hieu dieu khien ve Pi zero bang giao thuc MQTT mqttc.publish("cam1","Co ruoi") #luu anh vao thu muc data x = datetime.datetime.now() link='/home/pi/doan/data/{}.jpg' cv2.imwrite(link.format(x),img) #ket thuc chu ki kiem tra mqttc.loop_forever() Code PI 2: “MQTTclient.py” import paho.mqtt.client as mqtt import RPi.GPIO as GPIO from time import sleep mqttc = mqtt.Client(client_id="pi0") GPIO.setwarnings(False) cam1_out = 17 GPIO.setmode(GPIO.BCM) # chon kieu danh so chan GPIO la BCM GPIO.setup(cam1_out, GPIO.OUT) 115 GPIO.output(cam1_out, GPIO.LOW) def on_connect(mqttc, obj, flags, rc): mqttc.publish("Pi0","Pi0 hoat dong") mqttc.subscribe("cam1", 0) def on_message(mqttc, obj, msg): if(msg.topic == "cam1"): mqttc.publish("cam1_res","OK") GPIO.output(cam1_out, GPIO.HIGH) sleep(0.2) GPIO.output(cam1_out, GPIO.LOW) def on_publish(mqttc, obj, mid): return def on_subscribe(mqttc, obj, mid, granted_qos): return mqttc.username_pw_set("wklvsjho","wUCTr-OzdYPF") mqttc.on_message = on_message mqttc.on_connect = on_connect mqttc.on_publish = on_publish mqttc.on_subscribe = on_subscribe mqttc.connect("127.0.0.1", 1883, 60) mqttc.loop_forever() Code Arduino: #include #define INPUT1_PIN #define INPUT2_PIN #define INPUT3_PIN #define INPUT4_PIN 11 #define INPUT5_PIN 12 #define SLAVE_ID #define CTRL_PIN 116 #define DATA_ADDR #define BAUDRATE 9600 Modbus slave(SLAVE_ID, CTRL_PIN); int input1 = 0, input2 = 0, input3 = 0, input4 = 0, input5 = 0; void setup() { pinMode(INPUT1_PIN, INPUT); pinMode(INPUT2_PIN, INPUT); pinMode(INPUT3_PIN, INPUT); pinMode(INPUT4_PIN, INPUT); pinMode(INPUT5_PIN, INPUT); slave.cbVector[CB_READ_HOLDING_REGISTERS] = sendData; Serial.begin(BAUDRATE); slave.begin(BAUDRATE); } void loop() { input1 = digitalRead(INPUT1_PIN); input2 = digitalRead(INPUT2_PIN); input3 = digitalRead(INPUT3_PIN); input4 = digitalRead(INPUT4_PIN); input5 = digitalRead(INPUT5_PIN); slave.poll(); } 117 uint8_t sendData(uint8_t fc, uint16_t address, uint16_t length) { slave.writeRegisterToBuffer(DATA_ADDR, input1); slave.writeRegisterToBuffer(DATA_ADDR + 1, input2); slave.writeRegisterToBuffer(DATA_ADDR + 2, input3); slave.writeRegisterToBuffer(DATA_ADDR + 3, input4); slave.writeRegisterToBuffer(DATA_ADDR + 4, input5); return STATUS_OK; } 118 ... quan thị giác máy tính 1.1.1 Khái quát thị giác máy tính 1.1.2 Nhận dạng đối tượng thị giác máy tính 1.2 Ứng dụng thị giác máy tính đời sống 1.3 Ứng dụng thị giác máy tính tự động hóa 12 1.3.1 Trong. .. áp dụng công nghệ cao vào sản xuất nông nghiệp, bắt kịp xu phát triển khoa học kỹ thuật mà em tiến hành nghiên cứu thực đề tài: ? ?Ứng dụng thị giác máy tính thiết kế chế tạo hệ thống phát sâu bệnh. .. lắp đặt thiết bị cho đúng, ) Để từ ta thương mại hóa, xây dựng với quy mô lớn Ý nghĩa khoa học đề tài Đề tài: ? ?Ứng dụng thị giác máy tính thiết kế chế tạo hệ thống phát sâu bệnh rau cải? ??, nhằm