Trong tình hình đó, một ứng dụng di động với các tính năng như dự báo thời tiết chitiết, cập nhật giá cả thị trường nông sản, và tư vấn chăm sóc cây trồng sẽ là giải pháp hiệuquả giúp nô
Trang 1BỘ GIAO THÔNG VẬN TẢI HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN ỨNG DỤNG DI ĐỘNG HỖ TRỢ NÔNG DÂN CHĂM SÓC CÂY
TRỒNG
Giảng viên hướng dẫn: Ths Nguyễn Thái Sơn, TS Tô Bá Lâm
Sinh viên/ Nhóm sinh viên thực hiện: Nhóm 03
Mã số sinh viên: ……… Lớp: 010100086404
Trang 2BỘ GIAO THÔNG VẬN TẢI HỌC VIỆN HÀNG KHÔNG VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN ỨNG DỤNG DI ĐỘNG HỖ TRỢ NÔNG DÂN CHĂM SÓC CÂY
TRỒNG
Giảng viên hướng dẫn: Ths Nguyễn Thái Sơn, TS Tô Bá Lâm
Sinh viên/ Nhóm sinh viên thực hiện: Nhóm 03
Mã số sinh viên: ……… Lớp: 010100086404
Thành phố Hồ Chí Minh, tháng 12/2024
Trang 4DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT
API Application Programming Interface
Trang 5DANH MỤC CÁC BẢNG, HÌNH VẼ, ĐỒ THỊ
Hình 2 1 - Hình ảnh minh họa Flutter 5
Hình 2 2 – Ngôn ngữ Dart 6
Hình 2 3 – Ngôn ngữ Python, framwork Flask 7
Hình 2 4 - Firebase 9
Hình 2 5 - Giao diện cơ sở người dùng 10
Hình 2 6 – TensorFlow và Keras 11
Hình 2 7 – Thuật toán CNN 12
Hình 2 8 – Mô hình MobileNet của CNN 13
Hình 2 9 – Dịch vụ AWS 14
Hình 3 1 - Sơ đồ use-case của hệ thống ứng dụng hỗ trợ nông dân chăm sóc cây trồng 15
Hình 3 2 - Sơ đồ chức năng đăng ký 17
Hình 3 3 - Sơ đồ chức năng đăng nhập 17
Hình 3 4 - Sơ đồ hoạt động xem chi tiết thời tiết 18
Hình 3 5 – Mô hình phát hiện và dự đoán bệnh cây trồng 19
Hình 3 6 – Đánh giá hiệu suất mô hình phát hiện và dự đoán bệnh 20
Hình 3 7 – Đánh giá hiệu suất mô hình khuyến nghị cây trồng 22
Hình 3 8 – Danh sách tóm gọn các loại cây trồng 22
Hình 3 9 - Giao diện trang chủ Home 24
Hình 3 10 - Giao diện xem chi tiết thời tiết 24
Hình 3 11 - Giao diện Bác sĩ cây AI 25
Hình 3 12 - Giao diện Theo dõi bão 26
Hình 3 13 - Giao diện Khuyến nghị cây trồng 27
Hình 3 14 - Giao diện trang chi tiết thuốc 28
Hình 3 15 - Giao diện trang Cộng đồng 29
Hình 3 16 - Giao diện Chuyên gia 30
Trang 6Hình 3 19 – Giao diện quản lý thuốc 32
Hình 3 20 – Giao diện quản lý cây trồng 33
Hình 3 21 – Giao diện quản lý thêm cây trồng 33
Hình 3 22 – Giao diện cho chuyên gia 34
Hình 3 23 – Giao diện giá cả thị trường 35
Hình 3 24 – Giao diện thể hiện các thông tin cây trồng được chọn 36
Hình 3 25 – Giao diện biểu đồ giá cả trong 3 tháng gần nhất 36
Hình 3 26 – Giao diện danh sách các cây trồng trong tháng 37
Trang 7MỤC LỤC
DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT 2
DANH MỤC CÁC BẢNG, HÌNH VẼ, ĐỒ THỊ 3
MỞ ĐẦU 7
CHƯƠNG 1 GIỚI THIỆU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu đề tài 1
1.3 Phạm vi đề tài 2
1.4 Đối tượng nghiên cứu 2
1.5 Phương pháp nghiên cứu 2
.1.6 Bố cục đề tài 3
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 4
2.1 Framework Flutter 4
2.2 Ngôn ngữ Dart 5
2.3 Framework Flask 7
2.4 Cơ sở dữ liệu Fire Base 8
2.5 TensorFlow và Keras 10
2.6 Thuật toán CNN 11
2.7 Mô hình MobileNet của CNN 13
2.8 AWS (Amazon Web Services) 14
Trang 83.1 Phân tích hệ thống 15
3.1.1 Mô tả hệ thống ứng dụng hổ trợ nông dân chăm sóc cây trồng 15
3.1.2 Sơ đồ hoạt động đăng ký, đăng nhập của ứng dụng hỗ trợ nông dân chăm sóc cây trồng 16
3.1.3 Sơ đồ hoạt động xem chi tiết dự báo thời tiết 18
3.2 Phân tích các mô hình ứng dụng nông dân chăm sóc cây trồng 18
3.2.1 Mô hình phát hiện và dự đoán bệnh cây trồng 18
3.2.2 Mô hình dự đoán và khuyến nghị cây trồng 20
3.2.3 Giá cả thị trường nông sản trồng trọt 22
3.3 Xây dựng giao diện sản phẩm 23
3.3.1 Giao diện trang chủ (Home) 23
3.3.2 Giao diện xem chi tiết dự báo thời tiết 24
3.3.3 Giao diện phát hiện và dự đoán cây trồng bị bệnh 24
3.3.4 Giao diện theo dõi bão 25
3.3.5 Giao dự đoán và khuyến nghị cây trồng 26
3.3.6 Giao diện tra cứu và hướng dẫn sử dụng thuốc 27
3.3.7 Giao diện cộng đồng cho mọi người 28
3.3.8 Giao diện trang tư vấn của chuyên gia 29
3.3.9 Giao diện đăng ký và đăng nhập 30
3.3.10 Giao diện quản lý người dùng 31
3.3.11 Giao diện quản lý thuốc 32
3.3.12 Giao diện quản lý cây trồng 33
3.3.13 Giao diện cho người chuyên gia 34
3.3.14 Giao diện giá cả thị trường 35
KẾT LUẬN 38
DANH MỤC TÀI LIỆU THAM KHẢO 39
PHỤ LỤC 41
Trang 9Bài báo cáo sau đây sẽ đi sâu vào quy trình xây dựng ứng dụng MobiAgri, từ việc lựachọn và tận dụng các công nghệ hiện đại như trí tuệ nhân tạo, học máy và phân tích dữ liệulớn, cho đến việc thiết kế giao diện người dùng thân thiện và dễ sử dụng Thông qua đó,chúng ta sẽ khám phá những thách thức cũng như cơ hội mà công nghệ thông tin mang lạitrong việc cung cấp các giải pháp nông nghiệp chính xác, kịp thời và hiệu quả, nhằm nângcao chất lượng cuộc sống và đảm bảo an toàn cho người nông dân.
Tuy nhiên, trong quá trình làm bài tiểu luận này, do kiến thức chuyên ngành của chúng
em còn hạn chế nên không tránh khỏi một vài thiếu sót trong việc trình bày và đánh giá vấn
đề Chúng em rất mong nhận được sự góp ý và đánh giá của các thầy cô để đề tài của nhóm
em ngày càng hoàn thiện hơn
Chúng em xin chân thành cảm ơn!
Trang 10CHƯƠNG 1 GIỚI THIỆU
1.1 Lý do chọn đề tài
Xuất phát từ thực tế nông nghiệp tại Việt Nam, phần lớn nông dân vẫn phụ thuộc vàokinh nghiệm cá nhân trong việc chăm sóc cây trồng và quản lý nông trại Điều này dẫn đếnnăng suất và hiệu quả sản xuất không ổn định, đặc biệt trong bối cảnh biến đổi khí hậu ngàycàng phức tạp và khó lường Hạn chế trong việc tiếp cận thông tin về thời tiết và thị trườngkhiến nông dân khó có thể đưa ra các quyết định chính xác trong sản xuất và kinh doanh.Những yếu tố này không chỉ ảnh hưởng đến hiệu quả kinh tế mà còn tiềm ẩn nhiều rủi ro chosinh kế của nông dân
Trong tình hình đó, một ứng dụng di động với các tính năng như dự báo thời tiết chitiết, cập nhật giá cả thị trường nông sản, và tư vấn chăm sóc cây trồng sẽ là giải pháp hiệuquả giúp nông dân quản lý mùa vụ tốt hơn Ứng dụng này không chỉ hỗ trợ nông dân tối ưuhóa lợi nhuận mà còn giảm thiểu rủi ro từ yếu tố môi trường và thị trường Với khả năng ápdụng cho nhiều loại cây trồng, ứng dụng có tiềm năng lan tỏa rộng rãi, góp phần nâng caohiệu quả sản xuất nông nghiệp, cải thiện chất lượng cuộc sống và thúc đẩy sự phát triển bềnvững của nền nông nghiệp Việt Nam
1.2 Mục tiêu đề tài
Hệ thống cung cấp các chức năng hữu ích nhằm hỗ trợ nông dân trong việc tối ưu hóahoạt động sản xuất và nâng cao hiệu quả Dự báo thời tiết chi tiết và định kỳ giúp cung cấpthông tin chính xác về điều kiện thời tiết, hỗ trợ nông dân lập kế hoạch chăm sóc cây trồnghợp lý và giảm thiểu thiệt hại do biến đổi khí hậu bất thường Dự báo được cập nhật thườngxuyên để đảm bảo tính kịp thời và chính xác
Tư vấn chăm sóc cây trồng dựa trên dữ liệu thực tế như tình trạng lá cây và sự xuất hiệncủa bệnh hại, cung cấp giải pháp phòng ngừa và điều trị bệnh cụ thể, giúp cây trồng pháttriển khỏe mạnh và đạt năng suất cao
Cập nhật giá cả thị trường nông sản mang đến thông tin về giá của các mặt hàng nôngsản, hỗ trợ nông dân đưa ra quyết định bán hàng hợp lý để tối ưu hóa lợi nhuận
Trang 11Bên cạnh đó, hệ thống còn cung cấp khuyến nghị cây trồng dựa trên thông tin địaphương như khí hậu, đất đai, và mùa vụ Tính năng này giúp nông dân lựa chọn loại câytrồng phù hợp với điều kiện tự nhiên và thị trường, từ đó tối ưu hóa năng suất và thu nhập.
1.3 Phạm vi đề tài
Phạm vi nghiên cứu tập trung vào các yếu tố quan trọng trong lĩnh vực nông nghiệp tạiViệt Nam Cụ thể, nghiên cứu sẽ được tiến hành tại các vùng nông nghiệp của đất nước, nơi
có sự phát triển mạnh mẽ về sản xuất nông sản
Thời gian nghiên cứu sẽ được xác định theo các mùa vụ trồng trọt chủ yếu của nôngdân, giúp phản ánh sự thay đổi trong quá trình canh tác và chăm sóc cây trồng
Mục tiêu chính là tìm hiểu và đánh giá các phương pháp trồng trọt, chăm sóc cây trồng,
từ đó cung cấp những thông tin hữu ích để nâng cao năng suất và hiệu quả sản xuất
1.4 Đối tượng nghiên cứu
Cây trồng bị bệnh là một trong những vấn đề nghiêm trọng ảnh hưởng trực tiếp đếnnăng suất và chất lượng sản phẩm nông nghiệp Các yếu tố khí hậu như nhiệt độ, độ ẩm,lượng mưa và gió có thể tạo điều kiện thuận lợi cho sự phát triển của các loại bệnh hại câytrồng, từ đó gây thiệt hại lớn cho sản xuất Đồng thời, biến động thị trường nông sản và giá
cả cũng là yếu tố quan trọng tác động đến hiệu quả kinh tế của nông dân
Sự thay đổi giá nông sản, đặc biệt trong các mùa vụ thu hoạch chính, có thể khiến nôngdân gặp khó khăn trong việc tiêu thụ sản phẩm, đồng thời ảnh hưởng đến quyết định canh tác
và chăm sóc cây trồng Những yếu tố này đều cần được nghiên cứu và quản lý hiệu quả đểđảm bảo sự phát triển bền vững của ngành nông nghiệp
1.5 Phương pháp nghiên cứu
Các phương pháp nghiên cứu sử dụng bao gồm: Phương pháp thu thập thông tin: Khảosát trực tiếp nông dân và nhà quản lý nông nghiệp; sử dụng các bảng hỏi, phân tích tài liệu từcác nguồn tin cậy
Trang 12Phương pháp thực nghiệm: Áp dụng mô hình dự báo thời tiết và tư vấn chăm sóc câytrồng trong thực tế, thử nghiệm tại các nông trại quy mô nhỏ để đánh giá tính hiệu quả của
hệ thống
.1.6 Bố cục đề tài
Trong chương 2, chúng em đã trình bày tổng quan về các cơ sở lý thuyết phục vụ choviệc phát triển ứng dụng nông nghiệp thông minh MobiAgri Trong chương này, chúng em
sẽ giới thiệu các công nghệ và công cụ được sử dụng để phát triển ứng dụng, bao gồm Flutter
và Dart, cùng với các thư viện bên thứ ba như HTTP và Firebase, nhằm đảm bảo tính hiệuquả và tối ưu cho ứng dụng
Chương 3 sẽ đi vào phân tích hệ thống và xây dựng sản phẩm Trong chương này,chúng em sẽ phân tích chi tiết các yêu cầu chức năng và phi chức năng của ứng dụngMobiAgri, bao gồm các use case chính như quản lý cây trồng, theo dõi thời tiết, và cung cấpthông tin về thuốc trừ sâu Tiếp theo, chúng em sẽ mô tả kiến trúc tổng quan của ứng dụng,cùng với thiết kế giao diện người dùng (UI/UX) và trải nghiệm người dùng để đảm bảo tínhthân thiện và dễ sử dụng
Chương 4 sẽ trình bày kết quả đạt được so với các mục tiêu đã đề ra, đồng thời đánh giánhững thách thức và hạn chế trong quá trình phát triển ứng dụng Ngoài ra, trong chươngnày, nhóm cũng sẽ đề xuất các cải tiến hoặc mở rộng cho ứng dụng MobiAgri trong tươnglai, cùng với các hướng nghiên cứu tiếp theo nhằm nâng cao chất lượng và tính năng của sảnphẩm
Trang 13CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
Ứng dụng nông nghiệp thông minh MobiAgri được phát triển nhằm hỗ trợ người nôngdân trong việc quản lý cây trồng, theo dõi thời tiết, cung cấp thông tin về thuốc trừ sâu vànâng cao hiệu quả sản xuất nông nghiệp Để phát triển ứng dụng này, chúng em đã lựa chọn
sử dụng các công nghệ hiện đại như Flutter, Dart và Firebase
2.1 Framework Flutter
Flutter là một framework phát triển ứng dụng di động mã nguồn mở do Google pháttriển, cung cấp giải pháp toàn diện để xây dựng ứng dụng cho cả iOS và Android từ một mãnguồn duy nhất Với việc sử dụng ngôn ngữ lập trình Dart, Flutter mang lại một số ưu điểmđáng kể so với các framework di động khác như React Native hay Xamarin Cùng với sựphát triển nhanh chóng của các thiết bị di động, nhu cầu tạo ra các ứng dụng di động mượt
mà và hiệu quả đã thúc đẩy sự ra đời và phát triển của Flutter, đáp ứng nhu cầu này với hiệusuất tối ưu và khả năng tùy biến linh hoạt
Một trong những lợi ích lớn nhất khi sử dụng Flutter là hiệu suất vượt trội Flutter biêndịch mã nguồn thành mã máy nén, giúp ứng dụng chạy mượt mà và nhanh chóng trên cả hainền tảng iOS và Android mà không gặp phải những vấn đề về độ trễ hay giật lag thường thấykhi sử dụng các framework cross-platform khác Flutter không sử dụng WebView hay cáccầu nối JavaScript để giao tiếp với mã gốc của hệ điều hành, mà thay vào đó sử dụng mộtEngine tùy chỉnh, giúp tối ưu hóa hiệu suất của ứng dụng
Một trong những lợi ích lớn nhất khi sử dụng Flutter là hiệu suất vượt trội Flutter biêndịch mã nguồn thành mã máy nén, giúp ứng dụng chạy mượt mà và nhanh chóng trên cả hainền tảng iOS và Android mà không gặp phải những vấn đề về độ trễ hay giật lag thường thấykhi sử dụng các framework cross-platform khác
Trang 14Hình 2 1 - Hình ảnh minh họa Flutter
Flutter được hỗ trợ bởi một cộng đồng lớn và đang phát triển nhanh chóng Cộng đồngnày cung cấp rất nhiều tài nguyên, từ các tài liệu chính thức, diễn đàn, nhóm hỗ trợ trựctuyến, đến các thư viện mã nguồn mở giúp nhà phát triển dễ dàng tích hợp các tính năng mớivào ứng dụng của mình Google cũng cung cấp hỗ trợ kỹ thuật và tài liệu chi tiết, giúp nhàphát triển nắm bắt nhanh chóng và áp dụng các kỹ thuật tối ưu vào quá trình phát triển.Một ưu điểm nổi bật khác của Flutter là khả năng phát triển ứng dụng không chỉ chothiết bị di động mà còn có thể mở rộng sang các nền tảng khác như web và desktop VớiFlutter, nhà phát triển có thể sử dụng cùng một mã nguồn để phát triển ứng dụng cho cảAndroid, iOS, web và desktop, giúp tiết kiệm thời gian và công sức trong việc duy trì vàphát triển ứng dụng trên nhiều nền tảng khác nhau
Flutter là một framework phát triển ứng dụng di động mạnh mẽ, với hiệu suất cao, khảnăng tùy biến mạnh mẽ và một cộng đồng hỗ trợ nhiệt tình Sự kết hợp giữa ngôn ngữ Dart,
bộ widget phong phú, và tính năng Hot Reload giúp Flutter trở thành một công cụ phát triểnứng dụng di động ưu việt, đáp ứng nhu cầu phát triển ứng dụng nhanh chóng, hiệu quả và dễdàng bảo trì
2.2 Ngôn ngữ Dart
Dart là một ngôn ngữ lập trình do Google phát triển, được thiết kế chủ yếu để xây dựngứng dụng web và di động Mặc dù Dart có thể được sử dụng cho nhiều mục đích khác nhau,nhưng nó nổi bật nhất trong phát triển ứng dụng di động thông qua framework Flutter Dart
là một ngôn ngữ mạnh mẽ, dễ học và tối ưu cho việc phát triển các ứng dụng di động hiệu
Trang 15quả với Flutter Bài viết này sẽ đi vào các đặc điểm chính của Dart, các tính năng nổi bật và
lý do vì sao nó là lựa chọn tuyệt vời cho phát triển ứng dụng di động
Dart có cú pháp gần gũi với nhiều ngôn ngữ lập trình khác như JavaScript, Java và C#.Đây là một ngôn ngữ với các đặc điểm chính như biến và kiểu dữ liệu, hàm và phương thức,lớp (class) và đối tượng (object), cũng như hỗ trợ các tính năng mạnh mẽ như kế thừa, đahình và đóng gói
Một trong những tính năng nổi bật của Dart là khả năng xử lý bất đồng bộ rất hiệu quả.Ngôn ngữ này sử dụng Future và Stream để làm việc với các tác vụ bất đồng bộ, cho phép xử
lý đồng thời nhiều tác vụ mà không cần phải chặn luồng chính Điều này rất quan trọng khiphát triển các ứng dụng cần thời gian phản hồi nhanh và mượt mà
Hình 2 2 – Ngôn ngữ Dart
Dart còn hỗ trợ việc quản lý bộ nhớ tự động thông qua hệ thống Garbage Collector,giúp giảm thiểu lỗi bộ nhớ (memory leaks) Ngôn ngữ này rất phù hợp với việc phát triểnứng dụng di động với Flutter, mang lại hiệu suất cao nhờ việc biên dịch mã nguồn thành mãmáy trực tiếp Điều này giúp ứng dụng chạy nhanh và hiệu quả hơn so với các ngôn ngữkhác
Trang 16Dart kết hợp hoàn hảo với Flutter, mang lại tính năng "Hot Reload", cho phép nhà pháttriển thấy ngay sự thay đổi của mã nguồn mà không cần phải khởi động lại ứng dụng, giúptiết kiệm thời gian và nâng cao hiệu quả trong quá trình phát triển ứng dụng.
Ngoài ra, Dart còn được sử dụng trong phát triển ứng dụng web và server-side, mặc dùFlutter là ứng dụng phổ biến nhất của ngôn ngữ này Dart có cộng đồng phát triển rộng lớn
và tài liệu hỗ trợ phong phú, giúp các nhà phát triển dễ dàng tiếp cận và làm việc với ngônngữ này
2.3 Framework Flask
Flask là một microframework cho phát triển ứng dụng web bằng Python, được thiết kế
để đơn giản và linh hoạt Nó cung cấp các công cụ cơ bản để xây dựng ứng dụng web nhưđịnh tuyến URL, xử lý yêu cầu và phản hồi HTTP, cùng với Jinja2 để tạo các template động.Flask không tích hợp sẵn các tính năng như ORM hay bảo mật, do đó lập trình viên có thểlựa chọn thư viện ngoài để mở rộng các tính năng cần thiết
Flask có nhiều ưu điểm, trong đó nổi bật là tính đơn giản và dễ sử dụng, giúp lập trìnhviên mới bắt đầu có thể sử dụng nhanh chóng Flask cũng rất linh hoạt, cho phép tùy chỉnhứng dụng theo nhu cầu riêng mà không bị gò bó bởi một cấu trúc cứng nhắc Ngoài ra, Flaskcòn hỗ trợ mở rộng, có thể tích hợp với các thư viện như SQLAlchemy cho ORM, Flask-Login cho xác thực người dùng, và nhiều thư viện khác để xây dựng ứng dụng phức tạp
Hình 2 3 – Ngôn ngữ Python, framwork Flask
Trang 17Tuy nhiên, Flask cũng có một số nhược điểm Framework này không tích hợp các tínhnăng bảo mật mạnh mẽ như một số framework khác (ví dụ Django), do đó lập trình viên phải
tự đảm bảo tính bảo mật cho ứng dụng của mình Flask cũng không cung cấp ORM mặcđịnh, điều này có thể gây khó khăn cho những ứng dụng cần thao tác nhiều với cơ sở dữ liệu.Bên cạnh đó, Flask có thể không phải là sự lựa chọn tốt cho các ứng dụng lớn ngay từ đầu,nếu không có cấu hình bổ sung
Tóm lại, Flask là một lựa chọn tuyệt vời cho các ứng dụng nhỏ, thử nghiệm, hoặcnhững dự án yêu cầu tính linh hoạt cao Nó phù hợp cho việc phát triển nhanh chóng với ítcấu hình, nhưng nếu cần bảo mật cao hoặc ứng dụng phức tạp, người dùng cần bổ sung thêmcác công cụ và cấu hình phù hợp
2.4 Cơ sở dữ liệu Fire Base
Firebase là một nền tảng phát triển ứng dụng do Google cung cấp, bao gồm nhiều dịch
vụ hỗ trợ các chức năng như cơ sở dữ liệu thời gian thực, xác thực người dùng, phân tích vàlưu trữ tệp tin Firebase cung cấp cơ sở dữ liệu Firebase Realtime Database và CloudFirestore, cả hai đều hỗ trợ lưu trữ và đồng bộ dữ liệu theo thời gian thực, phục vụ cho cácứng dụng di động và web
Firebase Realtime Database là một cơ sở dữ liệu NoSQL lưu trữ dữ liệu dưới dạng câyJSON Dữ liệu có thể được đồng bộ giữa các client và Firebase ở thời gian thực Khi có thayđổi, dữ liệu sẽ được tự động cập nhật cho tất cả các client đang kết nối mà không cần tải lạiứng dụng Cloud Firestore cũng là cơ sở dữ liệu NoSQL nhưng mạnh mẽ và linh hoạt hơnFirebase Realtime Database Firestore hỗ trợ các tính năng phức tạp hơn, như truy vấn phứctạp, bộ nhớ theo cấu trúc tài liệu (document), và có khả năng mở rộng tốt hơn
Trang 18Hình 2 4 - Firebase
Firebase có nhiều ưu điểm, bao gồm khả năng đồng bộ dữ liệu theo thời gian thực,giúp cải thiện trải nghiệm người dùng trong các ứng dụng yêu cầu cập nhật dữ liệu liên tụcnhư chat, trò chơi trực tuyến, hay ứng dụng cộng đồng Firebase cũng dễ dàng tích hợp vớicác dịch vụ khác của Firebase, tạo ra một hệ sinh thái hoàn chỉnh hỗ trợ phát triển ứng dụngnhanh chóng Ngoài ra, Firebase hỗ trợ nhiều nền tảng như Android, iOS, Web, Unity, vàC++, giúp nhà phát triển tạo ứng dụng đa nền tảng Firebase còn có giao diện quản lý đơngiản, dễ sử dụng và hỗ trợ tính năng offline, cho phép người dùng truy cập và đồng bộ dữliệu ngay cả khi không có kết nối Internet
Tuy nhiên, Firebase cũng có một số nhược điểm Firebase Realtime Database không
hỗ trợ các truy vấn phức tạp như các cơ sở dữ liệu quan hệ truyền thống, vì dữ liệu được lưutrữ dưới dạng cây JSON đơn giản Chi phí của Firebase có thể tăng cao khi ứng dụng mởrộng, vì Firebase tính phí dựa trên số lượng yêu cầu và lượng dữ liệu truyền tải Bên cạnh đó,Firebase Realtime Database không hỗ trợ các giao dịch phức tạp và có thể gây khó khăntrong việc triển khai quy tắc bảo mật nếu không hiểu rõ về các khái niệm bảo mật củaFirebase
Trang 19Hình 2 5 - Giao diện cơ sở người dùng
Tóm lại, Firebase là một công cụ mạnh mẽ giúp phát triển ứng dụng di động và webvới nhiều tính năng tiện lợi như cơ sở dữ liệu thời gian thực và đồng bộ hóa dữ liệu Tuynhiên, nó có một số nhược điểm cần phải cân nhắc, đặc biệt khi ứng dụng yêu cầu truy vấn
dữ liệu phức tạp hoặc khi cần mở rộng quy mô ứng dụng
2.5 TensorFlow và Keras
TensorFlow là một framework mã nguồn mở được Google phát triển để xây dựng,huấn luyện và triển khai các mô hình học máy và học sâu (deep learning) Đây là một trongnhững framework phổ biến nhất trong cộng đồng nghiên cứu và phát triển AI, đặc biệt trongcác ứng dụng xử lý ảnh, ngôn ngữ tự nhiên, và nhận diện giọng nói TensorFlow hỗ trợnhiều mô hình học máy, bao gồm các mô hình học sâu (Deep Neural Networks), mạng nơ-ron tích chập (Convolutional Neural Networks - CNNs), mạng nơ-ron hồi quy (RecurrentNeural Networks - RNNs)
TensorFlow sử dụng các toán tử được tối ưu hóa cho tính toán hiệu suất cao và có thểchạy trên nhiều nền tảng phần cứng (CPU, GPU, TPU) Nó cũng hỗ trợ phân tán và có thể
xử lý các tác vụ tính toán quy mô lớn, từ máy tính cá nhân đến các hệ thống đám mây lớn.TensorFlow cung cấp nhiều cấp độ API, từ API cấp thấp giúp người phát triển can thiệp sâuvào cấu trúc của mô hình, đến các API cấp cao như Keras (thư viện tích hợp trongTensorFlow) để xây dựng mô hình nhanh chóng
Keras là một API cấp cao được tích hợp trong TensorFlow, giúp việc xây dựng và
Trang 20mạng neural khác nhau, như mạng neural tích chập (CNN), mạng hồi quy (RNN), và nhiềuloại mạng khác.
Hình 2 6 – TensorFlow và Keras
Tóm lại, TensorFlow là nền tảng mạnh mẽ cho học sâu, cung cấp các công cụ để xâydựng, huấn luyện và triển khai mô hình trên các hệ thống phần cứng khác nhau, trong khi Keras giúp đơn giản hóa quá trình xây dựng mô hình với API dễ sử dụng
2.6 Thuật toán CNN
Convolutional Neural Network (CNN) là một loại mạng nơ-ron sâu (Deep NeuralNetwork) được thiết kế đặc biệt để xử lý và phân tích dữ liệu có dạng lưới như hình ảnh.CNN sử dụng các lớp tích chập (convolutional layers) để trích xuất các đặc trưng khônggian (spatial features) của hình ảnh và sau đó sử dụng các lớp phân loại để đưa ra kết quảphân loại hoặc nhận diện Các lớp chính trong CNN bao gồm lớp tích chập (convolution),lớp gộp (pooling), và lớp hoàn toàn kết nối (fully connected layer) CNN rất hiệu quả trongviệc học các đặc trưng hình ảnh một cách tự động, giúp giảm thiểu sự can thiệp của conngười trong việc thiết kế các đặc trưng thủ công
Convolutional Neural Networks (CNN) là một loại mạng nơ-ron nhân tạo được thiết
kế đặc biệt để xử lý dữ liệu dạng hình ảnh và video CNN được phát triển dựa trên các lýthuyết về học máy và mạng nơ-ron, nhưng bắt đầu có ảnh hưởng lớn trong lĩnh vực thị giácmáy tính từ những năm 1980 Ban đầu, mô hình CNN được phát triển bởi Yann LeCun vàcộng sự với mô hình LeNet-5 vào cuối những năm 1980, chủ yếu để nhận dạng chữ viết tay
Trang 21Tuy nhiên, CNN chỉ thực sự phát triển mạnh mẽ và đạt được thành công lớn khi có sự giatăng về dữ liệu và sức mạnh tính toán trong những năm gần đây
Vào năm 2012, CNN thực sự bước vào "thời kỳ hoàng kim" nhờ vào sự đột phá của môhình AlexNet trong cuộc thi ImageNet, nơi AlexNet đã vượt trội so với các phương phápnhận dạng hình ảnh truyền thống, chứng minh khả năng vượt trội của CNN trong nhận dạnghình ảnh Kể từ đó, CNN đã trở thành nền tảng cho hầu hết các ứng dụng trong thị giác máytính, bao gồm nhận diện đối tượng, phân loại hình ảnh, và nhiều bài toán khác
Hình 2 7 – Thuật toán CNN
CNN có nhiều điểm mạnh, đặc biệt là khả năng nhận diện đặc trưng mạnh mẽ từ hìnhảnh mà không cần sự can thiệp của con người, giúp trích xuất và học các đặc trưng khônggian hiệu quả Mô hình này có khả năng tổng quát cao, cho phép nhận diện các đối tượngtrong hình ảnh dù có sự thay đổi về vị trí, kích thước hoặc góc độ CNN cũng tiết kiệm tàinguyên tính toán nhờ vào các lớp tích chập, giúp giảm số lượng tham số cần học so với cácmạng nơ-ron truyền thống Hơn nữa, CNN được ứng dụng rộng rãi trong nhiều lĩnh vực nhưnhận dạng hình ảnh, xe tự lái, và y học Tuy nhiên, CNN cũng có một số điểm yếu, bao gồmyêu cầu tài nguyên tính toán lớn, đặc biệt đối với các mô hình phức tạp hoặc khi làm việc với
dữ liệu lớn Mô hình này cũng cần một lượng lớn dữ liệu huấn luyện để đạt hiệu suất tốt,điều này có thể gây khó khăn trong các bài toán thiếu dữ liệu Bên cạnh đó, CNN là mô hình
Trang 222.7 Mô hình MobileNet của CNN
MobileNet là một mạng nơ-ron tích chập (CNN) được thiết kế đặc biệt để tối ưu hóahiệu suất trên các thiết bị di động và các hệ thống tính toán hạn chế Mô hình này sử dụngmột số kỹ thuật cải tiến như depthwise separable convolutions, inverted residual blocks vàlinear bottleneck để giảm thiểu số lượng tham số và phép toán tính toán mà vẫn duy trì độchính xác cao trong các tác vụ thị giác máy tính, như phân loại ảnh và nhận diện vật thể.Một trong những điểm mạnh nổi bật của MobileNet là sự nhẹ nhàng và nhanh chóng.Nhờ vào việc tối ưu hóa các phép toán convolution, MobileNet có thể hoạt động hiệu quảtrên các thiết bị di động, không cần tài nguyên tính toán quá lớn nhưng vẫn đạt được hiệusuất tốt Điều này giúp mô hình trở thành lựa chọn lý tưởng cho các ứng dụng thị giác máytính trên thiết bị di động, từ nhận diện khuôn mặt đến nhận diện giọng nói
Hình 2 8 – Mô hình MobileNet của CNN
Tuy nhiên, MobileNet cũng có một số điểm yếu Độ chính xác của mô hình có thểgiảm khi xử lý các tác vụ phức tạp hoặc dữ liệu có độ phân giải cao Mặc dù mô hình nhẹ vànhanh, nhưng khả năng tổng quát hóa của nó thấp hơn so với các mô hình CNN lớn hơn nhưResNet hoặc EfficientNet, đặc biệt là khi phải xử lý các tình huống phức tạp và đa dạng.Tóm lại, MobileNet là một giải pháp lý tưởng cho các ứng dụng cần tiết kiệm tàinguyên và chạy trên các thiết bị di động hoặc hệ thống tính toán hạn chế Mặc dù có một sốhạn chế về độ chính xác khi xử lý dữ liệu phức tạp, nhưng với thiết kế tối ưu và khả năng
Trang 23chạy nhanh trên các thiết bị không mạnh mẽ, MobileNet vẫn là một trong những lựa chọnphổ biến cho các tác vụ thị giác máy tính trên di động.
2.8 AWS (Amazon Web Services)
AWS (Amazon Web Services) là một nền tảng điện toán đám mây toàn diện và rộnglớn do Amazon phát triển AWS cung cấp nhiều dịch vụ cơ sở hạ tầng và phần mềm quainternet, giúp các doanh nghiệp, tổ chức và cá nhân có thể triển khai và quản lý các ứng dụng
mà không cần phải đầu tư vào phần cứng hoặc quản lý các hệ thống phức tạp
Amazon EC2 (Elastic Compute Cloud): Cung cấp máy chủ ảo (instance) để chạy ứng dụng hoặc dịch vụ.
Hình 2 9 – Dịch vụ AWS
Trang 24CHƯƠNG 3 PHÂN TÍCH HỆ THỐNG VÀ XÂY DỰNG SẢN
PHẨM
3.1 Phân tích hệ thống
3.1.1 Mô tả hệ thống ứng dụng hổ trợ nông dân chăm sóc cây trồng
Sơ đồ use case các chức năng cảu hệ thống ứng dụng hỗ trợ nông dân chăm sóc câytrồng:
Hình 3 1 - Sơ đồ use-case của hệ thống ứng dụng hỗ trợ nông dân chăm sóc cây trồng
Hệ thống mobiAgri được thiết kế với nhiều thành phần và tính năng nhằm hỗ trợ cácđối tượng sử dụng khác nhau Trong đó, người dùng mới có thể truy cập vào các tính năng
Trang 25cơ bản như Sign Up để tạo tài khoản mới, Xem các thông tin cơ bản liên quan đến cây trồnghoặc dịch vụ, và Xem dự báo thời tiết để cập nhật thông tin khí hậu Đây là những chức năngchính giúp người dùng mới dễ dàng tiếp cận hệ thống.
User, là những người đã đăng nhập, có quyền sử dụng các tính năng nâng cao hơn Cáctính năng này bao gồm Theo dõi cây trồng để quản lý và giám sát tình trạng cây trồng,Chuẩn đoán bệnh để nhận thông tin về bệnh cây, Nhận thông báo từ hệ thống về các cảnhbáo quan trọng, Tư vấn để liên hệ và nhận hỗ trợ từ chuyên gia, và Đăng bài, bình luận đểtương tác hoặc chia sẻ ý kiến trong cộng đồng
Bên cạnh đó, Expert đóng vai trò hỗ trợ chuyên sâu, tham gia tư vấn và đăng bài liênquan đến chuyên môn Đây là các chuyên gia trong lĩnh vực nông nghiệp, giúp cung cấpthông tin chất lượng và hướng dẫn người dùng một cách chính xác
Cuối cùng, Admin là người quản lý toàn bộ hệ thống Họ có quyền Quản lý khách hàng nhằm kiểm soát thông tin người dùng, Quản lý hệ thống để đảm bảo nền tảng vận hành trơntru, và Quản lý chuyên gia để phân quyền, kiểm tra và hỗ trợ các chuyên gia tham gia hệthống
Tất cả các chức năng chính trong hệ thống, ngoại trừ việc đăng ký và xem thông tin cơ
bản, đều yêu cầu người dùng phải thực hiện Login trước Điều này đảm bảo rằng hệ thống
có thể cung cấp dịch vụ phù hợp với từng đối tượng, đồng thời bảo mật thông tin ngườidùng
3.1.2 Sơ đồ hoạt động đăng ký, đăng nhập của ứng dụng hỗ trợ nông dân chăm sóc cây trồng
Chức năng đăng ký: Quá trình đăng ký qua Firebase bao gồm: người dùng nhập thôngtin vào form và gửi đi, hệ thống kiểm tra thông tin Nếu tài khoản đã tồn tại, yêu cầu nhập lại;nếu không, đăng ký hoàn tất và thông báo thành công
Trang 26Hình 3 2 - Sơ đồ chức năng đăng ký
Chức năng đăng nhập: Quá trình đăng nhập qua Firebase gồm: người dùng nhậpthông tin đăng nhập vào biểu mẫu, hệ thống gửi thông tin đến Firebase để kiểm tra Nếu thông tin chính xác, hệ thống thông báo đăng nhập thành công.
Hình 3 3 - Sơ đồ chức năng đăng nhập
Trang 273.1.3 Sơ đồ hoạt động xem chi tiết dự báo thời tiết
Sơ đồ thể hiện cách hoạt động xem chi tiết dự báo thời tiết của ứng dụng hỗ trợ nôngdân chăm sóc cây trồng:
Hình 3 4 - Sơ đồ hoạt động xem chi tiết thời tiết
Biểu đồ trên thể hiện tương tác giữa người dùng, ứng dụng, và hệ thống trong một ứng
dụng thời tiết Khi Người dùng gửi yêu cầu "Xem thời tiết" hoặc "Xem biểu đồ" đến Ứngdụng, Ứng dụng sẽ tương tác với Hệ thống để lấy dữ liệu cần thiết, bao gồm thông tin vềnhiệt độ, lượng mưa, gió, hoặc các thông số liên quan khác Sau đó, Hệ thống trả lại dữ liệucho Ứng dụng, và Ứng dụng hiển thị thông tin hoặc biểu đồ tương ứng cho Người dùng.Biểu đồ này minh họa rõ ràng cách dữ liệu di chuyển giữa các thành phần trong hệ thống
3.2 Phân tích các mô hình ứng dụng nông dân chăm sóc cây trồng
3.2.1 Mô hình phát hiện và dự đoán bệnh cây trồng
Hình ảnh dưới đây (Hình 3.1) đã mô tả quy trình sử dụng mô hình học sâu trong ứngdụng nông nghiệp thông minh để phát hiện và dự đoán bệnh cây trồng Bắt đầu từ bước nhậphình ảnh, người dùng chụp hoặc tải lên ảnh cây trồng để phân tích Sau đó, ảnh sẽ trải qua