TỔNG QUAN
Internet vạn vật Cuộc cách mạng công nghệ –
Gần đây, cụm từ "Internet of Things" (IoT) đã trở nên phổ biến trên mạng, mặc dù khái niệm này vẫn còn mới mẻ đối với nhiều người dùng IoT là một hệ thống các thiết bị có khả năng kết nối với nhau, với Internet và với thế giới bên ngoài để thực hiện các nhiệm vụ cụ thể Vậy, Internet vạn vật là gì và nó tác động như thế nào đến cuộc sống của chúng ta?
1.1.1 Internet vạn vật (IoT) là gì?
IoT, hay Internet of Things, là thuật ngữ chỉ các đối tượng có thể nhận diện và tồn tại trong một kiến trúc kết nối, được Kevin Ashton giới thiệu vào năm 1999 Ông là nhà khoa học sáng lập Trung tâm Auto ID tại MIT, nơi thiết lập các tiêu chuẩn toàn cầu cho RFID và nhiều loại cảm biến khác Thuật ngữ này đã được sử dụng rộng rãi trong các ấn phẩm từ các công ty và nhà phân tích.
Vào tháng 6 năm 2009, Ashton đã chỉ ra rằng máy tính và Internet phụ thuộc chủ yếu vào con người để truyền tải dữ liệu, với khoảng 50 petabyte dữ liệu trên Internet được tạo ra bởi chúng ta thông qua các hoạt động như gõ chữ, chụp ảnh và quét mã vạch Mặc dù con người là yếu tố quyết định trong thế giới Internet, nhưng chúng ta lại có nhiều nhược điểm như thời gian hạn chế, khả năng tập trung kém và độ chính xác thấp so với máy móc Điều này dẫn đến việc chúng ta không hiệu quả trong việc thu thập thông tin về thế giới xung quanh, tạo ra một thách thức lớn trong việc xử lý dữ liệu.
Chiếc tủ lạnh thông thường không kết nối với thiết bị nào khác, do đó việc ghi lại nhiệt độ theo thời gian chỉ có thể thực hiện thủ công và sau đó nhập vào máy tính hoặc thiết bị lưu trữ Tương tự, để thu thập và điều chỉnh độ sáng của bóng đèn neon trong nhà, chúng ta cũng phải đo đạc thủ công và ghi lại kết quả.
Hình 1.1: Nest, một bộ điều khiển nhiệt dùng trong nhà, có thể xem như một ví dụ cơ bản của thiết bị IoT
Một chi nhánh của Auto ID tại Châu Âu đã chia sẻ tầm nhìn về IoT, nhấn mạnh rằng "chúng tôi hướng tới một thế giới mà mọi thứ, từ máy bay phản lực khổng lồ đến từng cây kim khâu, đều được kết nối với Internet." Mục tiêu này chỉ có thể đạt được khi mọi người áp dụng công nghệ này ở mọi nơi Theo dự báo của ABI Research, đến năm
2020, toàn thế giới sẽ có 30 tỉ thiết bị được kết nối không dây vào mạng lưới IoT
1.1.2 Khả năng định danh độc nhất Điểm quan trọng của IoT đó là các đối tượng phải có thể được nhận biết và định dạng (identifiable) Nếu mọi đối tượng, kể cả con người, được "đánh dấu"
Để phân biệt bản thân đối tượng với những thứ xung quanh, chúng ta có thể quản lý nó thông qua máy tính Việc đánh dấu (tagging) có thể thực hiện bằng nhiều công nghệ như RFID, NFC, mã vạch, mã QR và watermark kỹ thuật số Kết nối có thể được thực hiện qua Wi-Fi, mạng viễn thông băng tần rộng (GPRS, 3G, 4G), Bluetooth, ZigBee và hồng ngoại.
Ngoài các kỹ thuật đã đề cập, trong thế giới web, chúng ta có thể sử dụng địa chỉ IP để xác định từng thiết bị một cách độc nhất Mỗi thiết bị sẽ sở hữu một địa chỉ IP riêng biệt, không thể nhầm lẫn Sự ra đời của IPv6 với không gian địa chỉ rộng lớn sẽ tạo điều kiện thuận lợi cho việc kết nối mọi thứ vào Internet và giữa các thiết bị với nhau.
1.1.3 Xu hướng và tính chất của IoT
Sự thông minh và tự động trong điều khiển không phải là phần cốt lõi của IoT, nhưng các máy móc có khả năng nhận biết và phản hồi môi trường xung quanh, cùng với khả năng tự điều khiển mà không cần kết nối mạng Gần đây, nghiên cứu đã bắt đầu kết hợp IoT với autonomous control, mở ra khả năng cho một mạng lưới các thực thể thông minh có khả năng tự tổ chức và hoạt động độc lập theo tình huống và môi trường, đồng thời trao đổi thông tin và dữ liệu với nhau.
Kiến trúc dựa trên sự kiện trong IoT cho phép các thực thể và máy móc phản hồi theo các sự kiện diễn ra trong thời gian thực Nhiều nhà nghiên cứu đã chỉ ra rằng mạng lưới các cảm biến là một thành phần cơ bản của IoT.
Trong một thế giới mở, hệ thống IoT trở nên phức tạp do sự kết nối đa dạng giữa các thiết bị, máy móc và dịch vụ Sự phức tạp này còn được gia tăng bởi khả năng tích hợp các yếu tố mới, tạo ra một mạng lưới liên kết rộng lớn và đa chiều.
Trong IoT, việc xác định vị trí địa lý chính xác của các thiết bị là vô cùng quan trọng Hiện tại, Internet chủ yếu được sử dụng để quản lý và kết nối các thiết bị này, giúp tối ưu hóa quá trình vận hành và nâng cao hiệu quả sử dụng.
Thông tin được xử lý bởi con người thường không coi trọng các yếu tố như địa điểm, thời gian và không gian, vì người xử lý có thể quyết định tính cần thiết của chúng và bổ sung khi cần Ngược lại, IoT có khả năng thu thập lượng lớn dữ liệu, bao gồm cả dữ liệu thừa về địa điểm, dẫn đến việc xử lý dữ liệu trở nên không hiệu quả Bên cạnh đó, thách thức hiện nay là xử lý khối lượng lớn dữ liệu trong thời gian ngắn để đáp ứng nhu cầu của các đối tượng.
1.1.4 Làm thế nào để IoT hoạt động?
Để xây dựng một hệ thống IoT hiệu quả, cần có bốn thành phần chính: sự định danh (Identification), bộ cảm biến, truyền thông không dây và nền tảng (platform).
• Định danh bằng địa chỉ IPv6:
Tính cấp thiết của việc quan trắc nuôi trồng thủy sản 1 Sự cần thiết phải có hệ thống quan trắc môi trường nuôi trồng thủy
1.2.1 Sự cần thiết phải có hệ thống quan trắc môi trường nuôi trồng thủy sản
Trong những năm gần đây, ngành nuôi trồng thủy sản ở Việt Nam đã phát triển mạnh mẽ, đạt được nhiều thành tựu đáng kể Ngành này không chỉ giúp xóa đói giảm nghèo mà còn tạo ra việc làm và thu nhập cho một lượng lớn người lao động, góp phần tích cực vào sự phát triển kinh tế của đất nước.
Hình 1.3: Sản lượng khai thác và nuôi trồng thủy sản của Việt Nam giai đoạn 1995 –
Ngành nuôi trồng thủy sản đã có sự tăng trưởng vượt bậc trong những năm qua, với sản lượng năm 1995 chỉ đạt 415 nghìn tấn, chiếm hơn 30% tổng sản lượng thủy sản cả nước Từ năm 2000 đến nay, diện tích nuôi trồng thủy sản đã tăng đáng kể, từ hơn 500.000 hecta năm 1999 lên hơn 1 triệu hecta vào năm 2013 Đặc biệt, tổng sản lượng nuôi trồng thủy sản đã tăng gấp 7 lần từ năm 1997 đến nay.
2013, 481 nghìn tấn lên đến 3.340 nghìn tấn Kim ngạch xuất khẩu thủy sản cũng đạt mức ấn tượng với 6,7 tỷ USD vào năm 2013
Mặc dù nuôi trồng thủy sản ở nước ta đã đạt nhiều thành tựu quan trọng, nhưng hiện nay đang phải đối mặt với nhiều vấn đề môi trường, đặc biệt là ô nhiễm nguồn nước Các nguyên nhân chính gây ô nhiễm bao gồm nước thải sinh hoạt, nước thải công nghiệp và nước thải nông nghiệp Hơn nữa, hoạt động nuôi trồng thủy sản cũng góp phần gây ra ô nhiễm và suy thoái môi trường xung quanh, do đó cần được chú trọng giải quyết triệt để.
Các yếu tố tự nhiên khách quan có thể gây hại cho thủy sản, đặc biệt trong nuôi tôm Việc giám sát các thông số như NO3, NH4+ và các chất độc hại như H2S, NO, NH2,3 từ chất thải và lượng thức ăn dư thừa là rất quan trọng để đảm bảo môi trường nước nuôi đạt yêu cầu.
Trong bối cảnh hiện nay, các vấn đề môi trường và nguồn nước đang trở nên cấp bách, yêu cầu các cơ quan chức năng cần tăng cường quản lý và kiểm soát môi trường cũng như dịch bệnh Việc kiểm soát dịch bệnh phụ thuộc nhiều vào chất lượng nước trong nuôi trồng Quan trắc môi trường nước nuôi trồng không chỉ cung cấp thông tin về tình hình từng vùng nuôi mà còn giúp đưa ra các giải pháp kịp thời, nhằm ngăn chặn hậu quả nghiêm trọng từ dịch bệnh và ô nhiễm môi trường.
23 trường nước có thể gây ra ảnh hưởng đến môi trường xung quanh, từ đó giúp đánh giá tác động của nuôi trồng thủy sản Việc này hỗ trợ quản lý quy hoạch và mở rộng mô hình nuôi trồng quy mô lớn, đảm bảo định hướng phát triển bền vững cho ngành thủy sản trong tương lai Đồng thời, nó cung cấp cơ sở để dự báo những thay đổi về chất lượng nước nuôi trồng, quản lý chất lượng đầu vào và đầu ra, cũng như phòng ngừa dịch bệnh và ô nhiễm một cách hiệu quả.
Kể từ năm 2001, Bộ Thủy sản (hiện nay thuộc Bộ Nông nghiệp và Phát triển nông thôn) đã thiết lập mạng lưới quan trắc phục vụ cho nuôi trồng thủy sản và bảo vệ môi trường biển Từ năm 2006 đến nay, nhiều tỉnh miền Nam cũng đã phát triển hệ thống quan trắc nhằm hỗ trợ hoạt động nuôi trồng thủy sản.
Việc phát triển hệ thống quan trắc môi trường nuôi trồng thủy sản hiện đang gặp nhiều khó khăn, bao gồm hạn chế về nguồn kinh phí, thiếu sự thống nhất trong phạm vi, đối tượng và phương pháp xử lý số liệu quan trắc Bên cạnh đó, thiết bị đo và phân tích còn thiếu và lạc hậu, và chưa có cơ chế rõ ràng để thông báo kết quả quan trắc chất lượng môi trường nước.
Trong bối cảnh công nghệ phát triển mạnh mẽ, nuôi trồng thủy sản đang hướng tới tự động hóa và bền vững, việc quan trắc môi trường trở nên cực kỳ quan trọng Điều này không chỉ giúp hạn chế dịch bệnh và ô nhiễm môi trường mà còn góp phần đảm bảo an ninh lương thực và thực phẩm trong nước, đồng thời tăng kim ngạch xuất khẩu thủy sản Do đó, xây dựng hệ thống quan trắc môi trường cho nuôi trồng thủy sản là cần thiết để đáp ứng yêu cầu phát triển bền vững trong ngành này.
1.2.2 Kinh nghiệm quan trắc môi trường nuôi trồng thủy sản của một số quốc gia trên thế giới
Môi trường là một trong những vấn đề quan trọng hàng đầu mà các quốc gia đều chú trọng Hoạt động quan trắc toàn cầu được thực hiện trên nhiều lĩnh vực khác nhau, phục vụ cho nhiều mục tiêu như phát hiện động đất và sóng thần.
Trong nuôi trồng thủy sản, hoạt động quan trắc môi trường có đặc thù riêng và phương pháp thực hiện khác biệt giữa các nước Theo Bản quy tắc ứng xử nghề cá có trách nhiệm của FAO, việc quan trắc môi trường là bắt buộc đối với các quốc gia, đặc biệt trong các hệ sinh thái liên quốc gia, và dữ liệu quan trắc cần được chia sẻ.
Cục Thủy sản Úc đã phát hành Hướng dẫn Kế hoạch quản lý nuôi trồng thủy sản và quan trắc môi trường (MEMP) nhằm hướng dẫn việc quan trắc và quản lý môi trường trong nuôi trồng thủy sản Hướng dẫn này nêu rõ các thông số cần quan trắc để đảm bảo chất lượng nước và đề ra kế hoạch giảm thiểu tác động của nuôi trồng thủy sản lên môi trường xung quanh (Department of Fisheries, 2013).
Xu hướng quan trắc môi trường nước đang phát triển theo hướng mở rộng quy mô và đa dạng hóa hình thức, với sự phân cấp mạnh mẽ và sự tham gia ngày càng tăng của nhiều bên Việc quan trắc cần được kết nối chặt chẽ với sản xuất, vừa là nghĩa vụ vừa là nhu cầu thiết yếu đối với ngành nuôi trồng thủy sản (NTTS).
1.2.3 Hiện trạng quan trắc môi trường nuôi trồng thủy sản ở Việt Nam
Từ năm 2001, Bộ Thủy sản đã chỉ đạo các cơ quan ngành nghiên cứu dự án quan trắc chất lượng môi trường và cảnh báo nguy cơ dịch bệnh phục vụ nuôi trồng thủy sản Dự án này tạo nền tảng cho mạng lưới quan trắc rộng khắp, giúp cảnh báo môi trường và dịch bệnh kịp thời, hỗ trợ nông dân trong nuôi trồng thủy sản Các Viện của Trung tâm quan trắc quốc gia đã thiết lập nhiều trạm ở các vùng, đặc biệt tại miền Trung và Nam bộ, nơi có diện tích nuôi trồng lớn nhất Mỗi trạm có chức năng riêng, trong đó trạm cấp 1 thu thập tài liệu cơ bản để đánh giá chất lượng nước, còn trạm cấp 2 mở rộng theo yêu cầu và điều kiện cụ thể.
Để phát triển bền vững ngành nuôi trồng thủy sản, cần áp dụng các biện pháp tối ưu và triệt để nhằm hỗ trợ nông dân trong việc bảo vệ chất lượng môi trường Điều này không chỉ giúp nâng cao hiệu quả sản xuất mà còn phát huy lợi thế của ngành thủy sản, góp phần quan trọng vào sự phát triển kinh tế của đất nước.
Tính cấp thiết của hệ thống quan trắc IoT trong nuôi trồng thủy sản
Tiềm năng nuôi trồng thủy sản ở nước ta rất lớn, có thể đóng góp đáng kể cho sự phát triển đất nước Tuy nhiên, trong những năm gần đây, ngành này gặp nhiều khó khăn, và chính phủ cùng các ban ngành chưa có những hỗ trợ đáng kể cho nông dân trong việc tối ưu hóa môi trường nuôi trồng thủy sản.
Nhóm đã quyết định thiết kế một hệ thống quan trắc thông minh IoT cho môi trường nuôi trồng thủy sản, nhằm thu thập và giám sát các thông số môi trường nước Hệ thống này kết hợp khả năng quan trắc với các thiết bị kỹ thuật hiện đại, tạo ra một giải pháp IoT hoàn thiện cho ngành nuôi trồng thủy sản Các chức năng chính của đề tài bao gồm việc theo dõi và phân tích dữ liệu môi trường, giúp cải thiện hiệu quả sản xuất và bảo vệ môi trường.
• Đo đạc những thông số từ môi trường nước nuôi trồng thủy sản (pH, DO, độ mặn, nhiệt độ, ….)
• Thông số thu thập được có thể hiển thị ngay trên thiết bị tại ao nuôi trồng
• Thông số còn được gửi qua Wifi để truyền tải lên một cơ sở dữ liệu để lưu trữ và lên web để hiển thị cho người dùng
Hệ thống web được thiết kế với giao diện thân thiện và tính năng bảo mật an toàn, giúp người dùng dễ dàng truy cập và theo dõi tình hình tại các ao nuôi trồng.
• Các cơ cấu tự động tại ao có thể tự điều chỉnh một số thông số để ổn định môi trường nuôi trồng nếu phát sinh vấn đề
• Cho phép người dùng điều khiển các thông số và các cơ cấu thông qua web điều khiển
• Dữ liệu đo đạc được cập nhật, lưu trữ ngay tại thiết bị liên tục để tránh các sự cố gây gián đoạn kết nối tới hệ thống
Các trạm đo Slave có khả năng trao đổi dữ liệu nội bộ khi mất kết nối Wifi, và dữ liệu từ các trạm này được đóng gói dưới dạng chuỗi JSON Sau đó, các
Kết luận chương 1
Chương 1 luận văn đã trình bày các khái niệm cơ bản và các ứng dụng của IoT trong thực tiễn, đồng thời tính acasp theiest của hệ thống giám sát trực tuyến thông số nước nuôi trồng thủy sản, đưa ra bài toán về chia sẻ thông tin giữa các trạm nội bộ để giảm dung lượng truyền đi, dẫn tới giảm giá thành, dữ liệu được truyền từ từng trạm con Slave lên Master để lưu trữ tại Master giúp giải quyết vấn đề đang tồn tại của các hệ thống giám sát cũ.
MÔ HÌNH MẠNG VÀ GIAO THỨC KẾT NỐI
Mô hình mạng
Hình 2.1: Mô hình mạng OSI
2.1.1.1 Các giao thức trong mô hình OSI: Giao thức hướng liên kết và giao thức không liên kết
Giao thức liên kết yêu cầu các thực thể cùng tầng thiết lập liên kết logic với các tham số để truyền dữ liệu, cắt hoặc hợp nhất dữ liệu, đảm bảo tính ổn định, độ tin cậy và an toàn trong quá trình trao đổi Ngược lại, giao thức không liên kết cho phép dữ liệu được truyền độc lập qua các tuyến khác nhau, với chỉ một giai đoạn duy nhất để truyền dữ liệu.
2.1.1.2 Vai trò và chức năng các tầng trong OSI
Tầng ứng dụng cung cấp giao diện giữa người sử dụng và môi trường OSI, bao gồm nhiều giao thức ứng dụng cho phép người dùng truy cập vào môi trường Khi các thực thể ứng dụng (AE) được thiết lập, chúng sẽ gọi đến các phần tử dịch vụ ứng dụng (ASE) Mỗi thực thể ứng dụng có thể bao gồm một hoặc nhiều phần tử dịch vụ ứng dụng, và các phần tử này được phối hợp trong môi trường của thực thể ứng dụng thông qua các liên kết gọi là đối tượng liên kết đơn (SAO) SAO điều khiển việc truyền thông và cho phép tuần tự hóa các sự kiện truyền thông.
Tầng trình bày (Presentation Layer) xử lý các vấn đề về cú pháp và ngữ nghĩa của thông tin truyền tải Nó đảm bảo rằng thông tin được biểu diễn phù hợp với nhu cầu của người sử dụng và tương thích với hệ thống mạng Ngoài ra, tầng này còn có nhiệm vụ chuyển đổi dữ liệu trước khi gửi qua mạng.
Tầng phiên (Session Layer) cho phép người dùng trên các máy khác nhau duy trì và đồng bộ hóa phiên làm việc Nói cách khác, tầng này thiết lập các giao dịch giữa các thực thể đầu cuối, đảm bảo sự liên lạc hiệu quả và liên tục.
Tầng vận chuyển là tầng cao nhất trong mô hình mạng, chịu trách nhiệm về các giao thức trao đổi dữ liệu giữa các hệ thống mở Tầng này kiểm soát việc truyền dữ liệu từ các nút, đảm bảo rằng thông tin được gửi và nhận một cách chính xác và hiệu quả.
Tầng 28 thực hiện kiểm tra lỗi và khôi phục dữ liệu giữa các thiết bị, với hai giao thức phổ biến nhất là Transmission Control Protocol (TCP) và User Datagram Protocol (UDP).
Tầng liên kết dữ liệu (Data Link Layer) đóng vai trò quan trọng trong việc định dạng thông điệp thành khung dữ liệu (Frame) và thêm vào tiêu đề chứa địa chỉ phần cứng của thiết bị nhận và nguồn Tiêu đề này giúp tìm kiếm thiết bị đích tiếp theo trong mạng nội bộ, trong khi tầng mạng chỉ quan tâm đến con đường đến đích cuối cùng mà không xác định người nhận tiếp theo Tầng này được chia thành hai lớp con: Điều khiển logic liên kết (LLC) và kiểm soát truy cập địa chỉ (MAC) Chức năng của LLC bao gồm quản lý khung cho các lớp trên và dưới, kiểm soát lỗi và điều khiển luồng, trong khi lớp con MAC chứa địa chỉ vật lý của từng thiết bị mạng.
Tầng vật lý trong mạng định nghĩa các đặc tính vật lý như kết nối, điện áp, và các quy trình liên quan đến điện, quang, và thời gian Mục tiêu của tầng này là kết nối các phần tử mạng thành một hệ thống thông qua các phương pháp vật lý.
Mô hình TCP/IP, hay còn gọi là mô hình kết nối mở, bao gồm 4 tầng và được phát triển bởi Bộ Quốc phòng Mỹ (DoD) Mô hình này được coi là phiên bản giản lược của mô hình tham chiếu OSI, và hiện nay là mô hình mạng ứng dụng phổ biến nhất trong các kết nối mạng.
Hình 2.2: Mô hình mạng TCP/IP
- Khả năng tương thích cao với các hệ điều hành, phần cứng máy tính và mạng
- Không chịu sự kiểm soát của tổ chức nào, haofn toàn tự do bưởi nguuwofi dùng
- Có khả năng mở rộng và định tuyến đường truyền tốt nhất - Cho phép truyền thông giữa các môi trường đa dạng
Giống như mô hình OSI, trong giao thức TCP/IP, quá trình truyền dữ liệu diễn ra từ tầng trên xuống tầng dưới, với mỗi tầng dữ liệu được thêm vào một thông tin điều khiển gọi là phần header Khi nhận dữ liệu, quá trình ngược lại xảy ra, với phần header tương ứng bị loại bỏ qua từng tầng, cho đến khi dữ liệu đến tầng trên cùng mà không còn phần header.
Giao thức MQTT
2.2.1 Các khái niệm cơ bản
MQTT, được phát triển bởi tiến sĩ Andy Stanford Clark của IBM và Arlen Nipper của Arcom (Eurotech) vào năm 1999, là một giao thức đáng tin cậy và hiệu quả với chi phí thấp để kết nối các thiết bị giám sát trong ngành công nghiệp dầu mỏ và khí đốt với các nhà điều hành từ xa Giao thức này hoạt động dựa trên mô hình publish/subscribe và sử dụng TCP/IP, mang lại nhiều lợi ích cho việc truyền tải dữ liệu trong các ứng dụng IoT Các đặc trưng chính của MQTT bao gồm tính nhẹ, khả năng mở rộng và độ tin cậy cao trong việc truyền thông tin.
+ Dựa trên nền tảng TCP/IP
+ Dạng truyền các tiêu đề có gửi lện/theo dõi cung cấp dạng truyền tin phân tán từ 1 < > nhiều -
+ Việc truyền bản tin không quan tâm đến nội dung truyền
Trong MQTT có 3 loại QoS được đưa ra nhằm đảm bảo độ tin cậy, vẹn toàn của dữ liệu:
QoS = 0: Bản tin được truyền và nhận hoàn toàn dựa vào độ tin cậy của TCP/IP, có thể xảy ra tình trạng mất hoặc lặp bản tin Tuy nhiên, điều này không ảnh hưởng đến các loại dữ liệu được truyền liên tục theo thời gian.
QoS = 1: Bản tin đảm bảo sẽ được nhận đúng nhưng có thể bị lặp lại QoS = 2: Bản tin được đảm bảo đến nơi đúng một lần, thường được sử dụng trong các hệ thống thanh toán, nơi việc lặp lại hoặc mất bản tin có thể dẫn đến sai sót trong việc tính tiền.
MQTT là giao thức truyền thông nổi bật với nhiều ưu điểm như băng thông thấp và độ tin cậy cao Nó có khả năng hoạt động hiệu quả ngay cả khi mạng kết nối không ổn định, tiêu tốn rất ít byte dữ liệu để kết nối với server và duy trì trạng thái kết nối liên tục Hơn nữa, MQTT cho phép kết nối nhiều thiết bị MQTT Client thông qua một MQTT Broker, làm cho nó trở thành lựa chọn lý tưởng cho các ứng dụng IoT.
2.2.2 Mô hình giao thức MQTT
Một phiên làm việc MQTT bao gồm 4 giai đoạn: kiểm tra kết nối, xác thực, giao tiếp và chấm dứt Quá trình bắt đầu bằng việc tạo kết nối TCP/IP với Broker qua cổng tiêu chuẩn từ máy chủ Broker đóng vai trò trung tâm, kết nối tất cả Client (Publisher/Subscriber) Nhiệm vụ chính của Broker là nhận và xếp hàng các bản tin từ trạm gửi, sau đó truyền đến địa chỉ cụ thể Client có thể gửi bản tin đến một hoặc nhiều tiêu đề cụ thể, hoặc theo dõi nhiều tiêu đề để nhận bản tin từ chúng.
Hình 2.3: Mô hình giao thức MQTT
Topic: chính là hàng đợi chứa tiêu đề Về logic, tiêu đề cho phép các Clients trao đổi thông tin và dữ liệu
Session: Là kết nối từ client đến server, tất cả giao tiếp giữa client và server đều là một phần của session
Subscription: Là kết nối từ client đến tiêu đề Khi đã theo dõi một tiêu đề, Client có thể nhận/gửi thông điệp với tiêu đề đó
Message: Là các đơn vị dữ liệu được trao đổi giữa các tiêu đề clients
Publisher: Là các clients kết nối logic đến các tiêu đề và Clients sẽ đẩy các bản tin vào hàng đợi của tiêu đề
Subscriber là các khách hàng kết nối logic đến các tiêu đề, và khi có bản tin xuất hiện trong hàng đợi của tiêu đề, các khách hàng này sẽ nhận được dữ liệu để xử lý đồng thời.
2.2.4 Các gói tin quan trọng của giao thức MQTT
2.2.4.1 Định dạng của bản tin
Tất cả các bản tin luôn chứa phần cố định như hình:
Bản tin Byte 1 chứa một số 4 bit không dấu, với các trạng thái như Connect (1), Publish (3), Subscribe (8), Unsubscribe (10) và Disconnect (14) Các cờ trong bản tin bao gồm DUP, QoS và RETAIN Cờ DUP xác định trạng thái lặp lại bản tin, được thiết lập khi client hoặc server cố gắng chuyển lại một gói Publish hoặc Subscribe Cờ QoS liên quan đến chất lượng và độ tin cậy khi nhận bản tin, với ba giá trị 00, 01 và 10 tương ứng với các mức QoS 0, 1 và 2 Cuối cùng, cờ RETAIN chỉ được sử dụng trong bản tin gửi elen để giữ lại giá trị của bản tin tại server, ngay cả khi bản tin đã được gửi đến các trạm nhận.
• Byte 2 Độ dài còn lại
Độ dài trong bản tin bao gồm phần header và khối dữ liệu, với phần còn lại dành cho số byte cần thiết để biểu diễn dữ liệu truyền và nhận.
2.2.4.2 CONNECT – Client yêu cầu connect đến server
When a TCP/IP connection is established between a client and a server, a protocol-level session is created using the Connect stream The server responds to the client's CONNECT message with a CONNACK message If the server does not receive the CONNECT message from the client within a specified timeframe, it may take appropriate actions based on the protocol's guidelines.
Sau khi thiết lập kết nối TCP/IP, server nên đóng kết nối MQTT nếu không nhận được phản hồi CONNACK từ Client Nếu Client đã có một kết nối với Client ID đến server, cần ngắt kết nối trước khi thực hiện luồng CONNECT mới Ngoài ra, server cũng sẽ ngắt kết nối nếu Client gửi bản tin kết nối không hợp lệ.
Bản tin PUBLISH được gửi từ client đến server nhằm phân phối đến các subscriber cần thiết Mỗi bản tin đi kèm với một tiêu đề theo dạng không gian phân cấp, giúp phân loại nguồn thông tin để các trạm nhận có thể theo dõi Khi một bản tin được gửi đến một tiêu đề cụ thể, nó sẽ được phân phát đến các trạm nhận quan tâm đến tiêu đề đó.
Nếu 1 client theo dõi một hoặc nhiều tiêu đề, thì mọi bản tin được gửi lên những tiêu đề đó được gửi bởi server đến client như là một tin nhắn PUBLISH
Phản hồi cho PUBLISH bản tin phụ thuộc vào mức của QoS
QoS Giá trị trả về mong muốn
Nếu một server không xác nhận được một PUBLISH từ client, nó không thể thông báo cho client về điều này Do đó, server cần đảm bảo một mức độ nhất định, tùy thuộc vào các mức QoS, để client không nhận được thông báo về việc xác thực bản tin PUBLISH mà nó đã gửi.
Bản tin SUBSCRIBE cho phép khách hàng theo dõi một hoặc nhiều tiêu đề từ máy chủ Khi một bản tin được gửi lên máy chủ, nó sẽ được chuyển đến khách hàng thông qua bản tin PUBLISH Bản tin SUBSCRIBE cũng xác định mức độ QoS mà thiết bị nhận mong muốn Sau khi nhận được bản tin SUBSCRIBE, máy chủ sẽ phản hồi bằng bản tin SUBACK Cuối cùng, máy chủ sẽ bắt đầu gửi bản tin PUBLISH theo yêu cầu.
Khi một client thực hiện yêu cầu SUBSCRIBE, nó có thể nhận được thông tin về subscription ngay cả trước khi nhận bản tin SUBACK Nếu server không xác nhận yêu cầu SUBSCRIBE, client sẽ không nhận được thông báo về việc này Để đảm bảo thông tin được xác nhận, server gửi bản tin SUBACK, nhưng client không biết rằng yêu cầu của mình không được xác thực Ngoài ra, server có quyền chỉ định mức QoS thấp hơn so với yêu cầu của client nếu không thể cung cấp mức QoS cao hơn.
2.2.5 Quy trình truyền nhận dữ liệu trong MQTT
2.2.5.1 Connect và Subcribe tiêu đề
+ Session và Subcription được thiết lập với session flag = 1 -
Client và Server được kết nối qua giao thức TCP
- Client gửi gói tin CONNECT yêu cầu kết nối đến Server, clean session = 1 Đây là thời điểm đánh dấu session được thiết lập
- Server gởi gói CONNACK xác nhận thiết lập kết nối thành công
- Client thực hiện SUBSCRIBE đến tiêu đề XYZ Đây là thời điểm bắt đầu chạy thời gian xuất kết nối của một subscription
- Server gởi gói SUBACK xác nhận quá trình subscription
- Client PUBLISH để gửi các bản tin tiêu đề đến server
- Sau khi nhận đủ thông tin, client gửi gói UNSUBSCRIBE tiêu đề XYZ để kết thúc quá trình Subscribe
- Server trả về gói UNSUBACK
- Client gửi gói DISCONNECT để kết thúc session truyền thông + Session và Subcription được thiết lập với session flag = 0 -
Subscription lifetime đã được thiết lập trước
- Client và Server được kết nối qua giao thức TCP
- Client gửi gói tin CONNECT yêu cầu kết nối đến Server, clean session = 0 Đây là thời điểm đánh dấu session được thiết lập
- Server gởi gói CONNACK xác nhận thiết lập kết nối thành công
- Client PUBLISH để gửi tiêu đề bản tin đến server -
- Client gửi gói DISCONNECT để kết thúc session truyền thông
+ Mức QoS = 0: Không có phản hồi đã nhận từ server MQTT Broker và các bản tin đến server 1 lần hoặc không có
Hình 2.5: Quá trình gửi bản tin lên MQTT Broker với QoS = 0
+ Mức QoS = 1: Server sẽ có phản hồi xác nhận đã nhận được bản tin và liên tục gửi dữ liệu đến trạm nhận
Hình 2.6: Quá trình gửi bản tin lên MQTT Broker với QoS = 1
+ Mức QoS = 2: Đảm bảo không có bản tin nào được gửi lặp lại, lưu lượng truyền mạng tăng lên
Hình 2.7: Quá trình gửi bản tin lên MQTT Broker với QoS = 2
Giao thức Zigbee
2.3.1 Các khái niệm cơ bản
Zigbee là công nghệ phát triển dựa trên tiêu chuẩn mạng không dây 802.15.4 của IEEE, với tính mở và được nhiều hãng sản xuất thiết bị Công nghệ này tiêu thụ năng lượng rất thấp và sử dụng mạng lưới, giúp mở rộng hệ thống và giao tiếp nhanh Tuy nhiên, việc giao tiếp giữa các thiết bị Zigbee từ các hãng khác nhau gặp nhiều khó khăn.
Zigbee có khả năng truyền tín hiệu lên đến 70m từ trạm phát, và khoảng cách này có thể được mở rộng hơn nữa nhờ vào việc tiếp sóng từ các nút liên kết trong hệ thống Dữ liệu được truyền dưới dạng gói tối đa 128 bytes, và tiêu chuẩn này hỗ trợ địa chỉ 64 bit, giúp xác định mỗi thiết bị với một địa chỉ IP duy nhất.
2.3.2 Mô hình giao thức Zigbee
Zigbee có 3 dạng mô hình được hỗ trợ: Dạng hình sao, hình lưới và hình cây Mỗi dạng có nhưng ưu điểm và ứng dụng riêng
Một trong các trạm đo con sẽ được cài đặt như Gateway để thiết lập mạng Zigbee, quy định cách đánh địa chỉ và phân phối địa chỉ cho các Router.
Trạm còn lại sẽ cài đặt như Router, nhận các địa chỉ cấp từ Gateway, đồng thời quản lý việc kết nối với các Zigbee Device
Mô hình có thể xây dựng trong giao thức Zigbee với hệ thống lớn:
2.3.2.1 Dạng hình sao (Star network)
Zigbee Gateway Zigbee Router Zigbee Device
2.3.2.2 Dạng hình lưới (Mesh network)
Zigbee Gateway Zigbee Router Zigbee Device
2.3.2.3.Dạng hình cây (Cluster network)
Zigbee Gateway Zigbee Router Zigbee Device
Ngoài 2 tầng vật lý và tầng MAC xác định bởi tiêu chuẩn 802.15.4 ở tiêu chuẩn Zigbee còn có thêm các tầng của hệ thống bao gồm: Tầng mạng, tầng ứng dụng, tầng đối tượng thiết bị
Tầng vật lý: Có trách nhiệm gửi gói dữ liệu qua song và giữ cho việc truyền tín hiệu được mạnh trong môi trường nhiễu
Tầng MAC đóng vai trò quan trọng trong công nghệ đa truy cập, giúp nhận biết đường truyền để tránh va chạm và xác định hình dạng mạng, từ đó nâng cao tính mạnh mẽ và ổn định của hệ thống.
Tầng mạng (NWK) của Zigbee là một thành phần phức tạp, có chức năng tìm kiếm và kết nối mạng, mở rộng từ chuẩn 802.15.4 thành dạng lưới Tầng này không chỉ xác định đường truyền cho Zigbee mà còn quy định địa chỉ Zigbee thay vì sử dụng địa chỉ tầng MAC.
Tầng hỗ trợ ứng dụng (APS) kết nối với mạng và cài đặt các ứng dụng cần thiết cho Zigbee, giúp loại bỏ các gói dữ liệu trùng lặp từ tầng trên Trong khi đó, tầng đối tượng thiết bị (ZDO) quản lý các thiết bị, định hình tầng hỗ trợ ứng dụng và tầng mạng, cho phép thiết bị tìm kiếm, quản lý yêu cầu và xác định trạng thái của chúng.
Tầng ứng dụng người dùng (APO) là nơi người dùng tương tác trực tiếp với thiết bị, cho phép họ tùy chỉnh và thêm các ứng dụng vào hệ thống một cách linh hoạt.
Kết luận chương 2
Chương 2 đã trình bày lý thuyết về các mô hình kết nối trong Internet Luận văn lựa chọn giao thức MQTT với các ưu điểm như hoạt động trong băng thông thấp ở môi trường có độ trễ cao, độ tin cậy cao, được thiết kế có tính mở, dễ tích hợp trên các thiết bị nhúng bị giới hạn về tài nguyên và tốc độ MQTT đặc biệt phù hợp với các ứng dụng M2M, IoT, WSN; điều này phù hợp với yêu cầu thiết kế hệ thống giám sát thông số nước nuôi trồng thủy sản trực tuyến mà luận văn hướng đến Ngoài ra, có đề cập thêm giải pháp giao tiếp nội bộ giữa các trạm con trong điều kiện mất kết nối Wifi sử dụng giao thức Zigbee, cũng là một giải pháp tiêu thụ rất ít năng lượng và tài nguyên
Luận văn đã trình bày chi tiết các thông số kỹ thuật của giao thức MQTT và Zigbee, hai yếu tố quan trọng trong ứng dụng IoT Qua việc nghiên cứu các thông số này, luận văn thiết kế và triển khai hệ thống hoạt động với QoS mức 0 sử dụng MQTT, đồng thời thực hiện giao tiếp cơ bản trong việc truyền và nhận dữ liệu qua Zigbee giữa hai trạm con.
THIẾT KẾ VÀ THI CÔNG HỆ THỐNG, XỬ LÝ TÍN HIỆU
Xây dựng sơ đồ hệ thống
Khối cảm biến bao gồm các cảm biến nhiệt độ, pH, DO và độ dẫn điện, có chức năng đo lường các thông số môi trường và truyền giá trị đo được đến Arduino khi nhận tín hiệu yêu cầu.
Khối xử lý trung tâm bao gồm Raspberry Pi 3B+ và Arduino, có nhiệm vụ xử lý tín hiệu từ cảm biến, điều khiển các thiết bị và phát dữ liệu qua mạch Zigbee cùng với module Wi-Fi Node MCU.
Khối thu phát bao gồm module Zigbee và module Wifi, có nhiệm vụ truyền dữ liệu từ Arduino này sang bộ thu của Arduino khác và đưa thông tin lên hệ thống internet.
• Khối điều khiển gồm module rơ le: Có chức năng điều khiển các thiết bị dạng đóng/ngắt bên ngoài hoạt động
Hình 3.1 Sơ đồ : t ổ ng quát hệ thống
Mạch node MCU có kết nối wifi
Mạch node MCU có kết nối wifi
Raspberry pi 3B+ đã có sẵn kết nối wifi và ethernet
Arduino Mạch kết nối zigbee Arduino Mạch kết nối zigbee
Sơ đồ tổng quan hệ thống đặt ra Hệ thống bao gồm 1 trạm chính và 2 trạm con:
• Trạm chính gồm máy tính nhúng Raspberry Pi
Trạm con bao gồm Arduino, mô-đun kết nối Wifi, mô-đun kết nối Zigbee, cùng với mô-đun mạch xử lý tín hiệu cảm biến và mô-đun mạch Rơ le Sơ đồ kết nối các mô-đun này được trình bày như hình dưới đây.
Đề tài sử dụng máy tính nhúng Raspberry Pi 3B+ với hệ điều hành Linux Raspian làm trung tâm, cho phép hoạt động liên tục 24/24 với mức tiêu thụ năng lượng chỉ khoảng 10W Raspberry Pi sẽ đóng vai trò là server cho hệ thống đo đa kênh, lưu trữ giao diện Web và xử lý tín hiệu trước khi truyền xuống các cụm đo Bo mạch Arduino được chọn làm bộ xử lý trung tâm cho hai cụm đo con, nhờ vào nguồn tài liệu tham khảo và thư viện mở phong phú, hỗ trợ quá trình phát triển sản phẩm Ngoài ra, trong trường hợp cần thiết, có thể thay thế bằng các dòng vi xử lý hoặc máy tính nhúng khác như Raspberry Pi, STM, Tiva, v.v Phương thức truyền thông qua Wifi và Zigbee được lựa chọn vì tính phổ biến và lợi thế về chi phí truyền dữ liệu cùng với sự hỗ trợ từ các thư viện.
Mô- đun nodeMCU có kết nối wifi
Mô- đun kết nối zigbee
Mô-đun mạch xử lý tín hiệu cảm biến
Mô- đun mạch đóng, ngắt Rơ le Đầu vào Đầu ra
Các cảm biến pH, nhiệt độ, DO, độ dẫn điện,…
Các thiết bị thực thi như: Máy đánh khuấy ( Tăng oxi), hệ thống bổ sung pH, máy cho ăn t ự động,…
Sơ đồ nguyên lý và tổng quan chức năng các khối mạch trong hệ thống
3.2.1 Khối xử lý trung tâm cho 2 cụm con – Arduino UNO
Arduino cơ bản là nền tảng điện tử mã nguồn mở, dễ sử dụng với phần mềm và phần cứng Board mạch Arduino có khả năng đọc các tín hiệu đầu vào như ánh sáng từ cảm biến, thao tác từ bàn phím hoặc tin nhắn từ Twitter, và chuyển đổi chúng thành tín hiệu đầu ra như khởi động động cơ, bật đèn LED hoặc chia sẻ nội dung lên mạng xã hội Bạn có thể lập trình board mạch để thực hiện các nhiệm vụ cụ thể bằng cách thiết lập hướng dẫn cho vi điều khiển Để thực hiện điều này, cần sử dụng ngôn ngữ lập trình Arduino và phần mềm Arduino IDE để khởi chạy dữ liệu lập trình.
Arduino được thành lập vào năm 2005 tại Viện thiết kế tương tác Ivrea, Italy, nhằm phục vụ sinh viên Trước đó, sinh viên sử dụng "BASIC Stamp" với giá khoảng $100, một mức giá cao cho sinh viên Massimo Banzi, một trong những nhà sáng lập, đã giảng dạy tại Ivrea Tên gọi "Arduino" được lấy từ một quán bar ở Ivrea, nơi các nhà sáng lập thường gặp gỡ, và quán bar này được đặt theo tên Arduino, Bá tước của Ivrea, vua của Italy từ năm 1002 đến 1014.
Arduino là một công cụ lý tưởng cho việc tạo mẫu nhanh, đặc biệt dành cho học sinh và sinh viên không có nền tảng về điện và lập trình Khi phát triển, Arduino đã thu hút một cộng đồng rộng lớn, giúp mở rộng khả năng sáng tạo và ứng dụng trong nhiều lĩnh vực khác nhau.
Arduino đã bắt đầu thay đổi để đáp ứng nhanh chóng các nhu cầu và thách thức mới, từ board mạch 8-bit đến ứng dụng IoT, thiết bị đeo, máy in 3D và hệ thống nhúng Tất cả các board mạch Arduino đều là mã nguồn mở, cho phép người dùng tự xây dựng và tùy chỉnh theo nhu cầu cụ thể Phần mềm cũng là mã nguồn mở và đang phát triển liên tục nhờ vào sự đóng góp của cộng đồng toàn cầu.
Tại sao lại chọn Arduino?
Arduino đã trở thành một phần quan trọng trong hàng ngàn dự án và ứng dụng nhờ vào sự đơn giản và trải nghiệm người dùng dễ dàng Phần mềm Arduino không chỉ thân thiện với người mới bắt đầu mà còn đủ linh hoạt và đa chức năng để phục vụ những người dùng có kinh nghiệm cao hơn.
Arduino có thể chạy trên các hệ điều hành Mac, Windows và Linux, được sử dụng rộng rãi bởi giáo sư và sinh viên để phát triển công cụ nghiên cứu khoa học với chi phí thấp Nó giúp chứng minh các định luật vật lý và hóa học, đồng thời là điểm khởi đầu cho nghiên cứu về robot và lập trình Các nhà nghiên cứu và kiến trúc sư tạo ra nguyên mẫu tương tác, trong khi nhạc sĩ và nghệ sĩ thử nghiệm với các nhạc cụ mới Ngoài ra, các nhà sản xuất cũng sử dụng Arduino để phát triển các dự án thực tiễn có thể mang đi triển lãm Arduino chính là chìa khóa mở ra thế giới mới mẻ và thú vị.
Board mạch Arduino có giá thành thấp hơn so với nhiều nền tảng vi điều khiển khác Phiên bản Arduino rẻ nhất có thể tự lắp ráp, trong khi các mô đun đã được lắp sẵn cũng có giá dưới mức phải chăng.
The Arduino IDE (Integrated Development Environment) is compatible with Windows, Mac OS, and Linux operating systems Most microcontroller systems are primarily restricted to the Windows platform.
• Môi trường lập trình đơn giản và rõ ràng:
Phần mềm Arduino IDE dễ dàng tiếp cận cho người mới bắt đầu, đồng thời cũng linh hoạt cho người dùng có kinh nghiệm, giúp họ tận dụng tối đa các tính năng Đặc biệt, giảng viên sẽ thấy nó rất thuận tiện vì dựa trên môi trường lập trình xử lý, giúp sinh viên nhanh chóng làm quen với cách hoạt động của Arduino IDE.
• Mã nguồn mở và phần mềm có khả năng mở rộng:
Arduino là một công cụ mã nguồn mở, cho phép lập trình viên mở rộng dễ dàng Ngôn ngữ Arduino có thể được cải tiến thông qua các thư viện C++, và những ai muốn tìm hiểu sâu hơn có thể chuyển đổi sang ngôn ngữ ARV-C Ngoài ra, người dùng cũng có thể thêm mã ARV-C trực tiếp vào chương trình Arduino của mình.
• Mã nguồn mở và phần cứng có khả năng mở rộng:
Board mạch Arduino được công bố dưới dạng bằng sáng chế, cho phép các nhà thiết kế mạch điện tử có kinh nghiệm tạo ra modul riêng của họ, từ đó mở rộng và cải tiến thiết kế Ngay cả những người mới bắt đầu cũng có thể chế tạo modul breadboard, giúp họ hiểu rõ hơn về cách thức hoạt động của board mạch và tiết kiệm chi phí.
Mạch Arduino UNO là một trong những dòng mạch phổ biến nhất dành cho người mới bắt đầu lập trình với Arduino Hiện tại, dòng mạch này đã phát triển đến thế hệ thứ 3, được gọi là Arduino UNO R3.
Arduino Uno R3 là một bảng mạch linh hoạt, lý tưởng cho người mới bắt đầu tìm hiểu về Arduino Mặc dù có thể sử dụng các dòng Arduino khác như Mega, Nano hay Micro, nhưng Uno R3 vẫn là sự lựa chọn phổ biến nhất cho những ai mới bắt đầu.
44 với việc nghiên cứu những ứng dụng thì dòng mạch Arduino UNO là lựa chọn phù hợp nhất để tối ưu hóa hiệu quả nghiên cứu và học hỏi
Các thông số cơ bản của mạch Arduino UNO R3:
- Điện áp đầu vào (khuyên dùng): 7 – 12V
- Điện áp đầu vào (giới hạn): 6 – 20V
- Chân Digital I/O: 14 (với 6 chân PWM output)
- Dòng sử dụng I/O Pin: 20 mA
- Dòng sử dụng 3.3V Pin: 50 mA
- Bộ nhớ Flash: 32 KB (ATmega328P) với 0.5KB dùng bởi bootloader
- Clock Speed: 16 MHz -LED_BUILTIN: 13
Arduino UNO R3 sử dụng ba loại vi điều khiển 8bit AVR: ATmega8 (trên Board Arduino Uno R2), ATmega168 và ATmega328 (trên Board Arduino Uno R3) Các vi điều khiển này có khả năng thực hiện các tác vụ đơn giản như điều khiển đèn LED nhấp nháy, xử lý tín hiệu cho xe điều khiển từ xa, và điều khiển động cơ bước.
45 cơ serve, làm một trạm đo nhiệt độ độ ẩm và hiển thị lên màn hình LCD,… hay – những ứng dụng khác
Hệ thống giao diện Web quản lý
Việc phát triển hệ thống cập nhật dữ liệu liên tục yêu cầu một cơ sở dữ liệu hiệu quả để lưu trữ và xử lý thông tin thu thập được Để tạo ra một môi trường
Website, hay còn gọi là trang web, là công cụ quan trọng để truyền tải thông tin, quảng cáo và giới thiệu sản phẩm, dịch vụ Đây là mô hình hiệu quả mà doanh nghiệp và cá nhân có thể sử dụng để bán hàng, giao tiếp và trao đổi trực tuyến Website trở thành hỗ trợ không thể thiếu cho các hoạt động quảng cáo, kinh doanh và bán hàng trong thời đại số hiện nay.
3.3.2 Thiết kế website là gì? web
Thiết kế web yêu cầu nhiều kỹ năng đa dạng, bao gồm thiết kế giao diện, mã hóa HTML, lập trình và tối ưu hóa công cụ tìm kiếm Thông thường, các cá nhân làm việc theo nhóm, mỗi người phụ trách một khâu riêng biệt Mặc dù một số cá nhân có thể đảm nhận tất cả các công đoạn, nhưng điều này thường dẫn đến sự thiếu chuyên nghiệp, vì những người chuyên về thiết kế thường có tính thẩm mỹ cao hơn so với những người chuyên về lập trình Hơn nữa, những lập trình viên tập trung vào việc phát triển mã sẽ có thời gian và sự chú ý để nâng cấp công nghệ hiệu quả hơn.
3.3.3 Thiết kế website cho hệ thống quan trắc
3.3.3.1 Thiết kế giao diện website (client-side) Để thiết kế giao diện của website hay có thể gọi là client side, giao diện - người dùng, cho hệ thống quan trắc thông minh, tác giả đã sử dụng ngôn ngữ HTML5 (Hyper-Text Markup Language) để tạo nên bộ xương cơ bản nhất cho website, cùng với CSS (Cascading Style Sheets) để tạo kiểu và sắp xếp các khung hình cho website, cuối cùng là ngôn ngữ Javascript để xây dựng cách website ứng xử với các thao tác của người dùng
HTML (Ngôn ngữ đánh dấu siêu văn bản) là ngôn ngữ chính để tạo ra các trang web trên World Wide Web, cùng với CSS và JavaScript tạo thành bộ ba công nghệ nền tảng Được phát triển từ SGML, HTML phục vụ cho các tổ chức có nhu cầu xuất bản phức tạp và đã trở thành một tiêu chuẩn Internet do W3C duy trì Phiên bản mới nhất trước đây là HTML 4.01 (1999), sau đó được thay thế bởi XHTML, và hiện tại, HTML5 đang trong quá trình phát triển, hứa hẹn mang đến diện mạo mới cho web.
Bằng cách sử dụng HTML động hoặc Ajax, lập trình viên có thể tạo ra và xử lý một lượng lớn công cụ, từ các chương trình soạn thảo văn bản cho đến những ứng dụng phức tạp hơn.
60 đơn giản có thể gõ vào ngay từ những dòng đầu tiên cho đến những công cụ – – xuất bảnWYSIWYGphức tạp
• Ngôn ngữ CSS (Cascading Style Sheets):
- Trong tin học, các tập tin định kiểu theo tầng – Cascading Style
Sheets (CSS) – được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML
CSS giúp giảm thiểu sự lộn xộn trong mã HTML của trang web bằng cách sử dụng các thẻ quy định kiểu dáng như chữ đậm, chữ in nghiêng, chữ gạch chân và màu sắc Điều này làm cho mã nguồn của trang web trở nên gọn gàng hơn, tách biệt nội dung và định dạng hiển thị, từ đó dễ dàng hơn cho việc cập nhật nội dung.
CSS cho phép chúng ta tạo ra các kiểu dáng có thể áp dụng cho nhiều trang web, giúp tiết kiệm thời gian và công sức bằng cách tránh việc lặp lại định dạng cho các trang web tương tự.
JavaScript là một ngôn ngữ lập trình thông dịch hiện đại, phát triển từ các ý niệm nguyên mẫu, và được sử dụng phổ biến cho cả phía người dùng và máy chủ với Node.js Ngôn ngữ này được tạo ra bởi Brendan Eich tại Netscape, ban đầu mang tên Mocha, sau đó đổi thành LiveScript, và cuối cùng là JavaScript.
Giống Java, JavaScript có cú pháp tương tự C, nhưng nó gần vớiSelfhơn
Java .js là phần mở rộng ường được dùng cho tập tin mã nguồn th JavaScript
3.3.3.2 Thiết kế hệ quản trị cơ sở dữ liệu (server-side) Để tạo ra một hệ cơ sở dữ liệu với máy chủ ngay tại nơi nhận dữ liệu từ hệ thống quan trắc hay còn gọi là server side, nhóm đã chọn sử dụng một chương - trình tạo máy chủ Web phổ biến và được sử dụng nhiều nhất hiện nay đó là XAMPP Và trong XAMPP cũng đã có tích hợp sẵn hệ quản trị cơ sở dữ liệu tự do nguồn mở là MySQL và ngôn ngữ PHP để tạo ra các tương tác với server và cơ sở dữ liệu Ngoài ra thì nhóm cũng đã dùng phần mềm mã nguồn mở phpMyAdmin để quản lý cơ sở dữ liệu MySQL thông qua giao diện Web
• Cơ sở dữ liệu (Database):
Cơ sở dữ liệu là tập hợp thông tin có cấu trúc, thường được hiểu trong công nghệ thông tin như một hệ thống liên kết các dữ liệu lớn, đủ để lưu trữ trên thiết bị như đĩa hoặc băng Dữ liệu này được quản lý dưới dạng các tập tin trong hệ điều hành hoặc lưu trữ trong hệ quản trị cơ sở dữ liệu.
Cơ sở dữ liệu giúp tối thiểu hóa sự trùng lặp thông tin, từ đó đảm bảo tính nhất quán và toàn vẹn của dữ liệu.
Cơ sở dữ liệu cho phép truy xuất dữ liệu theo nhiều phương thức khác nhau, đồng thời hỗ trợ nhiều người sử dụng cùng lúc.
• Phần mềm tạo máy chủ:
Xampplà là một chương trình tạo máy chủ Web tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin Khác với Appserv, Xampp cung cấp một giao diện quản lý tiện lợi, cho phép người dùng dễ dàng bật, tắt hoặc khởi động lại các dịch vụ máy chủ bất kỳ lúc nào.
XAMPP là một phần mềm mã nguồn mở đa nền tảng do Apache Friends phát triển, bao gồm Apache HTTP Server, cơ sở dữ liệu MariaDB và các trình thông dịch cho PHP và Perl Tên gọi XAMPP là viết tắt của Cross-Platform, Apache, MariaDB, PHP và Perl Phần mềm này cung cấp một giải pháp nhẹ và đơn giản cho lập trình viên, giúp họ dễ dàng tạo máy chủ web local để kiểm tra và triển khai trang web Tất cả các thành phần cần thiết cho phát triển web, bao gồm máy chủ Apache, cơ sở dữ liệu MariaDB và ngôn ngữ lập trình PHP, được gói gọn trong một tệp duy nhất XAMPP có khả năng hoạt động trên nhiều hệ điều hành như Linux, Windows và Mac, giúp việc chuyển đổi từ máy chủ local sang máy chủ trực tuyến trở nên dễ dàng hơn.
• Hệ quản trị cơ sở dữ liệu MySQL:
Tổng quan về cảm biến
Cảm biến là thiết bị điện tử có khả năng nhận diện các trạng thái hoặc quá trình vật lý và hóa học trong môi trường cần khảo sát Chúng chuyển đổi thông tin này thành tín hiệu điện, giúp thu thập dữ liệu về các trạng thái và quá trình đó.
Cảm biến thường được lắp đặt trong các vỏ bảo vệ, hình thành nên đầu thu hoặc đầu dò (test probe), và thường đi kèm với các mạch điện hỗ trợ Trong nhiều trường hợp, toàn bộ hệ thống này được gọi chung là "cảm biến".
• Có nhiều loại cảm biến khác nhau và có thể chia ra hai nhóm chính:
Cảm biến vật lý là thiết bị quan trọng giúp phát hiện và đo lường các loại sóng điện từ như ánh sáng, tia tử ngoại, tia hồng ngoại, tia X, và tia gamma Ngoài ra, chúng còn có khả năng ghi nhận các hạt bức xạ, nhiệt độ, áp suất, âm thanh, rung động, khoảng cách, chuyển động, gia tốc, từ trường và trọng trường Những cảm biến này đóng vai trò thiết yếu trong nhiều ứng dụng công nghệ và khoa học hiện đại.
-Cảm biến hóa học: độ ẩm độ PH,, ion, các hợp chất đặc hiệu, khói
• Các đặc trưng của cảm biến:
- Độ nhạy: Gia số nhỏ nhất có thể phát hiện
- Mức tuyến tính: Khoảng giá trị được biến đổi có hệ số biến đổi cố định
- Dải biến đổi: Khoảng giá trị biến đổi sử dụng được
- Ảnh hưởng ngược: Khả năng gây thay đổi môi trường
- Mức nhiễu ồn: Tiếng ồn riêng và ảnh hưởng của tác nhân khác lên kết quả
- Sai số xác định: Phụ thuộc độ nhạy và mức nhiễu
- Độ trôi: Sự thay đổi tham số theo thời gian phục vụ hoặc thời gian tồn tại (date)
- Độ trễ: Mức độ đáp ứng với thay đổi của quá trình
- Độ tin cậy: Khả năng làm việc ổn định, chịu những biến động lớn của môi trường như sốc các loại
- Điều kiện môi trường: Dải nhiệt độ, độ ẩm, áp suất làm việc được
• Cảm biến chủ động và bị động:
Cảm biến chủ động và cảm biến bị động phân biệt ở nguồn năng lượng dùng cho phép biến đổi lấy từ đâu:
Cảm biến chủ động không cần nguồn điện bổ sung để chuyển đổi tín hiệu điện Một ví dụ điển hình là cảm biến áp điện, được làm từ vật liệu gốm, có khả năng chuyển đổi áp suất thành điện tích trên bề mặt Ngoài ra, các antenna cũng được xem là loại cảm biến chủ động.
Cảm biến bị động là loại cảm biến không cần nguồn điện bổ sung để chuyển đổi tín hiệu, điển hình như photodiode, khi có ánh sáng chiếu vào sẽ làm thay đổi điện trở của tiếp giáp bán dẫn p-n Ngoài ra, các cảm biến sử dụng biến trở cũng thuộc nhóm cảm biến bị động.
- Phân loại thì như vậy nhưng một số cảm biến nhiệt độ kiểu lưỡng kim dường như không thể xếp hẳn vào nhóm nào, nó nằm vào giữa
• Phân loại theo nguyên lý hoạt động:
-Cảm biến điện trở:Hoạt động dựa theo di chuyển con chạy hoặc góc quay của biến trở, hoặc sự thay đổi điện trở do co giãn vật dẫn
Cảm biến cảm ứng bao gồm nhiều loại khác nhau, mỗi loại có ứng dụng riêng Cảm biến biến áp vi phân (LVDT) được sử dụng để đo vị trí chính xác Cảm biến cảm ứng điện từ, như các antenna, phục vụ trong việc thu nhận tín hiệu Cảm biến dòng xoáy, thường thấy trong các đầu dò máy dò khuyết tật kim loại và máy dò mìn, giúp phát hiện các bất thường trong vật liệu Cuối cùng, cảm biến cảm ứng điện động chuyển đổi chuyển động thành tín hiệu điện, ví dụ như microphone điện động và đầu thu sóng địa chấn (Geophone).
- Cảm biến điện dung:Sự thay đổi điện dung của cảm biến khi khoảng cách hay góc đến vật thể kim loại thay đổi
- Cảm biến điện trường: Ít dùng
- Cảm biến từ giảo (magnetoelastic): Ít dùng
- Cảm biến từ trường: Cảm biến hiệu ứng Hall, cảm biến từ trường dùng vật liệu sắt từ, dùng trong từ kế
Cảm biến áp điện sử dụng gốm áp điện như titanat bari để chuyển đổi áp suất thành tín hiệu điện, thường được ứng dụng trong các microphone thu âm và đầu thu sóng địa chấn trong nước (Hydrophone), như trong các thiết bị Sonar.
Cảm biến quang, bao gồm cảm biến ảnh CMOS và cảm biến OCD, được sử dụng rộng rãi trong nhiều lĩnh vực nhờ vào độ tin cậy và kích thước nhỏ gọn Một ví dụ điển hình là đầu dò giấy trong khay máy in, được chế tạo từ photodiode hoạt động ở các vùng phổ khác nhau Những cảm biến này hiện đang dẫn đầu trong việc ứng dụng công nghệ quang học.
- Cảm biến huỳnh quang, nhấp nháy: Sử dụng các chất phát quang thứ cấp để phát hiện các bức xạ năng lượng cao hơn, như các tấm kẽm sulfua
- Cảm biến điện hóa:Các đầu dò ion, độ pH
- Cảm biến nhiệt độ: Cặp lưỡng kim, hoặc dạng linh kiện bán dẫn như Precision Temperatur Sensor LM335 có hệ số 10 mV/°K
• Vai trò của cảm biến trong tự động hóa:
Cảm biến có vai trò quan trọng trong các bài toán điều khiển quá trình nói riêng và trong các hệ thống điều khiển tự động nói chung
- Là thiết bị có khả năng cảm nhận các tín hiệu điều khiển vào, ra
- Có vai trò đo đạc các giá trị
- Giới hạn cảm nhận với đại lượng vật lý cần đo
3.4.2 Lựa chọn thiết bị phần cứng cảm biến
3.4.2.1 Cảm biến đo nhiệt độ
Hình 3.24: Cảm biến đo nhiệt độ DS18B20
- Cảm biến đo của hãng MAXIM sử dụng IC dạng giao tiếp số, có chức năng báo vượt ngưỡng
- Đây là cảm biến đo dạng kỹ thuật số nên không bị suy hao trên đường truyền Thông số kỹ thuật:
- Khoảng nhiệt độ sử dụng: -55 o C - 125 o C
- Độ nhạy, độ ổn định, độ chính xác cao, được ứng dụng trong rất nhiều hoạt động y tế, các ngành hàng không,
- Độ chính xác: 0.5 độ C khi đo trong dải -10 -> 85 o C
- Độ phân giải cảm biến có thể điều chỉnh từ 9 – 12 bits
- Chuẩn giao tiếp: Dạng 1 dây data
- Đầu ống đo không gỉ đường kính 6mm, dài 50mm
Hình 3.25: Cảm biến đo pH E-201-C
Cảm biến pH được kết nối với BNC trên bo mạch đến cổng analog của Arduino, cho phép đo lường giá trị pH của dung dịch một cách dễ dàng.
Cảm biến độ pH trong nước cho phép bạn dễ dàng đo lường mức độ pH bằng cách chỉ cần nhúng đầu đo vào nước ao, hồ cá hoặc bể bơi, giúp bạn nhanh chóng thu được giá trị pH chính xác.
- Cảm biến độ pH có độ nhạy và chất lượng cao, dễ dàng sử dụng
- Độ chính xác: 0.1 pH (25 độ C)
- Thời gian đáp ứng: Nhỏ hơn 1 phút
3.4.2.3 Cảm biến đo nồng độ oxi
Hình 3.26: Cảm biến đo oxi DO – 500 Tính năng:
- Đo độ oxy hòa tan trong nướcThông số kỹ thuật:
- Thời gian đáp ứng: 3 – 5 phút
- Nhiệt độ làm việc: từ -10 o C đến 110 o C
3.4.2.4 Cảm biến đo độ dẫn điện
Hình 3.27:Cảm biến Conductivity Electrode
- Đo độ dẫn điện trong nướcThông số kỹ thuật:
- Thời gian đáp ứng: 1 – 2 phút
3.4.2.5 Cảm biến đo ion Ca2+
Hình 3.28: Cảm biến Ca 501_Calcium Ion
- Đo nồng độ ion Ca2+Thông tin cảm biến:
- Thời gian đáp ứng: 1 – 2 phút
- Nhiệt độ làm việc: 5 60 độ C –
Điện áp hoạt động của cảm biến là 0.8V, giúp đảm bảo khả năng đồng bộ giữa các đầu đo của các cảm biến khác nhau Để đạt được điều này, các chuẩn giao tiếp khác nhau của cảm biến được nhóm lại và chuyển đổi về cùng một chuẩn đầu đo BNC.
Hiệu chuẩn cảm biến
Hình 3.29: Dung dịch chuẩn pH 9.18 500ml
Là dung dịch đã biết rõ nồng độ, thành phần và tính chất qua việc pha chế và đo lường bằng các thiết bị có độ chính xác cao
Hiệu chuẩn thiết bị đo là quá trình điều chỉnh thiết bị để đáp ứng yêu cầu kỹ thuật của nhà sản xuất, đồng thời cung cấp dữ liệu và báo cáo chứng nhận về sự phù hợp của sản phẩm Đối với kỹ sư và kỹ thuật viên, hiệu chuẩn xác định mối quan hệ giữa giá trị đại lượng cần đo và chỉ thị trên thiết bị Quá trình này có thể thực hiện thông qua việc so sánh giá trị đo lường.
72 trị đọc được trên thiết bị đo với giá trị được đưa ra bởi một thiết bị đo lường làm chuẩn hay thiết bị mẫu
• Mục đích việc hiệu chuẩn thiết bị đo thường xuyên:
Trong môi trường thủy sản Việt Nam hiện nay, vấn đề sai lệch cảm biến ngày càng nghiêm trọng do điều kiện nhiệt đới ẩm và nước lợ chứa nhiều rong rêu Hầu hết các thiết bị đều bị lão hóa theo thời gian, dẫn đến mất ổn định và sai lệch thông số kỹ thuật Thao tác xử lý thông tin không chính xác có thể làm giảm độ chính xác của thiết bị, ngay cả khi bề ngoài vẫn bình thường Cặn lắng bám vào đầu đo cũng ảnh hưởng đến độ chính xác Việc hiệu chuẩn định kỳ là cần thiết để đảm bảo thiết bị đáp ứng yêu cầu kỹ thuật, và phải được thực hiện ngay sau khi sửa chữa hoặc bảo trì Hiệu chỉnh theo lịch trình mang lại nhiều lợi ích về chất lượng, năng suất và doanh thu.
3.5.3.1 Khái niệm Đường cong chuẩn cảm biến là đường cong biểu diễn sự phụ thuộc của đại lượng điện (s) ở đầu ra của cảm biến và giá trị của đại lượng đo (m) ở đầu vào Đường cong chuẩn có thể biểu diễn bằng biểu thức đại số dưới dạng s F(m), hoặc đồ thị như Hình 3.2
Hình 3.30: Đường cong chuẩn cảm biến a) Dạng đường cong chuẩn b) Đường cong chuẩn của cảm biến tuyến tính
Dựa vào đường cong chuẩn của cảm biến, chúng ta có thể xác định giá trị mi chưa biết của m thông qua giá trị đo được sicủa s Để thuận tiện trong sử dụng, các cảm biến thường được thiết kế với sự phụ thuộc tuyến tính giữa đại lượng đầu ra và đầu vào, với phương trình s = F(m) có dạng s = am + b, trong đó a và b là các hệ số, tạo ra đường cong chuẩn dưới dạng đường thẳng.
3.5.3.2 Phương pháp chuẩn cảm biến:
Chuẩn cảm biến là quá trình đo lường nhằm xác định mối quan hệ giữa giá trị đo được ở đầu ra và giá trị thực của đại lượng đo, đồng thời xem xét các yếu tố ảnh hưởng Mục tiêu của việc này là xây dựng đường cong chuẩn dưới dạng đồ thị hoặc biểu thức đại số Trong quá trình chuẩn cảm biến, các giá trị chính xác của đại lượng đo được sử dụng để đo giá trị tương ứng, từ đó tạo ra đường cong chuẩn.
Hình 3.31: Phương pháp chuẩn cảm biến
Khi đại lượng đo chỉ bị ảnh hưởng bởi một đại lượng vật lý duy nhất và cảm biến không nhạy cảm với các yếu tố khác, phương pháp chuẩn đơn giản được áp dụng.
Chuẩn đơn giản là quá trình đo các giá trị đầu ra tương ứng với các giá trị đầu vào không đổi Việc chuẩn này được thực hiện thông qua hai phương pháp khác nhau.
Chuẩn trực tiếp là phương pháp đo lường sử dụng các giá trị đã biết từ các mẫu chuẩn hoặc các phần tử so sánh có độ chính xác cao.
Chuẩn gián tiếp là phương pháp kết hợp cảm biến cần chuẩn với một cảm biến so sánh đã có sẵn đường cong chuẩn, cả hai được đặt trong cùng điều kiện làm việc Khi tác động lên hai cảm biến với cùng một giá trị đại lượng đo, ta nhận được giá trị tương ứng của cảm biến so sánh và cảm biến cần chuẩn Việc lặp lại với các giá trị khác cho phép xây dựng đường cong chuẩn cho cảm biến cần chuẩn.
Khi cảm biến có độ trễ, giá trị đo ở đầu ra không chỉ phụ thuộc vào giá trị tức thời của đại lượng cần đo mà còn vào giá trị trước đó của đại lượng này Để xử lý tình huống này, người ta áp dụng phương pháp chuẩn nhiều lần.
- Đặt lại điểm 0 của cảm biến: đại lượng cần đo và đại lượng đầu ra có giá trị tương ứng với điểm gốc, m = 0 và s = 0
- Đo giá trị đầu ra theo một loạt giá trị tăng dần đến giá trị cực đại của đại lượng đo ở đầu vào
- Lặp lại quá trình đo với các giá trị giảm dần từ giá trị cực đại
Khi chuẩn nhiều lần cho phép xác định đường cong chuẩn theo cả hai hướng đo tăng dần và đo giảm dần
3.5.4 Xử lý sai số cảm biến
Trong đo lường, kết quả đo đạc luôn chỉ được coi là tương đối so với giá trị thực do ảnh hưởng của các yếu tố chủ quan và khách quan Độ chênh lệch giữa giá trị đo được và giá trị thực được gọi là sai số.
Sai số gây ra bởi nhiễu được phân làm 2 loại chính: sai số hệ thống và sai số ngẫu nhiên
Hình 3.32: Xử lý sai số
Sau khi thiết lập đường chuẩn cho cảm biến, tiến hành đo các mẫu dung dịch và so sánh với các thiết bị đo chuẩn khác để xác định sai số của dụng cụ đo.
Khi lập trình, việc khai báo biến offset để bù trừ sai lệch trong kết quả đo thực tế giúp giảm thiểu sai số của dụng cụ đo Phương pháp này có ưu điểm là đơn giản, nhưng yêu cầu phải so sánh với thiết bị đo chuẩn khác hoặc sử dụng nhiều mẫu dung dịch chuẩn, dẫn đến chi phí cao Hơn nữa, việc tìm kiếm biến offset phù hợp là khó khăn, ngay cả khi thực hiện đo nhiều lần, vì tham số này mang tính ngẫu nhiên và không có quy luật rõ ràng.
Khi sử dụng cảm biến, giá trị trả về thường dao động xung quanh vị trí cân bằng, mặc dù sự thay đổi này có thể rất nhỏ Nguyên nhân chính của hiện tượng này là do nhiễu Để giảm thiểu ảnh hưởng của nhiễu, nhóm nghiên cứu đã chọn phương pháp lấy mẫu trung bình làm giải pháp hiệu quả cho các cảm biến.
Để cải thiện độ chính xác của kết quả đo, việc tăng số lượng lớp chia trung bình là cần thiết Đồng thời, các giá trị vượt ngưỡng đo bất thường cần được loại bỏ trước khi áp dụng thuật toán lấy mẫu trung bình.
Kết luận chương 3
Chương 3 của luận văn trình bày phương án thiết kế hệ thống mạch xử lý cảm biến, tập trung vào việc thu thập và xử lý nhiễu gây sai số trong kết quả đo Với đặc thù của quá trình đo trong môi trường nước, việc hiệu chuẩn cảm biến liên tục theo thời gian là cần thiết để đảm bảo độ chính xác của kết quả Bên cạnh đó, luận văn cũng đề xuất phương án thiết kế giao diện quản lý người dùng trực quan, giúp theo dõi thông số và điều khiển thiết bị từ xa một cách hiệu quả.
KẾT QUẢ THỰC NGHIỆM VÀ HƯỚNG PHÁT TRIỂN ĐỀ
Kết quả thu được
Hình 4.1: Hệ thống gồm cụm trung tâm và 2 cụm đo con
Sau khi xác định các linh kiện và sơ đồ nguyên lý mạch cần thiết, tác giả đã thực hiện và hoàn thành các mô đun Số lượng thông số đo được có thể điều chỉnh bằng cách thêm hoặc bớt các mô đun mạch xử lý.
Phần mềm điều khiển được phát triển bằng ngôn ngữ C, sử dụng giao diện Arduino IDE để giao tiếp với Arduino và Node MCU Hệ thống cho phép giao tiếp giữa hai Arduino qua Zigbee và kết nối Node MCU với MQTT Broker HASS được triển khai trên Docker trong hệ điều hành Linux Raspbian trên Raspberry Pi 3B+ Mô hình hệ thống đã được thiết kế để kiểm tra tính chính xác và trực quan của hệ thống.
Quá trình hoạt động của hệ thống đo lường
Việc vận hành chi tiết của hệ thống đã được phân tích chi tiết ở chương III
Về tổng quát thì hệ thống tiến hành theo 3 giai đoạn chính:
Trong giai đoạn 1, khi hệ thống hoạt động, các cụm đo con sẽ kiểm tra trạng thái kết nối mạng Nếu sau 10 giây mà không thể kết nối, cụm hệ thống con thứ hai sẽ truyền dữ liệu qua hệ thống con thứ nhất bằng sóng Zigbee.
• Giai đoạn 2: Raspberry đã kết nối với mạng và tạo server chứa MQTT
Broker MQTT nhận dữ liệu từ hai cụm con và hiển thị trên giao diện web cho người dùng Người nuôi có thể theo dõi các thông số cảm biến và tình trạng hoạt động của hệ thống điều khiển, nhận cảnh báo kịp thời và được cung cấp giải pháp cụ thể để khắc phục tình trạng nước nuôi trồng thủy sản không ổn định.
Giai đoạn 3: Khi nhận lệnh từ giao diện web, người dùng sẽ gửi dữ liệu từ MQTT Broker xuống các Client để thực hiện lệnh điều khiển động cơ và thiết bị điện.
Hình 4.2 Sơ đồ giải thuật điều khiển hệ thống của trạm chính
MQTT Broker Kiểm tra các tiêu đề (Topic)
Gửi lệnh tắt ĐK xuống MQTT Client NodeMCU) qua
Gửi lệnh bật ĐK xuống MQTT Client (NodeMCU) qua wifi
Kiểm tra các tiêu đề cảm biến
Gửi dữ liệu trạng thái lên giao diện
Tác động lên giao diện Web Đúng
Hình 4.3 Sơ đồ giải thuật điều khiển hệ thống của trạm con
Quá trình chạy thử
- Các mạch như Arduino, Zigbee sẽ có đèn báo nguồn
- Nguồn cấp cho hệ thống cần đảm bảo là ở 12V cho các trạm con và Raspberry Pi là nguồn 5V/2.5A
- Mạch Zigbee, Arduino và ESP8266 được cắm chồng: ESP8266 giao tiếp với Arduino qua phương thức truyền nhận I2C, Zigbee giao tiếp với Arduino qua phương thức UART (RX, TX)
- Ngoài ra các mạch cảm biến, mạch rơ le,… sẽ cắm vào các chân đã xác định như chân Analog, Digital,… của Arduino
- Khi tiến hành chạy, có thể check qua phần mềm Terra Term để thấy dữ liệu trên Arduino và ESP8266, tình trạng hoạt động
- Theo dõi giá trị cảm biến trên giao diện Web, thử bật/Tắt Rơle để kiểm tra MQTT và Zigbee hoạt động chính xác không
- Thực hiện lệnh PING để đảm bảo kết nối phần mềm hoạt động tốt trong phạm vi mạng mạng nội bộ
Truyền dữ liệu đo lên
Ki ểm tra các tiêu đề
Ngắt cơ cấu chấp hành
Kích hoạt các module Đúng Sai
Chế độ bằng tay từ giao diện Web
Truy cập giao diện Web từ điện thoại hoặc máy tính qua địa chỉ IP của Raspberry Pi để kiểm tra thông số cảm biến và điều khiển thiết bị qua Internet Bạn cũng có thể theo dõi trạng thái rơ le để biết tình trạng đóng hoặc ngắt.
4.3.3 Quá trình kết nối giữa MQTT Broker trên trạm chính và Client trên trạm đo con:
MQTT Client trên cụm đo 1/2 sẽ gửi chuỗi JSON chứa dữ liệu cảm biến đến các tiêu đề /hass1/temp1 hoặc /hass2/temp2 đã được khai báo trong MQTT Broker MQTT Broker sẽ theo dõi các tiêu đề này để trích xuất chuỗi JSON và hiển thị lên giao diện WEB.
MQTT Client trên cụm đo 1/2 sẽ theo dõi tiêu đề /hass1/switch1; khi nút nhấn trên giao diện Web được tác động, MQTT Broker sẽ gửi chuỗi JSON chứa dữ liệu khối = 0/1 đến tiêu đề này Nếu dữ liệu khối = 1, Client sẽ bật rơ le, ngược lại nếu = 0, rơ le sẽ tắt Đồng thời, một chuỗi JSON chứa trạng thái rơ le sẽ được gửi đến tiêu đề /hass1/switchConfirm1/, mà MQTT Broker theo dõi để cập nhật trạng thái bật/tắt trên giao diện web.
- Cụm đo 1: MQTT Client ID: ESP8266-T1 có thể thay đổi được
Danh sách tiêu đề: /hass1/temp1, /hass1/switch1, /hass1/switchConfirm1/ Theo dõi: /hass1/switch1
Gửi lên: /hass1/temp1, /hass1/switchConfirm1/
- Cụm đo 2: MQTT Client ID: ESP8266-T2 có thể thay đổi được
Danh sách tiêu đề: /hass2/temp2, /hass2/switch2, /hass2/switchConfirm2/ Theo dõi: /hass2/switch2
Gửi lên: /hass2/temp2, /hass2/switchConfirm2/
4.3.4 Quá trình kết nối qua Zigbee giữa 2 trạm con đóng vai trò Router và Gateway (Coordinator):
Cụm đo 1 đóng vai trò Gateway sẽ thiết lập mạng Zigbee, phân phối địa chỉ đến Router
Cụm đo 2 đóng vai trò Router sẽ phân phối dữ liệu đến Gateway và các thiết bị Zigbee khác nếu có
Cụm đo 2 sẽ kết nối với cụm đo 1 để gửi dữ liệu, bao gồm địa chỉ trong mạng Zigbee, dữ liệu và kích thước dữ liệu qua sóng Zigbee Cụm đo 1 sẽ kiểm tra địa chỉ của cụm đo 2 và nhận dữ liệu từ cụm đo 2 Tương tự, cụm đo 1 cũng sẽ gửi dữ liệu và kích thước dữ liệu đến cụm đo 2 theo địa chỉ mà cụm đo 2 cung cấp.
Bài toán xử lý cảm biến là một yếu tố quan trọng trong hệ thống, đảm bảo độ tin cậy và tuổi thọ của cảm biến Do đó, tác giả đã tìm hiểu và tham khảo kết quả tính toán cảm biến dựa trên các tiêu chuẩn của loại cảm biến sử dụng điện cực đo phù hợp.
4.3.5 Các cảm biến hệ thống thực tế
4.3.5.1 Với cảm biến đo pH, đường chuẩn trong phạm vi tuyến tính có dạng:
Với pH_buffer_1 4.00 và buffer_1_voltage là 3.04
Với pH_buffer_2 6.86 và buffer_2_voltage là 2.52 a = (pH_buffer_2 - pH_buffer_1) / (buffer_2_voltage - buffer_1_voltage); b = (pH_buffer_2 + pH_buffer_1) / 2 - a * (buffer_2_voltage + buffer_1_voltage)
=> Phương trình đường cảm biến pH: y =ax+b là giá trị pH cần giám sát
4.3.5.2 Với cảm biến đo độ dẫn điện Conductivity, đường chuẩn trong phạm vi tuyến tính có dạng:
Với conductivity_buffer_1 là 1413 và buffer_1_voltage_conductivity là 0.44 Với conductivity_buffer_2 là 12880 và buffer_2_voltage_conductivity là 1.15 a
(buffer_2_voltage_conductivity - buffer_1_voltage_conductivity); b
(buffer_2_voltage_conductivity + buffer_1_voltage_conductivity) / 2;
=> Phương trình đường cảm biến độ dẫn điện Conductivity: y =ax+b
Từ đó ta có giá trị độ mặn của nước tính theo phương trình Weiss: salinity=va1[0] + va1[1] * pow(Rt, 0.5) + va1[2] * Rt + va1[3] * Rt 1.5 + va1[4] * Rt 2 + va1[5] * Rt 2.5 + delta_S
Rt = giá trị_điều_kiện / (-0.0267243 * t + 4.6636947 * t^3 + 861.3027640 * t + 29035.1640851) delta_S = ((t - 15) / (1 + 0.0162 * (t - 15))) * (va2[0] + va2[1] * Rt^0.5 + va2[2] * Rt + va2[3] * Rt^1.5 + va2[4] * Rt + va2[5] * 2 * Rt^2.5) Đối với cảm biến đo nồng độ oxy DO, đường chuẩn trong phạm vi tuyến tính có dạng như trên.
Với buffer_1_voltage_DO là 0.04 trong dd hiệu chuẩn DO 0 và DO_buffer_1 là 23.75
Với buffer_2_voltage_DO là 0.85 ở ngay trên mặt nước và DO_buffer_2 là 760 a = (DO_buffer_2 - DO_buffer_1) / (buffer_2_voltage_DO - buffer_1_voltage_DO); b = (DO_buffer_2 + DO_buffer_1) / 2 - a *
(buffer_2_voltage_DO + buffer_1_voltage_DO) / 2;
=> Phương trình đường cảm biến DO: y =ax+b
Từ đó ta có giá trị nồng độ ôxi trong nước tính theo công thức Garcia và Gordon:
DO = Rt * Fs * Fp Với t: nhiệt độ đo được trong nước theo độ Celsius
Salinity: Độ mặn của nước
DO_value: Giá trị lấy được từ phương trình đường cảm biến DO
Rt = 1.42905*exp(2.0097 3.22014* + Ts + 4.05010* Ts 2 +4.94457* Ts 3 −0.256847* Ts 4 +3.88767* Ts 5 )
Fs = exp(( 0.00624523− −0.00737624* Ts − 0.0103410* Ts 2 −0.000817083* Ts 3 )* salinity −4.88682*10 −7 * salinity 2 )
Với cảm biến nhiệt độ, Hoạt động của cảm biến nhiệt độ chạy mô phỏng trên Matlab mô tả như ở hình dưới với 300 lấy mẫu
Hình 4.4: Hoạt động của cảm biến nhiệt độ trên đồ thị Matlab
4.3.6 Xây dựng giao diện web của người dùng trực quan:
Hình 4.5: Giao diện trang tổng quát của hệ thống
Phần giao diện tổng quát cung cấp liên kết đến các trang dự báo và theo dõi tình trạng thời tiết Trong khi đó, tab giao diện chính thực thi hệ thống đã được trình bày chi tiết trong phần thiết kế giao diện Web.
Giao diện chính của hệ thống cho phép người dùng theo dõi trực quan giá trị cảm biến theo thời gian thực, bao gồm mô phỏng cho hai cảm biến nhiệt độ và pH, cùng với khả năng điều khiển trực tiếp các module.
Rơ le qua việc bấm chọn vào biểu tượng bật/tắt, có thay đổi màu nếu Rơ le đã
Tab thứ ba cho phép các tác giả kiểm tra trạng thái kết nối của các cụm đo và cụm trung tâm với mạng internet thông qua lệnh PING Nếu xảy ra tình trạng mất kết nối trong mạng nội bộ, người dùng có thể nhanh chóng nhận biết và thực hiện các biện pháp khắc phục cần thiết.
Hình 4.6: Giao diện kiểm tra kết nối
4.3.7 Kết quả đo của hệ thống thiết kế so với đo từ cảm biến dùng tay sử dụng cảm biến của HANNA:
Sau một tháng thử nghiệm thực tế tại ao nuôi tôm tinh Bạc Liêu, kết quả thu được rất khả quan Các thông số môi trường nước đã được gửi và lưu trữ đều đặn, cập nhật liên tục trong ba tuần đầu Tuy nhiên, sau đó đã xảy ra sai lệch ở cảm biến, cần tiến hành hiệu chuẩn lại.
Hình 4.7: Bảng so sánh trong 1 ngày với ao nuôi tôm bạt kích thước 1 ha với kết quả đo độ pH, nhiệt độ, nồng độ oxi trong môi trường nước
Theo kết quả thu được so với máy đo của HANNA, ta có đánh giá sơ bộ sai số hệ thống như sau:
Hình 4.8 Sai số các kết quả đo giữa hệ thống và máy đo HANNA
Kết quả đo trong khoảng thời gian cho thấy giá trị DO tại một số thời điểm có sai lệch lớn hơn mức cho phép (> 1.5mg/l) Nguyên nhân là do thiết kế mạch xử lý cho cảm biến DO chưa đạt yêu cầu tối ưu, và tiêu chuẩn môi trường hiệu chuẩn cảm biến chưa đảm bảo Cần cải tiến các yếu tố này để phát triển hệ thống trong tương lai.
Kết luận chương 4
Chương 4 đã trình bày được các kết quả đạt được của luận văn thông qua quá trình chạy thử hệ thống được xây dựng gồm 1 trạm trung tâm và 2 trạm con với các kết quả thông số từ cảm biến đo, điều khiển được thiết bị từ xa thông qua giao diện quản lý người dùng trực quan qua Web Kết quả được so sánh và chạy thử trong hệ thống so với máy đo cầm tay của HANNA để đánh giá độ chính xác Các thiết bị được điều khiển một cách chính xác với đáp ứng bé hơn 1s, thời gian hết kết nối của các bản tin với MQTT trên đường truyền Internet là 10s, thời gian hết kết nối của Zigbee là 15s Các gói tin được thực hiện truyền dẫn theo giao
MQTT là một giao thức truyền thông ngắn gọn và đơn giản, với mỗi bản tin chỉ bao gồm tên tiêu đề, dữ liệu và kích thước dữ liệu, mỗi phần đều chỉ 1 byte Giao thức này rất phù hợp cho các ứng dụng băng thông thấp Khi kết hợp với Zigbee, một giao thức tầm gần tiêu thụ năng lượng rất thấp khoảng 5W, MQTT cho phép mở rộng mạng lưới một cách hiệu quả.