LỜI CẢM ƠNTrong quá trình thực hiện đồ án tốt nghiệp với đề tài về Hệ thống quan trắc chấtlượng nước phục vụ cho môi trường nuôi tôm, chúng tôi không ngừng nhận được sựhỗ trợ và tư vấn đ
TỔNG QUAN
GIỚI THIỆU
Theo quan sát và hiện trạng thực tế việc nuôi tôm thẻ chân trắng ở vùng Kiên Giang nơi mà tôi sinh sống, người nông dân cho biết một vụ tôm thường tốn rất nhiều chi phí để đầu tư nào là chuẩn bị ao, thiết bị, giống, thức ăn, Việc đạt được năng suất và hiệu suất canh tác thường dựa nhiều vào kinh nghiệm của người nuôi, đặc tính của vật nuôi, và điều kiện thời tiết, các chỉ số nước phù hợp với loài tôm thì sẽ có lãi Có những năm do nước sông bị nhiễm mặn mà người nông dân không kịp gửi mẫu đi kiểm tra thì tôm chết dẫn đến mất trắng Tuy có kinh nghiệm nuôi tôm nhiều năm nhưng nhiều hộ hiện nay vẫn cần có giải pháp chắc chắn hơn để không phải phụ thuộc hoàn toàn vào thiên nhiên Có một đơn vị xét nghiệm chất lượng nước cho bà con nông dân được triển khai nhưng hiệu quả mang lại chưa cao Bà con mỗi ngày sẽ lấy mẫu đi xét nghiệm 3 lần sáng, trưa, chiều để điểu chỉnh chất lượng nước cho phù hợp. Tuy phương pháp này đã giải quyết chất lượng nước nuôi tôm nhưng hiệu quả mang lại không cao do các lần lấy mẫu khá xa nhau nếu có sự thay đổi diễn ra thì bà con không kịp trở tay Hơn nữa với rất nhiều hộ cùng mang ra để xét nghiệm chất lượng nước thì phải tốn khá nhiều thời gian để đợi kết quả.
Với sự phát triển của Khoa học và Công nghệ (KH&CN), nhiều doanh nghiệp và hộ nuôi tôm đã chuyển đổi và áp dụng IoT trong nuôi trồng thủy sản, tạo ra những đột phá quan trọng Sự ứng dụng của IoT đã giúp ngành nuôi tôm chuyển từ mô hình sản xuất dựa trên kinh nghiệm chủ quan sang mô hình sản xuất chính xác, dựa trên số liệu được thu thập, tổng hợp và phân tích thống kê thông qua các hệ thống quan trắc Điều này giúp người nuôi chủ động điều chỉnh các thông số như độ pH, độ mặn, nhiệt độ ao nuôi để tối ưu hóa hiệu quả Các hệ thống này bao gồm cảm biến đo đạc kết nối với nhau và tích hợp trên nền tảng công nghệ Chúng giúp theo dõi, thu thập dữ liệu và kết dụng của công nghệ IoT trong nuôi tôm thẻ chân trắng được kỳ vọng sẽ nâng cao chất lượng sản phẩm, đóng góp vào việc xây dựng thương hiệu cho ngành sản xuất thủy sản. Tuy nhiên, để đạt được kết quả trên thì việc ứng dụng những thành tựu của KH&CN, nhất là công nghệ IoT trong nuôi tôm thẻ chân trắng là rất quan trọng Theo khảo sát của các chuyên gia thuộc Viện VKIST trong đề tài “Tìm hiểu thị trường thiết bị, giải pháp quan trắc và kiểm soát môi trường nước sử dụng trong nuôi tôm thẻ chân trắng theo hình thức siêu thâm canh, thâm canh và bán thâm canh tại các vùng nuôi tập trung ở ĐBSCL” Đã tiến hành khảo sát thực tế tại gần 500 hộ nuôi ở 2 tỉnh Bạc Liêu và Cà Mau cho thấy, có đến trên 50% hộ nuôi chưa từng biết đến công nghệ IoT là gì và gần như 100% hộ nuôi chưa bao giờ áp dụng công nghệ này vào nuôi tôm.[1]
Hầu hết các sản phẩm công nghệ IoT trong nuôi tôm thẻ chân trắng hiện nay đều là các sản phẩm quan trắc môi trường riêng lẻ, còn mang nặng tính trình diễn, chưa sát thực với nhu cầu của người sử dụng Nhu cầu sử dụng Internet of Things (IoT) trong các cơ sở nuôi tôm thẻ chân trắng đang ngày càng tăng cao Theo một khảo sát trên
500 hộ nuôi trung bình, tỷ lệ sẵn sàng đầu tư vào công nghệ IoT là 67,1% Trong số này, 66,9% hộ nuôi thể hiện sẵn sàng áp dụng IoT trong mô hình nuôi thâm canh trên ao đất, và 68,3% trong mô hình nuôi siêu thâm canh trên ao đất lót bạt Riêng đối với mô hình nuôi siêu thâm canh trong bể nổi, tỷ lệ sẵn sàng là 50%, trong khi có 50% còn chưa hoặc không sẵn sàng Đối với kênh tiếp cận các thiết bị IoT, khảo sát cho thấy chỉ có khoảng 12,9% các hộ nuôi biết đến các thiết bị IoT thông qua cán bộ khuyến nông Ngược lại, các đại lý bán thức ăn chăn nuôi được xác định là kênh tiếp cận chủ yếu, với tỷ lệ 15,6% Người nuôi cũng tự tìm hiểu trên mạng xã hội, chiếm 28,1% trong tỷ lệ này.[2] Để đẩy mạnh ứng dụng IoT, việc áp dụng thành tựu công nghệ, đặc biệt là IoT, được coi là giải pháp hiệu quả nhằm nâng cao năng suất, chất lượng và giá trị của tôm nuôi Mặc dù đã có nhiều giải pháp IoT hoàn chỉnh được chuyển giao vào sản xuất, cung cấp phần mềm giám sát, và nhận cảnh báo trên nền tảng các thiết bị thông minh Android và IOS, nhưng đối với đa số các hộ nuôi gia đình, sự sẵn sàng với các thiết bị này vẫn còn thấp do giá cao và khả năng phải thay mới nhanh chóng.
Từ những thực trạng trên cho thấy nhu cầu của người nuôi tôm là một hệ thống có thể quan trắc được chất lượng nước phục vụ cho việc nuôi tôm có thể đáp ứng được tính thay đổi liên tục của môi trường và giá thành hợp lý là một dự án vô cùng quan trọng và cấp thiết.
MỤC TIÊU ĐỀ TÀI
Mục tiêu của đề tài này là xây dựng một hệ thống quan trắc nước phục vụ cho môi trường nuôi trồng thủy sản và đặc biệt là nuôi tôm Mô hình có chức năng đo chất lượng nước liên tục theo thời gian thực đáp ứng sự thay đổi của môi trường Mô hình thiết kế để triển khai được trên các vuông nhỏ, vừa và lớn.
Ngoài việc quan trắc chất lượng nước sản phẩm còn có chức năng tự động xử lý nước khi các thông số vượt mức an toàn cho phép bằng phương pháp thay nước thông qua những máy bơm Hệ thống thiết kế có giao diện giám sát chất lượng nước từ xa bằng điện thoại thông minh có kết nối Internet Sản phẩm hướng đến tính di động, hệ thống đo được chất lượng nước mọi nơi trong ao tôm bằng việc di chuyển phao đo.Tổng quan, mục tiêu của đề tài này là xây dựng một hệ thống giám sát và điều chỉnh chất lượng nước tự động đáp ứng thời gian thực.
TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU
Các hộ nông dân hiện nay còn đang thực hiện việc giám sát chất lượng nước thủ công Lấy mẫu mang đến trạm kiểm tra định kỳ gây tốn thời gian mà lại không đáp ứng được sự thay đổi liên tục của môi trường Theo dõi bản tin dự báo của sở nông nghiệp và phát triển nông thôn phát hành về quan trắc chất lượng nước đầu nguồn và tại ao đại diện.
Hiện nay Bộ Nông nghiệp và phát triển nông thôn đã triển khai dự án “Quan trắc môi trường phục vụ nuôi trồng thủy sản” với mục tiêu quan trắc môi trường thường xuyên tại 35 tỉnh trọng điểm chủ lực Tuy nhiên có những lúc môi trường biến động bất thường thì không thể cảnh báo kịp thời do tần suất mỗi lần đo cách xa nhau đến vài ngày Song song đó các công ty triển khai giải pháp giám sát chất lượng nước thông minh đã về triển khai nhưng chi phí triển khai khá tốn kém, chỉ phù hợp với các hộ chăn nuôi công nghiệp, các hộ chỉ có 1-2 vuông thì sự đầu tư này không mang lại lợi nhuận cho người nông dân Hệ thống này cung cấp chức năng đo chất lượng nước và gửi sang điện thoại thông minh cho bà con giám sát.
Nhóm các nhà khoa học thuộc Viện Công nghệ thông tin, Viện Hàn lâm Khoa học và Công nghệ Việt Nam vừa thử nghiệm thành công Hệ thống Internet vạn vật giám sát tự động các chỉ số chất lượng nước nuôi trồng thủy sản, phục vụ cho phát triển nuôi trồng thủy sản công nghệ cao bền vững, nâng cao hiệu quả chăm sóc nuôi trồng thủy sản nhờ áp dụng khoa học - công nghệ, mang lại hiệu quả kinh tế - xã hội.
Trong những năm trở lại đây, các hệ thống theo dõi và kiểm soát môi trường nước ứng dụng IoT để cập nhật kết quả theo thời gian thực cho người sử dụng, giúp người sử dụng có thể phản ứng nhanh chóng, hiệu quả trước những thay đổi bất thường trong nuôi trồng đã được nhiều hộ nuôi đặc biệt quan tâm Có nhiều hệ thiết bị quan trắc môi trường nước do các đơn vị trong và ngoài nước cung cấp phục vụ nuôi tôm thẻ chân trắng như: mô hình ứng dụng công nghệ cao trên nền tảng IoT cho nuôi tôm của Trung tâm Nghiên cứu và thiết kế vi mạch (ICDREC) và Công ty Mimosatek; thiết bị giám sát chất lượng nước ao nuôi E-Sensor Aqua 24/24h qua điện thoại thông minh của Công ty Epulsi; thiết bị quan trắc môi trường nước của TeslaTeq Tuy nhiên, các thiết bị này có chi phí khá cao, nhiều chức năng không cần thiết và chưa phù hợp với điều kiện thực tiễn của từng hộ nuôi Do vậy, ở mô hình nuôi thâm canh trong ao đất và siêu thâm canh trong ao lót bạt thì 100% hộ nuôi chưa trang bị đồng bộ được các thiết bị phục vụ sản xuất, việc theo dõi môi trường ao nuôi thủy sản vẫn được tiến hành bằng các phương pháp truyền thống như dùng nhiệt kế để đo nhiệt độ, dùng bộ kít đo để kiểm tra độ mặn, độ pH, nồng độ oxy Chỉ có 11,1% hộ nuôi với quy mô lớn ở mô hình siêu thâm canh trong bể bạt là sử dụng các thiết bị.[2]
Các vấn đề còn tồn đọng chất lượng nước đang được đo ở các tần suất khá xa nhau, loài tôm rất nhạy cảm với môi trường chỉ cần môi trường thay đổi đột ngột trong vòng
45 phút thì tôm có thể đã chết Kinh phí đầu tư lớn, kết quả đo đạc không ổn định và nhanh hư hỏng do đặc thù phải ngâm trong nước thường xuyên.
Ngành nuôi tôm ở Ấn Độ đã triển khai dự án AquaBot từ năm 2020, một thiết bị tự hành dưới nước giúp quản lý môi trường nuôi và chăm sóc tôm AquaBot được trang bị các cảm biến tiên tiến, bao gồm cảm biến nhiệt độ, độ mặn, oxy hóa khí, và cảm biến hình ảnh để cung cấp các thông tin quan trọng về điều kiện môi trường trong các ao tôm[3].
Các so sánh về ngành nuôi tôm ở Châu Á cho thấy rằng có ở những nước phát triển như Trung Quốc nền kinh tế nuôi tôm có lợi nhuận cao vì họ ứng dụng được công nghệ vào việc nuôi tôm như giám sát thức ăn, vệ sinh ao nuôi, chọn lựa con giống Tuy nhiên chi phí ban đầu rất cao nên các nước kém phát triển hơn không thể đầu tư những trang thiết bị hiện đại được [4].
PHƯƠNG PHÁP
Để đạt được mục tiêu của đề tài, tôi sử dụng các phương pháp thu thập số liệu, thực nghiệm và phân tích tổng kết kinh nghiệm.
Phương pháp thu thập số liệu:
- Sử dụng phương pháp quan sát: Tôi tiến hành quan sát trực tiếp quá trình kiểm tra chất lượng nước của các hộ nuôi tôm ở địa phương Qua việc quan sát, tôi thu thập thông tin về các hoạt động, quy trình và thao tác hiện tại liên quan đến kiểm tra chất lượng nước
- Tiến hành thử nghiệm: Tôi tiến hành đo thử nghiệm các thông số nước để kiểm chứng với giá trị lý thuyết Qua quá trình đo hiệu chỉnh các cảm biến để có được kết quả đo chính xác nhất.
Phương pháp phân tích tổng kết kinh nghiệm:
- Đánh giá hiệu quả: Tôi tiến hành đánh giá hiệu quả của hệ thống dựa trên các tiêu chí đã được xác định trước.
- Phân tích dữ liệu: Dữ liệu sau khi được đo về được chúng tôi kiểm tra và so sánh với tiêu chuẩn chất lượng nước trong nuôi tôm và cài đặt các tiêu chí cho hệ thống.
- Tổng kết kinh nghiệm: Dựa trên kết quả phân tích, tôi tổng kết kinh nghiệm từ việc triển khai hệ thống quan trắc chất lượng nước Sau đó đánh giá ưu điểm, hạn chế và những khó khăn đã gặp phải trong quá trình triển khai hệ thống Từ đó, tôi đề xuất các giải pháp và khuyến nghị để tối ưu hoá hiệu quả hoạt động của hệ thống.
GIỚI HẠN
Đề tài chỉ nghiên cứu về các thông số môi trường nước của loài tôm thẻ chân trắng.
Đề tài này tập trung vào việc nghiên cứu bốn thông số quan trọng trong ao nuôi: nhiệt độ, pH, độ mặn, và nồng độ oxy hòa tan trong nước.
Đề tài sẽ được triển khai trên một ao mô phỏng bằng kính nhằm thuận tiện cho việc quan sát và thu thập dữ liệu.
Việc sử dụng những thiết bị cảm biến vừa có độ chính xác cao và độ bền tốt là vượt ngoài khả năng của sinh viên Vì vậy đề tài sẽ linh động sử dụng các thiết bị cảm biến có giá thành phù hợp và độ tin cậy cao để đáp ứng các tiêu chí đã được đưa ra.
BỐ CỤC
Báo cáo luận văn tốt nghiệp của tôi sẽ bao gồm 5 chương:
Chương 1: Tổng quan Ở chương này, trình bày mục tiêu, giới hạn đề tài, phương pháp nghiên cứu, bố cục và đặt vấn đề.
Chương 2: Cơ sở lí thuyết Ở chương này, trình bày về các linh kiện được sử dụng trong đề tài.
Chương 3: Thiết kế hệ thống Ở chương này, trình bày yêu cầu thiết kế, sơ đồ khối, sơ đồ nguyên lý, nguyên lý hoạt động, lưu đồ giải thuật và mạch in của đề tài.
Chương 4: Kết quả và đánh giá Ở chương này, trình bày kết quả thi công phần cứng và phần mềm cho các khối của hệ thống.
Chương 5: Kết luận – Đánh giá và hướng phát triển Ở chương này trình bày kết quả đạt được sau khi thiết kế và thi công Tổng kết lại, trình bày những ưu điểm, khuyết điểm trong quá trình nghiên cứu và hướng phát triển của đề tài.
CƠ SỞ LÝ THUYẾT
KỸ THUẬT NUÔI TÔM THẺ CHÂN TRẮNG
2.1.1 Đặc điểm sinh học của tôm thẻ chân trắng
Tôm thẻ chân trắng xuất phát từ vùng biển xích đạo của Đông Thái Bình Dương (khu vực Tây Mỹ Latinh), và phân bố rộng rãi ở Tây Thái Bình Dương, Châu Mỹ, Đến nay, tôm thẻ chân trắng đã có mặt ở hầu hết các vùng biển Đông Nam Á, và ở Việt Nam, số lượng nuôi tôm thẻ chân trắng chủ yếu ở miền Nam Tôm thẻ chân trắng có màu trắng sữa, không có sọc trên thân, chân có màu trắng ngà, chân bơi màu vàng, viền đuôi màu xanh đỏ nhạt Râu có màu đỏ gạch và dài gấp rưỡi chiều dài thân Là loài tôm nhiệt đới nên tôm thẻ chân trắng có khả năng thích nghi cao và giới hạn rộng về nhiệt độ Tôm có thể sống trong môi trường kiềm 150, pH 6-8 và nhiệt độ từ 24-35 0 C.[5]
Tôm thẻ chân trắng không có nhu cầu nhiều chất đạm như tôm sú, việc đồ ăn có thêm mực tươi sẽ hoàn hảo hơn cho một ao nuôi tôm thẻ chân trắng Trong môi trường tự nhiên, tôm thẻ chân trắng trưởng thành, giao phối và sinh sản ở biển với độ sâu khoảng 70 mét, nhiệt độ từ 16 – 28 độ C, và độ mặn cao Trứng nở ra ấu trùng và vẫn loanh quanh ở độ sâu này, cho đến giai đoạn Potlarvae chúng bơi vào gần bờ và sinh sống ở đáy tại những khu vực cửa sông nông (nơi có nhiều thức ăn, độ mặn thấp hơn và nhiệt độ cao), sau vài tháng, tôm thẻ chân trắng trưởng thành rồi bơi ra biển và tiếp tục vòng đời sinh sống, giao phối và sinh sản bình thường.
Trong tất cả các thông số thì pH là thông số dễ bị biến động theo môi trường nhất.Khi pH biến động sẽ ảnh hưởng tới các quá trình sinh lý, sinh hóa trong cơ thể tôm,ảnh hưởng đến các yếu tố khác trong ao như tảo, khí độc Nồng độ pH dao động cũng có thể làm biến động giá trị pH của ao làm tôm mất sức đề kháng Để tôm không bị sốc pH thì cần ổn định ở mức pH từ 7.5 đến 8.5 tuy nhiên sự chênh lệch pH giữa buổi sáng và chiều không quá 0.5 đơn vị.[5]
Khi giá trị pH giảm xuống thấp có thể sử dụng vôi bột liều lượng 10-20kg/1000m 3 nước dựa vào giá trị đo được vào thời điểm đó Khi trời mưa phèn trên thành ao có thể trôi xuống ao làm giảm pH có thể xử lý bằng cách rải trước một lương CaO trên bờ ao để trung hòa giá trị pH của nước mưa.
Khi pH tăng nhất là vào những mùa nắng nóng nên xử lý bằng cách thay nước cho ao nhưng cần chú ý thay đổi từ từ tránh để tôm bị sốc nhiệt độ và sốc môi trường.
2.1.3 Thông số nồng độ Oxy hòa tan (DO) [5]
Lượng oxy thích hợp cho tôm sinh trưởng và phát triển là trên 5mg/l Ở nồng độ oxy nhỏ hơn 4gm/l, tôm vẫn bắt mồi bình thường nhưng tiêu hóa thức ăn không hiệu quả Do tỷ lệ chuyển hóa thức ăn giảm khi nồng độ oxy thấp nên tôm dễ nhiễm bệnh,tăng trưởng chậm, dẫn đến giảm lợi nhuận Nếu nồng độ quá thấp (2mg/l – 3mg/l),tôm sẽ dừng bắt mồi và yếu đi nhanh chóng.
Bảng 2.1: Thông số Oxy của tôm
Oxy hòa tan (mg/l) Phản ứng của tôm
4,0-5,0 Tôm tăng trưởng bình thường 5,0-7,0 Tôm khỏe mạnh và tăng trường nhanh
Phương pháp cung cấp oxy và điều chỉnh oxy hòa tan trong ao: Tăng cường độ tảo cho ao nuôi ở mức tương đối vì tảo là nguồn cung cấp oxy chủ yếu cho ao Thả mật độ vừa phải 50-80 con/m 2 , mực nước vừa phải 1,2m nếu bể cao hơn thì tạo Oxy đáy. Dùng quạt cánh hoặc quạt muỗng để tạo Oxy cho ao Tăng cường chạy quạt ban đêm và chạy quạt trước khi ăn với tốc độ quạt 100-120 vòng/phút.
2.1.4 Thông số độ mặn (EC) Độ mặn là thông số ảnh hưởng trực tiếp đến chất lượng của tôm, quá trình lột xác chịu ảnh hưởng sâu sắc bởi yếu tố độ mặn Độ mặn không hợp lý có thể làm tôm chậm lớn, mềm vỏ và tỷ lệ tôm chết tăng lên Độ mặn thích hợp để nuôi tôm chân trắng là từ 10‰ - 25‰ Nếu độ mặn quá cao (>30‰) tôm sẽ chậm lớn vì quá trình lột xác của tôm sẽ gặp khó khăn khi có hàm lượng các khoáng cao Nếu độ mặn thấp tôm cũng dễ phát bệnh do trong nước thiếu các khoáng (Na, Cl, Ca, Fe, ) là những khoáng chất cần thiết cho sự tạo vỏ của tôm.[7]
Hình 2.2: Thông số độ mặn[6] làm tăng độ mặn của ao Dọn lớp mùn bã cho đáy ao giúp làm giảm mùi hôi và khí độc do tảo Thay nước thường xuyên 3 lần/ngày.
Tôm chân trắng thuộc loài máu lạnh, nhiệt độ cơ thể thay đổi theo nhiệt độ môi trường Do đó đây chính là một trong những yếu tố quan trọng ảnh hưởng đến sự tăng trưởng và phát triển của tôm Nhiệt độ có ảnh hưởng tới các quá trình hô hấp, tiêu thụ thức ăn, đồng hóa thức ăn, miễn nhiễm bệnh tật, sự tăng trưởng Đây cũng là yếu tố có sự thay đổi nhanh và có mức chênh lệch đáng kể theo mùa, vị trí địa lý, ngày và đêm Thường nhiệt độ trong ngày cao nhất trong khoảng từ 14-16h và thấp nhất trong khoảng từ 2-5h Sự thay đổi nhiệt độ cao nhất trong một phút mà tôm có thể chịu được là 0,2 0 C Sự thay đổi nhiệt độ đột ngột từ 3-4 0 C/phút sẽ gây sốc, thậm chí chết tôm.[8]
Bảng 2.2: Thông số nhiệt độ
Nhiệt độ Trạng thái tôm
Tại các ao hồ nhiệt đới, nhiệt độ thích hợp cho tôm là từ 23 0 C – 30 0 C Trong các thí nghiệm xem xét mức chịu đựng của tôm ở Hawaii, tôm chân trắng sẽ chết nếu nhiệt độ môi trường nước thấp hơn 15 0 C hoặc cao hơn 34 0 C trong thời gian lớn hơn 24h Ở khoảng nhiệt độ từ 15 0 C-22 0 C hoặc 30 0 C-33 0 C tôm sẽ bị ngạt Khoảng nhiệt độ phù hợp để tôm chân trắng sống và phát triển bình thường là 23 0 C – 30 0 C Thí nghiệm cũng cho thấy khi tôm còn nhỏ (1g) sẽ lớn nhanh hơn ở nhiệt độ 30 0 C, khi tôm ở mức 12g-18g thì nhiệt độ tăng trưởng nhanh nhất là 27 0 C, khi tôm lớn hơn thì nhiệt độ trên
27 0 C sẽ gây bất lợi cho sự tăng trưởng.
THIẾT BỊ PHẦN CỨNG
ESP32 Devkit v1 là một bo mạch phát triển được xây dựng dựa trên module vi điều khiển ESP32-WROOM-32 của Espressif Systems Với vi xử lý hai nhân Tensilica Xtensa LX6 hoạt động ở tốc độ xung nhịp lên đến 240MHz, ESP32-WROOM-32 được tích hợp sẵn Wi-Fi chuẩn 802.11 b/g/n và Bluetooth Low Energy (BLE), cho phép truyền dữ liệu và kết nối mạng không dây một cách linh hoạt.[9]
Bo mạch này cung cấp các giao diện ngoại vi đa dạng như GPIO, UART, SPI, I2C, ADC, DAC và nhiều giao tiếp khác, mở ra khả năng kết nối với nhiều thiết bị và cảm biến khác nhau trong các ứng dụng IoT và nhúng Đồng thời, ESP32-WROOM-32 hỗ trợ các môi trường lập trình phổ biến như Arduino IDE, Espressif IoT Development Framework (ESP-IDF), và PlatformIO, tạo điều kiện thuận lợi cho việc phát triển ứng dụng.[10]
Một trong những điểm đặc biệt của ESP32-WROOM-32 là khả năng cấp nguồn từ cổng microUSB hoặc nguồn ngoại vi qua chân nối DC, giúp nó trở thành lựa chọn ưu việt cho các dự án IoT và các ứng dụng yêu cầu kết nối không dây và đòi hỏi hiệu suất tính toán cao trong một thiết bị nhỏ gọn Điều này làm cho nó trở thành một lựa chọn lý tưởng trong việc phát triển các sản phẩm và dự án IoT hiện đại.
Hình 2.3: Sơ đồ chân ESP32 [10]
ESP32 DevKit V4 có các chân nối (pin headers) để giao tiếp với các module và board mở rộng khác Dưới đây là mô tả sơ bộ về các chân chính trên ESP32 DevKit V1:
ESP32 devboard có 25 chân GPIO (General Purpose Input/Output) có thể được gán các chức năng khác nhau thông qua việc lập trình các thanh ghi tương ứng Có một số loại GPIO khác nhau: chỉ kỹ thuật số, có khả năng cho phép analog, có khả năng cảm ứng điện dung, vv Các GPIO có khả năng cho phép analog và cảm ứng điện dung có thể được cấu hình như GPIO kỹ thuật số Hầu hết các GPIO kỹ thuật số này có thể được cấu hình với pull-up hoặc pull-down nội bộ, hoặc được đặt ở trạng thái trở kháng cao.[9]
Các chân GPIO34, GPIO35, GPIO36 (VP) và GPIO39 (VN) không thể được cấu hình làm chân output Chúng có thể được sử dụng làm đầu vào kỹ thuật số hoặc analog, hoặc cho các mục đích khác Chúng cũng thiếu các điện trở pull-up và pull-down nội bộ, khác với các chân GPIO khác.
Tất cả các chân GPIO đều có thể cấu hình ngắt.
ESP32 tích hợp hai bộ ADC SAR 12-bit và hỗ trợ đo trên 15 kênh (các chân cho phép analog).
ADC của ESP32 là ADC 12-bit, có nghĩa là nó có thể phát hiện 4096 (2^12) mức analog rời rạc Nói cách khác, nó sẽ chuyển đổi các điện áp đầu vào từ 0 đến 3.3V (điện áp hoạt động) thành các giá trị nguyên từ 0 đến 4095 Điều này dẫn đến độ phân giải là 3.3 volt / 4096 đơn vị, tương đương 0.0008 volt (0.8 mV) mỗi đơn vị.
Hơn nữa, độ phân giải ADC và phạm vi kênh được thiết lập bằng chương trình.
Chú ý: các chân ADC2 không thể hoạt hoạt động khi sử dụng wifi.
ESP32 bao gồm hai kênh DAC 8-bit để chuyển đổi tín hiệu kỹ thuật số thành các điện áp analog thực Nó có thể được sử dụng như một "bộ giảm áp kỹ thuật số" để điều khiển các thiết bị analog.
Các DAC này có độ phân giải 8 bit, điều này có nghĩa là các giá trị từ 0 đến 256 sẽ được chuyển đổi thành một điện áp analog từ 0 đến 3.3V. Độ phân giải 8 bit của DAC có thể không đủ cho các ứng dụng âm thanh, trong trường hợp này, việc sử dụng một DAC bên ngoài với độ phân giải cao hơn (12-24 bit) sẽ được ưu tiên.
ESP32 có 9 chân GPIO cảm ứng điện dung Khi một tải điện dung (như một ngón tay người) gần với GPIO, ESP32 phát hiện sự thay đổi về điện dung.
Bạn có thể tạo một bề mặt cảm ứng bằng cách kết nối bất kỳ vật dẫn điện nào vào các chân này, chẳng hạn như giấy nhôm, vải dẫn điện, sơn dẫn điện, và còn nhiều vật liệu khác Do thiết kế ít nhiễu và độ nhạy cao của mạch, bạn có thể tạo ra các bề mặt tương đối nhỏ.
Ngoài ra, các chân cảm ứng điện dung này có thể được sử dụng để đánh thứcESP32 từ chế độ deep-sleep.
ESP32 có hai bus interface I2C, nhưng không có các chân GPIO được dành riêng cho I2C Thay vào đó, nó cho phép việc gán chân linh hoạt, có nghĩa là bất kỳ chân GPIO nào cũng có thể được cấu hình làm I2C SDA (đường dữ liệu) và SCL (đường xung đồng hồ).
Tuy nhiên, GPIO21 (SDA) và GPIO22 (SCL) thường được sử dụng làm các chân I2C mặc định để làm cho việc sử dụng mã Arduino hiện có, thư viện và bản vẽ trở nên dễ dàng hơn cho người dùng.
ESP32 có ba interface SPI (SPI, HSPI và VSPI) ở cả chế độ slave và master.
Bo mạch phát triển ESP32 có ba giao diện UART, UART0, UART1 và UART2, hỗ trợ giao tiếp không đồng bộ (RS232 và RS485) và IrDA lên đến 5 Mbps.
- Các chân UART0 được kết nối với bộ chuyển đổi USB-to-Serial và được sử dụng để nạp và gỡ lỗi Do đó, các chân UART0 không được khuyến nghị sử dụng.
- Các chân UART1 được dành riêng cho chip bộ nhớ flash tích hợp Ngược lại, UART2 là một lựa chọn an toàn để kết nối với các thiết bị UART như GPS, cảm biến vân tay, cảm biến khoảng cách, và những thiết bị khác.
GIAO THỨC TRUYỀN THÔNG
Inter-Integrated Circuit I2C thường được gọi chung là "cổng giao tiếp hai dây" là một máy tính có đầu nối tiếp nhiều bus do Philips phát minh được dùng để gắn các xe tốc độ thấp, thiết bị ngoại vi cho bo mạch chủ, hệ thống nhúng hoặc điện thoại di động hoặc các thiết bị điện tử khác I2C là một nối tiếp hai dây, hai chiều bus cung cấp một phương pháp dữ liệu đơn giản và hiệu quả trao đổi giữa các thiết bị Nó phù hợp nhất cho các ứng dụng yêu cầu liên lạc thường xuyên trong một khoảng cách ngắn giữa nhiều thiết bị Tiêu chuẩn I2C là một bus đa chủ thực sự bao gồm khả năng phát hiện va chạm và phân xử ngăn ngừa hỏng dữ liệu nếu hai hoặc nhiều master cố gắng điều khiển bus cùng một lúc.
I2C chỉ sử dụng hai đường dữ liệu hai chiều, Dữ liệu nối tiếp đường dây (SDA) và xung đồng hồ nối tiếp (SCL), được kéo lên bằng điện trở Điện áp điển hình được sử dụng là +5V hoặc +3,3V mặc dù các hệ thống với các điện áp khác được cho phép.Thiết kế tham chiếu I2C có không gian địa chỉ 7 bit với 16 địa chỉ dành riêng, do đó tối đa 112 nút có thể giao tiếp trên cùng một bus Tốc độ bus I2C phổ biến là chế độ tiêu chuẩn 100 Kbit/s và chế độ tốc độ thấp 10 Kbit/s, nhưng xung nhịp thấp tùy ý tần số cũng được cho phép Các bản sửa đổi gần đây của I2C có thể lưu trữ nhiều nút hơn và chạy ở tốc độ nhanh hơn
I²C định nghĩa ba loại thông báo cơ bản, mỗi loại bắt đầu bằng START và kết thúc bằng STOP:
+ Một tin nhắn đơn trong đó master ghi dữ liệu vào Slave;
+ Một thông báo đơn trong đó master đọc dữ liệu từ một nô lệ;
+ Các thông báo kết hợp, trong đó chủ phát hành ít nhất hai lần đọc và/hoặc ghi vào một hoặc nhiều slave.
Trong một tin nhắn kết hợp, mỗi lần đọc hoặc viết đều bắt đầu bằng một START và địa chỉ slave Sau lần START đầu tiên, những còn được gọi là các bit START lặp lại; các bit START lặp lại là không có bit STOP trước, đó là cách Slave biết lần chuyển tiếp theo là một phần của cùng một tin nhắn Bất kỳ nô lệ nào cũng sẽ chỉ trả lời các tin nhắn cụ thể, như được xác định bởi sản phẩm của nó tài liệu Hệ thống I²C thuần túy hỗ trợ thông báo tùy ý cấu trúc SMBus bị giới hạn ở chín cấu trúc trong số đó STOP kết thúc cho biết khi nào những hành động được nhóm lại sẽ có hiệu lực.Địa chỉ phản hồi cảnh báo SMBus; và các thông điệp liên quan đến giao thức phân giải địa chỉ SMBus (ARP) cho động cấp phát và quản lý địa chỉ Trong thực tế, hầu hết Slave áp dụng các mô hình kiểm soát yêu cầu/phản hồi, trong đó một hoặc nhiều byte theo sau lệnh ghi được coi là lệnh hoặc địa chỉ Những byte đó xác định cách ghi byte tiếp theo được xử lý và/hoặc cách nô lệ phản hồi trong các lần đọc tiếp theo.[22]
WiFi (viết tắt của Wireless Fidelity hoặc mạng 802.11) là hệ thống mạng không dây sử dụng sóng vô tuyến, tương tự như điện thoại di động, truyền hình và radio WiFi thường là lựa chọn hàng đầu của nhiều kỹ sư giải pháp nhờ tính tiện dụng và hiệu quả kinh tế, đặc biệt khi triển khai mạng LAN trong phạm vi địa lý hạn chế Sóng vô tuyến dùng cho WiFi tương tự như sóng vô tuyến dùng cho điện thoại di động và các thiết bị cầm tay khác, cho phép truyền và nhận dữ liệu bằng cách chuyển đổi các mã nhị phân 1 và 0 sang sóng vô tuyến và ngược lại.Điểm khác biệt của sóng WiFi là chúng hoạt động ở tần số 2.4 GHz hoặc 5 GHz, cao hơn so
TCP/IP là một giao thức truyền thông được sử dụng để kết nối các thiết bị trên mạng Internet Giao thức này quy định cách dữ liệu được trao đổi qua internet bằng cách cung cấp thông tin liên lạc từ đầu đến cuối, xác định cách chia dữ liệu thành các gói, đánh địa chỉ, truyền, định tuyến và nhận tại đích TCP/IP yêu cầu ít quản lý trung tâm và được thiết kế để làm cho mạng trở nên đáng tin cậy, với khả năng phục hồi tự động khi xảy ra lỗi ở bất kỳ thiết bị nào trên mạng TCP/IP hoạt động dựa trên mô hình Server và Client, được phân loại là không trạng thái vì mỗi yêu cầu từ Client đều được coi là mới, giúp giải phóng các đường dẫn mạng và duy trì hoạt động liên tục TCP/IP không bị độc quyền bởi bất kỳ công ty hay tổ chức nào, do đó có thể dễ dàng sửa đổi và giao tiếp với bất kỳ hệ thống nào TCP/IP có thể được sử dụng để cung cấp khả năng đăng nhập từ xa, truyền tệp, gửi email, trang web qua mạng và truy cập từ xa vào hệ thống tệp của máy chủ lưu trữ Tổng quát, TCP/IP biểu thị cách thông tin thay đổi hình dạng khi nó di chuyển qua mạng từ lớp vật lý cụ thể đến lớp ứng dụng trừu tượng, chi tiết các giao thức hoặc phương thức liên lạc ở mỗi lớp khi thông tin đi qua.[22]
SPI là giao thức truyền thông dữ liệu có dây, các bit được truyền song song với nhau với mỗi dây là một bit riêng biệt Dữ liệu được truyền đi bằng giao thức SPI không bị gián đoạn có thể gửi nhận trong một luồng liên tục Các thiết bị sử dụng giao thức SPI thường sẽ chia làm hai cấp master và slave, với câu s hình đơn giản nhất là một master và một slave Master thường là thiết bị điều khiển, slave thường là các module hiển thị hoặc cảm biến.
SPI hoạt động dựa theo xung clock giúp đồng bộ hóa đầu ra của các bit dữ liệu từ master đến việc lấy mẫu các bit của slave Mỗi chu kỳ xung nhịp thì một bit sẽ được truyền nên tốc độ truyền dữ liệu được xác định bởi tần số của tín hiệu clock.
Hình 2.15: Giao tiếp giữa Master và Slave[23]
Master có thể lựa chọn Slave để giao tiếp bằng cách thay đổi tín hiệu ở chân CS/SS ở mức thấp Master có thể cho phép nhiều slave kết nối song song, Nếu chỉ có một chân CS/SS, nhiều nô lệ có thể được nối với chân chính bằng cách nối chuỗi Trong một hệ thống truyền thông SPI (Serial Peripheral Interface), dữ liệu được truyền từ master đến slave thông qua đường MOSI (Master Out Slave In), với bit quan trọng nhất được gửi trước Tại slave, dữ liệu nhận được từ master thông qua chân MOSI Slave cũng có khả năng trả lời lại dữ liệu cho master thông qua đường MISO (Master In Slave Out), với bit ít quan trọng nhất được gửi trước Dữ liệu trả về từ slave tới master thường được truyền qua đường này.
SPI không sử dụng bit dừng và bit bắt đầu do đó dữ liệu được truyền nhận một cách liên tục Không đánh địa chỉ phức tạp, tốc độ truyền nhanh, tách biệt MISO vàMOSI thành 2 đường riêng biệt có thể truyền và nhận dữ liệu cùng lúc Tuy nhiên giao thức SPI cũng có một số nhược điểm như không kiểm tra Parity bit để biết dữ liệu nhận và truyền chính xác chưa, chỉ cho phép mô hình có 1 Master duy nhất, sử dụng nhiều dây tín hiệu hơn.[23]
ANDROID STUDIO
Android Studio là một môi trường tích hợp phát triển (Integrated DevelopmentEnvironment – IDE) được phát triển bởi Google dành cho việc phát triển ứng dụng cung cấp một giao diện rất trực quan đễ dàng quan sát khi thiết kế với trình biên dịch và trình gỡ lỗi với các công cụ xử lý mạnh mẽ Hỗ trợ viết code với hai ngôn ngữ là Java và Kotlin và công cụ của Android.
Công cụ này là một môi trường phát triển tích hợp (IDE) mạnh mẽ dành riêng cho lập trình Android, với nhiều tính năng hỗ trợ toàn diện cho quá trình phát triển ứng dụng Các tính năng chính bao gồm trình biên dịch tích hợp, cho phép chuyển đổi mã nguồn thành mã máy chạy trên thiết bị Android, và trình gỡ lỗi chi tiết, giúp phát hiện và sửa lỗi hiệu quả Công cụ này cũng hỗ trợ trình quản lý dự án, giúp tổ chức và quản lý các thư viện, tệp tin và tài nguyên một cách dễ dàng Ngoài ra, nó cung cấp công cụ thiết kế giao diện trực quan, cho phép tạo và chỉnh sửa giao diện người dùng qua thao tác kéo thả và chỉnh sửa mã XML trực tiếp Nhà phát triển có thể truy cập vào các tài liệu chính thức từ Google, các diễn đàn lập trình viên Android và nhiều nguồn tài liệu trực tuyến khác để tìm hiểu và giải quyết các vấn đề phát triển Công cụ được đề cập có thể chính là Android Studio, IDE chính thức của Google dành cho phát triển ứng dụng Android, cung cấp đầy đủ các tính năng trên và được hỗ trợ mạnh mẽ từ Google và cộng đồng lập trình viên.
THIẾT KẾ HỆ THỐNG
TỔNG QUAN HỆ THỐNG
Hệ thống gồm những chức năng chính như đo thông số chất lượng nước theo thời gian thực, tự động điều khiển các thiết bị khi thông số chất lượng nước vượt ngưỡng cho phép, chức năng bán tự động điều khiển thiết bị qua ứng dụng trên điện thoại thông minh có kết nối internet, chức năng điều khiển thiết bị thông qua các nút điều khiển vật lý trên bộ Master, chức năng gửi cảnh báo khi có thông số vượt ngưỡng cho phép.
Hình 3.1: Mô hình tổng thể hệ thống
Với những chức năng trên hệ thống được chia thành hai bộ gồm một Master và một Slave, Slave sẽ có nhiệm vụ đo chất lượng môi trường nước trong ao tôm theo thời gian thực sau đó gửi dữ liệu đo được về bộ Master Bộ Slave được thiết kế có thể đặt ở bất kỳ vị trí nào trên ao tôm, có tính di động và chu kỳ đo đáp ứng thời gian thực trên thực tế Vì vị trí đặt có tính di động nên phải được cấp nguồn từ Pin mặt trời BộMaster sẽ được đặt trong bờ nơi có thể kết nối được với các máy bơm xử lý nước cho
3.1.2 Sơ đồ khối tổng thể của hệ thống
Hình 3.2: Sơ đồ khối tổng thể hệ thống
- Tổng thể hệ thống gồm 2 module:
+ Module thu thập dữ liệu có chức năng đo và gửi các dữ liệu môi trường tới module điều khiển.
+ Module điều khiển có chức năng nhận dữ liệu từ module thu thập dữ liệu, điều khiển các máy bơm, hiện thị các thông số lên LCD và giao tiếp với Firebase server
- Module thu thập dữ liệu và module điều khiển giao tiếp không giây qua mạng truyền thông Lora.
- Khối App giao tiếp với khối xử lý 2 qua Firebase server bằng wifi.
3.1.3 Chức năng từng khối a Khối cảm biến
Gồm 4 cảm biến pH, Oxy, độ mặn và nhiệt độ Có chức năng thu thập dữ liệu chất lượng nước trong ao tôm.
Bảng 3.1: Bản sơ đồ nối chân khối cảm biến
Vcc (Oxy) Vcc(độ mặn) Vcc (nhiệt độ)
GNG (Oxy) GNG (độ mặn) GNG( nhiệt độ)
* Sơ đồ kết nối b Khối xử lý 1
Khối xử lý 1 là một esp32 giao tiếp không dây 1-1 với khối xử lý 2 qua mạng truyền thông Lora Khối có chức năng nhận dữ liệu từ cảm biến, đóng gói và gửi đến khối xử lý 2. c Khối nguồn 1
Bảng 3.2: Bảng tính toán nguồn Module thu thập dữ liệu
Linh kiện / Thiết bị Điện áp hoạt động
Dòng hoạt động tối đa
Module Lora Ra02 (chế độ truyền) 3.3VDC 120mA 0.396W
Cảm biến pH, độ mặn, nồng độ oxy hòa tan 5VDC 10mA 0.05x3=0.15W
Cảm biến nhiệt độ DS18B20 5VDC 1.5mA 0.0075W
Nguồn cần sử dụng 5VDC 0.4A 1.48W
Sau khi phân tích và tính toán, bỏ qua các linh kiện sử dụng công suất tương đối nhỏ, có thể kết luận hệ thống tiêu thụ công suất :
0.858W + 0.396W + 0.05W*3 + 0.0075 = 1.48W Đề tài sử dụng nguồn cấp 5V-1.5A (7.5W) được cấp từ pin lưu trữ của tấm năng lượng mặt trời. d Khối xử lý 2
Khối xử lý 2 là một Esp32 giao tiếp không dây 1-1 với khối xử lý 1 qua mạng truyền thông Lora Có chức năng:
- Phân tách dữ liệu nhận từ Module thu thập dữ liệu (Task Lora).
- Cập nhật và nhận dữ liệu từ Firebase server (Task giao tiếp Firebase).
- Điều khiển các máy bơm từ trạng thái các nút nhấn (Task điều khiển vật lý). e Khối Firebase
Là khối trung gian để khối xử lý 1 truyền nhận dữ liệu với khối App Cụ thể, khối này lưu trữ trạng thái các nút nhấn và giá trị các thông số.
Hình 3.4: Dữ liệu trên Firebase
Hình trên là giao diện từ cơ sở dữ liệu Firebase, hiển thị các thông số và trạng thái hiện tại của một hệ thống điều khiển. f Khối tác động
- 5 nút nhấn và 4 máy bơm:
+ Nút mode: dùng để chọn chế độ điều khiển bằng nút nhấn
+ Nút bơm ra: điều khiển máy bơm nước ra.
+ Nút bơm tăng: điều khiển máy bơm nước có độ mặn cao.
+ Nút bơm giảm: điều khiển máy bơm nước có độ mặn thấp.
+ Nút bơm oxy: điều khiển máy bơm sục oxy.
- Module 4 relay: lấy tín hiệu điều khiển cho 4 máy bơm từ Esp32.
Bảng 3.3: Sơ đồ kết nối ESP32 với Relay
ESP32 Devkit Module Module relay
Bảng 3.4: Sơ đồ kết nối ESP32 với nút nhấn
ESP32 Devkit Module Nút nhấn
Hình 3.6: Sơ đồ kết nối ESP32 với nút nhấn g Khối hiển thị
Màn hình LCD 20x4 được lựa chọn để sử dụng trong đề tài vì chỉ đo 4 thông số của môi trường là nhiệt độ, nồng độ oxy hòa tan, độ pH, độ mặn LCD có thể thể hiện được 4 thông số tại một thời điểm, giá thành thấp độ tương phản ổn định và có thể chỉnh được Màn hình sẽ được tích hợp thêm module I2C để đọc và chuyển đổi tín hiệu từ vi điều khiển.
Bảng 3.5: Sơ đồ kết nối LCD với Module I2C
Bảng 3.6: Sơ đồ kết nối ESP32 với I2C
Hình 3.7: Sơ đồ kết nối màn hình LCD h Khối lora 1 và lora 2
Có chức năng truyền và nhận dự liệu giữa khối xử lý 1 và 2.
Bảng 3.7: Sơ đồ kết nối ESP32 với module Lora
Hình 3.8: Sơ đồ nối chân module LoRa Ra-02 và Esp32 i Khối ứng dụng di động Ứng dụng được cài đặt trên điên thoại android hoặc mô phỏng trên máy tính, có chức năng theo dỏi các thông số của ao, điều khiển các máy bơm bằng các nút nhấn ảo và hiện thông báo khi có chỉ số vượt ngưỡng. Ứng dụng kết nối với Firebase server để cập nhận các chỉ số của ao và trạng thái các nút nhấn. j Khối nguồn 2
Bảng 3.8: Bảng tính toán nguồn cho khối tác động
Linh kiện / Thiết bị Điện áp hoạt động
Dòng hoạt động tối đa
Máy bơm R385 12VDC 0.7A 8.4W Đèn báo AD16 12VDC 20mA 0.96W
Sau khi phân tích và tính toán, bỏ qua các linh kiện sử dụng công suất tương đối nhỏ, có thể kết luận hệ thống tiêu thụ công suất :
+ Công suất tối đa 3 máy bơm (tăng/giảm, oxy, bơm ra) hoạt động cùng lúc:
+ Công suất tối đa 3 đèn báo hoạt động cùng lúc: 0.96 x 3=2.88W.
Tổng công suất tối đa tiêu thụ tại một thời điểm: 25.2W + 2.88W = 28.08W. Đề tài sử dụng nguồn tổ ong 12V-3A (36W) để cung cấp điện năng cho khối tác động hoạt động.
Bảng 3.9: Bảng tính toán nguồn cho Module điều khiển
Linh kiện / Thiết bị Điện áp hoạt động
Dòng hoạt động tối đa
Tổng công suất tiêu thụ: 1.3W + 0.015W + 4W + 0.033W =5.348W
Sau khi phân tích và tính toán, loại bỏ một vài linh kiện tiêu thụ công suất không đáng kể, đề tài sử dụng Adapter 5V-2A (10W) để cung cấp cho ESP32.
Bảng 3.10: Sơ đồ kết nối nguồn tổ ong và Module relay
Nguồn tổ ong Module relay
THIẾT KẾ PHẦN CỨNG
- Hệ thống phải đo chính xác các thông số chất lượng nước như nhiệt độ, pH, độ mặn, nồng độ Oxy hòa tan trong nước.
- Hệ thống có 3 chế độ hoạt động là điều khiển vật lý, điều khiển tự động và điều khiển qua ứng dụng điện thoại.
- Độ trễ thấp để các thao tác điều khiển được hoạt động mượt mà.
- Module thu thập dữ liệu phải nổi được trên mặt nước và có tính di động để đo được tại nhiều vị trí trên phao.
- Có nguồn để Module thu thập dữ liệu hoạt động trên ao.
3.2.2 Lưu đồ giải thuật phần cứng
Hình 3.9: Lưu đồ module thu thập dữ liệu
Module thu thập dữ liệu nhận thông số từ các cảm biến (nhiệt độ, độ mặn, độ pH và nồng độ oxy hòa tan DO) Sau đó, tạo chuỗi dữ liệu data để gửi đến đến module điều khiển qua mạng Lora.
Hình 3.10: Lưu đồ module điều khiển
Module điều khiển sử dụng hệ điều hành freeRTOS để chạy 3 tác vụ song song gồm:
- Tác vụ nhận dữ liệu từ Lora: Nhận chuỗi dữ liệu từ module thu thập dữ liệu, lấy các giá trị chỉ số môi trường trong chuỗi và hiển thị lên LCD.
- Tác vụ giao tiếp với Firebase: Cập nhật giữ liệu môi tường ao và trạng thái các nút nhấn lên Firebase Tác vụ này điều khiển máy bơm oxy ở chế độ tự động.
- Tác vụ điều khiển vật lý: Bật tắt các máy bơm theo trạng thái các nút nhấn vật lý. Tác vụ này điều khiển máy bơm tăng( bơm nước có độ mặn cao vào ao), bơm giảm( bơm nước có độ mặn thấp vào ao) và bơm nước ra khỏi ao ở chế độ tự động. Việc đặt hoạt động tự động của máy bơm oxy trong tác vụ Firebase và các máy bơm còn lại trong tác vụ điều khiển nhằm mục đích để máy bơm oxy hoạt động tự động liên tục và giảm độ trễ của chương trình.
Các biến chỉ số môi trường ao (nhiệt độ, độ mặn, độ pH và DO) và trạng thái các
Hình 3.11: Lưu đồ tác vụ Lora
Khi nhận được dữ liệu là chuỗi data từ gói tin của module thu thập dữ liệu, tác vụLora sẽ tách các chỉ số nhiệt độ, độ pH, độ mặn và nồng độ oxy hòa tan và đưa vào các biến tương ứng Sau đó hiện thị các chỉ số lên màn hình LCD.
Hình 3.12: Lưu đồ tác vụ giao tiếp Firebase
Nút nhấn mode là nút nhấn trên tủ điện của module điều khiển, dùng để thiết lập chế độ điều khiển máy bơm bằng nút nhấn vật lý.
Nút nhấn mode 2 là nút nhấn ảo trên ứng dụng android, dùng để thiết lập chế độ điều khiển máy bơm bằng các nút nhấn trên ứng dụng Nút mode 2 có độ ưu tiên thấp hơn nút mode. Đầu tiên, tác vụ sẽ cập nhật giá trị các thông số lên Firebase server Sau đó đọc giá trị nút nhấn mode 2 từ Firebase.
Bảng 3.11: Bảng chế độ hoạt động của hệ thông theo nút mode và mode 2
Nút mode Nút mode 2 Chế độ
Hình 3.13: Lưu đồ bật tắt máy bơm oxy tự động
Khi nút nhấn mode và nút nhấn mode 2 cùng không được nhấn, hệ thống sẽ hoạt động ở chế độ tự động Trong tác vụ này, máy bơm oxy sẽ được điều khiển tự động bằng cách kiểm tra so với ngưỡng được thiết lập sẵn nếu vượt ngưỡng này sẽ tự động bật máy bơm tạo oxy cho ao nuôi.
Hình 3.14: Lưu đồ điều khiển các máy bơm theo app Ở chế độ điều khiển theo app, module điều khiển sẽ đọc trạng thái các nút nhấn từFirebase để bật tắt các máy bơm Sau đó sẽ đặt lại trạng thái máy bơm vào biến tương ứng.
Hình 3.15: Lưu đồ điều khiển máy bơm ra theo App Đầu tiên, chương trình truy vấn dữ liệu từ Firebase tại đường dẫn "/Bom ra" và lưu kết quả vào biến firebaseData Sau đó, nó kiểm tra giá trị của firebaseData Nếu giá trị nhận được là "1", chân in_ra sẽ được đặt lên mức cao (HIGH) bằng cách sử dụng hàm digitalWrite(in_ra, HIGH), đồng thời cập nhật trạng thái state_ra là 1, biểu thị rằng thiết bị đang bật Ngược lại, nếu giá trị nhận được không phải là "1", chân in_ra sẽ được đặt xuống mức thấp (LOW) bằng cách sử dụng hàm digitalWrite(in_ra, LOW), và trạng thái state_ra được cập nhật là 0, biểu thị rằng thiết bị đang tắt.
Hình 3.16: Lưu đồ điều khiển máy bơm tăng theo App Đầu tiên, chương trình truy vấn dữ liệu từ Firebase tại đường dẫn "/Bom tang" và lưu kết quả vào biến firebaseData Sau đó, nó kiểm tra giá trị của firebaseData Nếu giá trị nhận được là "1", chân in_tang sẽ được đặt lên mức cao (HIGH) bằng cách sử dụng hàm digitalWrite(in_tang, HIGH), đồng thời cập nhật trạng thái state_ra là 1,biểu thị rằng thiết bị đang bật Ngược lại, nếu giá trị nhận được không phải là "1",chân in_tang sẽ được đặt xuống mức thấp (LOW) bằng cách sử dụng hàm digitalWrite(in_tang, LOW), và trạng thái state_tang được cập nhật là 0, biểu thị rằng
Hình 3.17: Lưu đồ điều khiển máy bơm giảm theo App Đầu tiên, chương trình truy vấn dữ liệu từ Firebase tại đường dẫn "/Bom giam" và lưu kết quả vào biến firebaseData Sau đó, nó kiểm tra giá trị của firebaseData Nếu giá trị nhận được là "1", chân in_tang sẽ được đặt lên mức cao (HIGH) bằng cách sử dụng hàm digitalWrite(in_giam, HIGH), đồng thời cập nhật trạng thái state_giam là 1,biểu thị rằng thiết bị đang bật Ngược lại, nếu giá trị nhận được không phải là "1",chân in_giam sẽ được đặt xuống mức thấp (LOW) bằng cách sử dụng hàm digitalWrite(in_giam, LOW), và trạng thái state_giam được cập nhật là 0, biểu thị rằng thiết bị đang tắt.
Hình 3.18: Lưu đồ điều khiển máy bơm oxy theo App Đầu tiên, chương trình truy vấn dữ liệu từ Firebase tại đường dẫn "/Bom oxy" và lưu kết quả vào biến firebaseData Sau đó, nó kiểm tra giá trị của firebaseData Nếu giá trị nhận được là "1", chân in_oxy sẽ được đặt lên mức cao (HIGH) bằng cách sử dụng hàm digitalWrite(in_oxy, HIGH), đồng thời cập nhật trạng thái state_ra là 1, biểu thị rằng thiết bị đang bật Ngược lại, nếu giá trị nhận được không phải là "1", chân in_oxy sẽ được đặt xuống mức thấp (LOW) bằng cách sử dụng hàm digitalWrite(in_oxy, LOW), và trạng thái state_oxy được cập nhật là 0, biểu thị rằng
Hình 3.19: Lưu đồ tác vụ điều khiển vật lý
Trong tác vụ này, hệ thống sẽ đọc giá trị các nút nhấn mode và mode 2 để chọn chế độ và điều khiển các máy bơm (theo bảng 3.11) Nếu nút mode được nhấn thì hệ thống sẽ hoạt động ở chế độ điều khiển bằng nút nhấn vật lý Nếu nút mode và mode 2 cùng không được nhấn thì hệ thống sẽ hoạt động ở chế độ điều khiển tự động máy bơm tăng, bơm giảm và bơm ra.
Hình 3.20: Lưu đồ điều khiển máy bơm theo nút nhấn vật lý Ở chế độ điều khiển vật lý, module điều khiển sẽ đọc trạng thái các nút nhấn trên tủ để bật tắt các máy bơm Sau đó sẽ đặt lại trạng thái máy bơm vào biến tương ứng.
Chương trình kiểm ra giá trị nút nhấn bơm ra (BTN_RA) Nếu giá trị nút nhấn bằng 1 thì chân in_ra sẽ được đặt lên mức cao (HIGH) bằng cách sử dụng hàm digitalWrite(in_ra, HIGH), đồng thời cập nhật trạng thái state_ra là 1, biểu thị rằng thiết bị đang bật Ngược lại, nếu giá trị nhận được không phải là 1 thì chân in_ra sẽ được đặt xuống mức thấp (LOW) bằng cách sử dụng hàm digitalWrite(in_ra, LOW), và trạng thái state_ra được cập nhật là 0, biểu thị rằng thiết bị đang tắt.
Hình 3.22: Lưu đồ điều khiển máy bơm tăng theo nút nhấn vật lý
THIẾT KẾ PHẦN MỀM
Giao diện được thiết kế với các chức năng như đăng nập bảo mật, quan sát trạng thái máy bơm, điều khiển máy bơm, cập nhật các thông báo nếu có thông số vượt giới hạn cho phép.
* Chức năng đăng nhập Để vào được giao diện quản lý ao nuôi người dùng cần phải có tài khoản và mật khẩu để thực hiện việc đăng nhập và có chức năng tạo tài khoản mới nếu người dùng muốn thêm tài khoản quản lý Việc đăng nhập giúp tăng tính bảo mật của ứng dụng quản lý phòng tránh các trường hợp người khác có thể thực hiện các hành vi không đúng tác động đến ao nuôi Sau khi nhập tài khoản và mật khẩu, tài khoản và mật khẩu này sẽ được so sánh với điều kiện đã đặt trước đó nếu đúng sẽ được chuyển đến trang quản lý thiết bị.
* Chức năng quan sát thông số và trạng thái hoạt động
Trạng thái của các máy bơm luôn được cập nhật theo thời gian thực lên ứng dụng quản lý ao nuôi, người dùng có thể quan sát được trạng thái máy bơm nào đang được bật, máy bơm nào đang tắt hoặc hệ thống đang hoạt động ở chế độ nào tự động hay thủ
* Chức năng điều khiển Ứng dụng cung cấp chức năng thao tác điều khiển các thiết bị của ao nuôi nếu hệ thống đang ở chế độ bán tự động Các thao tác điều khiển sẽ cập nhật trạng thái của thiết bị lên Database Firebase và vi điều khiển ESP32 sẽ đọc trạng thái và tác động đến các thiết bị.
* Chức năng thông báo nếu có thông số vượt ngưỡng
Giá trị các thông số sẽ được đọc từ Firebase và xử lý theo thông số của tôm Nếu thông số nào vượt ngưỡng cho phép thì hệ thống sẽ gửi cảnh báo về điện thoại Chức năng này giúp cho người dùng có thể kịp thời xử lý để tránh thiệt hại nặng Khi gửi cảnh báo nếu trạng thái hoạt động của hệ thống đang là tự động thì hệ thống sẽ tự tác động để thông số không vượt ngưỡng.
3.3.2 Thiết kế giao diện App
3.3.2.1 Kết nối App với Firebase
- Sử dụng công cụ Firebase Assistant tích hợp sẵn để kết nối dự án Android Studio với Firebase Đầu tiên, mở dự án Android trong Android Studio và truy cập Firebase Assistant qua menu Tools > Firebase.
Hình 3.27: Công cụ Firebase Assistant
- Chọn dịch vụ Realtime Database, rồi nhấp vào Connect to Firebase.
Hình 3.28: Dịch vụ Realtime Database
Một trình duyệt sẽ mở ra để chọn hoặc tạo mới một dự án Firebase.
Hình 3.29: Trình duyệt chọn dự án
Sau khi kết nối thành công, Firebase Assistant sẽ hướng dẫn thêm các dependencies cần thiết vào file build.gradle và yêu cầu đồng bộ dự án Sau khi hoàn tất, dự án Android đã sẵn sàng sử dụng các dịch vụ của Firebase.
3.3.2.2 Thiết kế giao diện đăng nhập App
- Sử dụng EditText để nhập tên người dùng và mật khẩu, cùng với các nút bấm (Button) để thực hiện các chức năng đăng ký, đăng nhập và thoát ứng dụng.
Hình 3.30: Thiết kế giao diện đăng nhập
- Sử dụng hộp thoại tuỳ chỉnh (Dialog) để khi nhấn nút đăng ký (btndangky) thì hộp thoại mở ra cho phép nhập tên tài khoản và mật khẩu mới Dùng nút "Đồng ý" trong hộp thoại để lấy thông tin và hiển thị trên các trường nhập liệu (EditText) của màn hình đăng nhập.
Hình 3.31: Hộp thoại đăng ký
- Sử dụng hộp thoại tuỳ chỉnh (Dialog) để khi nhấn nút thoát (btnthoat) thì hộp thoại mở ra để xác nhận lại yêu cầu thoát App.
3.3.2.3 Thiết kế giao diện quản lý ao
- Thiết kế giao diện quản lý theo chiều dọc, dễ quan sát.
- Sử dụng Textview để hiển thị tên ao và các thông số của ao như nhiệt độ, pH, độ mặn, nồng độ oxy hòa tan.
- Sử dụng Switch để chuyển đổi các chế độ hoạt động của hệ thống và điều khiển các máy bơm.
- Thiết kế mũi tên quay lại trên tên ao để quay lại giao diện đăng nhập.
- Công tắc của các máy bơm và chế độ điều khiển được liên kết với các sự kiện thay đổi dữ liệu trên Firebase, đảm bảo cập nhật trạng thái theo thời gian thực.
Hình 3.32: Thiết kế giao diện quản lý ao
3.3.2.4 Thiết kế giao diện cảnh báo vượt ngưỡng
- Khi một thông số môi trường vượt ngưỡng cho phép, ứng dụng sẽ gửi thông báo cảnh báo tới người dùng Thông báo này bao gồm thông tin về chỉ số hiện tại và ngưỡng an toàn.
- Xây dựng hàm sendNotification nhận vào các tham số: chiso (chỉ số cần cảnh báo), gtri (giá trị hiện tại của chỉ số), và nguong (ngưỡng an toàn).
- Đầu tiên, hàm này tạo một đối tượng Bitmap từ tài nguyên hình ảnh Nếu thiết bị chạy Android 8.0 trở lên, một NotificationChannel được tạo để quản lý thông báo. Tiếp theo, hàm tạo thông báo sử dụng NotificationCompat.Builder, thiết lập tiêu đề, nội dung, biểu tượng và màu sắc cho thông báo Cuối cùng, thông báo được hiển thị bằng cách sử dụng NotificationManager.
Bên cạnh đó, hàm getNotificationId trả về một ID duy nhất cho mỗi thông báo dựa trên thời gian hiện tại Điều này giúp đảm bảo mỗi thông báo có một ID riêng biệt,tránh tình trạng các thông báo bị ghi đè lên nhau Cụ thể, hàm này sử dụng thời gian
Hình 3.33: Thiết kế cảnh báo vượt ngưỡng
3.3.3 Lưu đồ giải thuật phần mềm
Hình 3.34: Lưu đồ giải thuật của ứng dụng Android Ứng dụng được sử dụng để điều khiển các máy bơm và hiển thị các thông số môi trường như nhiệt độ, độ mặn, DO (Dissolved Oxygen), và pH trên màn hình điện thoại. Quá trình hoạt động của ứng dụng được mô tả như sau:
- Đăng nhập: Người dùng phải đăng nhập vào ứng dụng.
+ Nếu nhấn nút thoát: Thoát khỏi ứng dụng.
+ Nếu nhấn đăng ký: hộp thoại đăng ký sẽ xuất hiện để người dùng nhập tài khoản và mật khẩu.
+Khi muốn đăng nhập: nhập tài khoản và mật khẩu đã được đăng ký trước đó và
+ Nếu đăng nhập thành công ứng sẽ chuyển sang giao diện quản lý ao.
+Nếu đăng nhập không thành công sẽ hiển thị thông báo thông tin đăng nhập không chính xác.
Hình 3.35: Lưu đồ chức năng đăng nhập
- Kiểm tra kết nối Wi-Fi: Sau khi đăng nhập thành công, ứng dụng kiểm tra kết nốiWi-Fi Ứng dụng đợi đến khi nào có kết nói wifi mới có thể hoạt động.
KẾT QUẢ VÀ ĐÁNH GIÁ
KẾT QUẢ THIẾT KẾ PHẦN CỨNG
Hình 4.1: Phần cứng hệ thống
Phần cứng hệ thống gồm 2 module:
+ Module xử lý dữ liệu(bên trái): hiển thị LCD, điều khiển máy bơm và kết nối với ứng dụng Android.
+ Module thu thập dữ liệu (bên phải): thu thập dữ liệu chất lượng nước: nhiệt độ, pH, nồng độ oxy hòa tan từ các cảm biến.
Hình 4.2: Bên trong hộp module điều khiển
Module gồm có nguồn tổ ong 12V để cấp năng lượng cho hệ thống.
Module 4 relay dùng để điều khiển máy bơm.
Hình 4.3: Bên trong hộp module cảm biến
Module cảm biến (client) sau khi thu thập các thông số môi trường sẽ thiết lập kết nối với module điều khiển (server) và gửi dữ liệu.
Khi nhận được dữ liệu từ client, bên server sẽ tách các thông số chất lượng nước ra khỏi chuỗi tin nhắn.
Hình 4.5: Hiển thị dữ liệu ra LCD
Các thông số sau khi qua hàm tach_chuoi sẽ được hiện thị lên màn hình LCD phục vụ việc quan sát Các thông số này được cập nhật theo thời gian thực.
- Sử dụng hệ điều hành RTOS, với các tác vụ hoạt động độc lập giúp giảm độ trễ cho hệ thống.
- Thao tác bật/tắt các máy bơm có độ phản hồi khoảng 0.5s.
- Hệ thống cập nhật được các thông số lên LCD và giao diện ứng dụng.
- Phạm vi truyền nhận dữ liệu 250m ( có vật cản).
- Pin mặt trời cung cấp đủ năng lượng cho Module thu thập dữ liệu hoạt động.
Hình 4.6: Ảnh đo thực tế cảm biến nhiệt độ Bảng 4.1: Kết quả đo thông số nhiệt độ
STT Giá trị đo của hệ thống (x)
- Cảm biến nhiệt độ hoạt động tốt sai số so với nhiệt kế thấp (0.05oC)
- Giá trị tham chiếu với nhiệt kế điện tử MISUTA
Hình 4.7: Ảnh đo thực tế cảm biến EC Bảng 4.2: Kết quả đo thông số độ mặn
STT Giá trị đo của hệ thống (x) Giá trị tham chiếu (y) Sai số tuyệt đối
- Cảm biến đo độ mặn hoạt động tốt với độ sai số thấp.
- Tham chiều với nước muối sinh lý Safin nồng độ 0.9% (độ mặn 9‰).
Hình 4.8: Ảnh đo thực tế cảm biến pH Bảng 4.3: Kết quả đo thông số pH (tại 32 o C)
STT Giá trị đo của hệ thống (x) Giá trị tham chiếu (y) Sai số tuyệt đối
- Cảm biến pH hoạt động tốt, sai số so với dung dịch chuẩn thấp.
Hình 4.9: Dung dịch hiệu chuẩn pH 4.01 và pH 6.86
- Cảm biến nồng độ Oxy hoàn tan có tốc độ phản hồi nhanh.
Hình 4.10: Ảnh đo thực tế cảm biến DO
- Khoảng cách truyền nhận giữa 2 Module Lora Ra02.
Bảng4 4: Khoảng cách truyền nhận giữa hai Module
Hình 4.11: Ảnh đo khoảng cách giữa hai Module
KẾT QUẢ PHẦN MỀM
Giao diện đăng nhập sẽ có 3 chức năng: đăng ký, đăng nhập và thoát ứng dụng. Khi bấm vào nút đăng ký hộp thoại đăng ký sẽ hiện lên để người dùng nhập thông tin tài khoản và mật khẩu.
Hình 4.13: Hộp thoại đăng ký
Khi chọn nút thoát giao diện sẽ hiển thị hộp thoại xác nhận để người dùng xác nhận thao tác.
Hình 4.14: Hộp thoại xác nhận
Khi chọn nút đăng nhập nếu tên đăng nhập và mật khẩu đúng với đã thiết lập thì giao diện sẽ chuyển sang trang quản lý ao.
Dữ liệu được gửi đến giao diện App android, có thể quan sát trạng thái và điều khiển các máy bơm trong ao.
Hình 4.15: Giao diện quản lý ao
Các thông số về chất lượng nước sẽ được hiện thị lên các Textview Nút Physical mode dùng để hiển thị trạng thái của nút vật lý mode.
Nút App mode (mode 2) dùng để chuyển đổi chế độ hoạt động sang điều khiển bằng App.
Các nút hiển thị trạng thái của máy bơm và thao tác bật/tắt các máy bơm theo ý của người dùng
Giao diện được thiết kế tối giản với các nút nhấn thể hiện trạng thái các thiết bị. Thông tin ao được bảo mật khi người dùng phải thực hiện việc đăng nhập để vào được giao diện quản lý ao nuôi.
+ Các thông số được hiển thị rõ ràng
+ Các công tắc điều khiển máy bơm được thiết kế theo chiều dọc giúp người
- Có sự phân biệt giữa chế độ "Physical mode" và "App mode", cho phép người dùng linh hoạt trong việc lựa chọn cách thức điều khiển.
- Cảnh báo vượt ngưỡng hoạt động hiệu quả kịp thời thông báo cho người sử dụng khi có thông số vượt mức cho phép.
Hình 4.16: Cảnh báo khi có thông số vượt mức
NHẬN XÉT KẾT QUẢ
- Giá trị các trị số đo được có độ chính xác cao so với giá trị tham chiếu, cụ thể: + Cảm biến nhiệt độ có sai số tuyệt đối: 0.05 o C.
+ Cảm biến pH có sai số tuyệt đối:
+ Cảm biến độ mặn EC độ có sai số tuyệt đối: 0.1361 ‰.
- Hệ thống pin mặt trời hoạt động ổn định, cung cấp đủ điện năng cho module thu thập dữ liệu hoạt động liên tục Điều này đảm bảo rằng các cảm biến và hệ thống truyền dữ liệu luôn được cung cấp năng lượng đầy đủ, không bị gián đoạn.
- Hai module truyền dữ liệu có khả năng hoạt động trong phạm vi bán kính 250m đáp ứng được cho vuông tôm diện tích vừa và nhỏ Tốc độ truyền nhanh, chỉ mất 0.2 giây để truyền và nhận dữ liệu Khả năng này cho phép theo dõi và quản lý ao nuôi từ xa một cách hiệu quả và kịp thời.
- Trong chế độ điều khiển vật lý, các nút nhấn có độ nhạy cao và độ trễ thấp.
- Trong chế độ điều khiển bằng nút ảo trên App các máy bơm có độ trễ so với các thao tác trên App là 2s do đường đi của dữ liệu.
- Trong chế độ điều khiển tự động các máy bơm hoạt động mượt mà theo chỉ số đô được từ các cảm biến và điều hòa được độ mặn trong ao.
- Màn hình LCD hiển thị các thông số một cách rõ ràng, dễ đọc, giúp người dùng dễ dàng giám sát và theo dõi các điều kiện môi trường trong ao.
- Giao diện App thiết kế đơn giản dễ sử dụng.