基于云的物联网系统用于实时有害藻华监测:通过MQTT和REST API无缝集成ThingsBoard

论文标题

**英文标题:**Cloud-Based IoT System for Real-Time Harmful Algal Bloom Monitoring: Seamless ThingsBoard Integration via MQTT and REST API
**中文标题:**基于云的物联网系统用于实时有害藻华监测:通过MQTT和REST API无缝集成ThingsBoard

作者信息

  • Ammar Haziq Annas,国际伊斯兰大学马来西亚吉隆坡校区,计算机科学系,ammarannas02@gmail.com

  • Nik Nor Muhammad Saifudin Nik Mohd Kamal,国际伊斯兰大学马来西亚吉隆坡校区,计算机科学系,saifudinkamal11@gmail.com

  • Ahmad Anwar Zainuddin,国际伊斯兰大学马来西亚吉隆坡校区,计算机科学系,anwarzain@iium.edu.com

  • Normawaty Mohammad Noor,国际伊斯兰大学马来西亚关丹校区,海洋与海洋科学研究所,normahwaty@iium.edu.my

  • Amir ‘Aatief Amir Hussin,国际伊斯兰大学马来西亚吉隆坡校区,计算机科学系,amiraatieff@iium.edu.my

  • Roziawati Mohd Razali,马来西亚渔业研究所,roziawati@dof.gov.my

论文出处

2024 IEEE 22nd Student Conference on Research and Development (SCOReD),2024年12月19-20日
DOI: 10.1109/SCOReD64708.2024.10872705


摘要

本文提出了一种基于云的物联网(IoT)解决方案,用于实时监测水质,特别是针对有害藻华(HABs)的检测。该系统利用成本效益高的传感器,通过MQTT和REST API协议将传感器数据传输到托管在Microsoft Azure上的ThingsBoard平台,实现可靠、低延迟的数据传输和存储。通过数值和图形化仪表板,用户可以实时和历史数据监测,支持早期异常检测和快速响应。该系统具有成本效益高、灵活性强、易于扩展的特点,可应用于不同的监测环境,并有助于主动管理水资源和保护公共健康免受藻华威胁。


一、引言

有害藻华(HABs)是一种严重的环境问题,其快速生长的藻类可能释放有害毒素,对水生生态系统、饮用水供应和公共健康构成威胁。传统的水质监测方法成本高、复杂,限制了其广泛采用和连续监测的可扩展性。物联网(IoT)技术的发展使得利用非工业级传感器创建经济、灵活、可扩展的解决方案成为可能。结合云平台,这些传感器能够支持实时监测,为可持续的水管理提供数据驱动的决策支持。


二、组件与设计结构

A. 云托管环境

该系统的云基础设施托管在Azure虚拟机(VM)上,提供可扩展且安全的环境,支持实时数据流处理和仪表板渲染。通过IP白名单、防火墙规则和基于密钥的SSH认证,确保数据的安全性和完整性。

B. ThingsBoard平台概述

ThingsBoard因其强大的IoT数据管理和可视化功能而被选中,支持MQTT和REST API协议,能够无缝处理遥测数据。与Freeboard和Grafana相比,ThingsBoard提供了更全面的设备管理能力、内置数据存储和对多种IoT协议的支持。

C. 数据存储

ThingsBoard使用PostgreSQL存储元数据(如设备信息和用户角色),并使用类似Cassandra的嵌入式数据库处理遥测数据。这种组合非常适合IoT应用,因为Cassandra能够高效存储大量实时数据。

D. 数据可视化与仪表板

ThingsBoard提供可定制的仪表板,支持数值显示和基于图形的可视化。数值显示用于快速查看关键参数的实时值,而图形可视化用于监测历史趋势和模式,帮助早期检测水质异常。


三、方法论

该系统通过在Azure VM上托管的ThingsBoard平台集成IoT设备,创建设备、开发通信代码,并测试传感器与云平台的连接。系统架构包括IoT传感器与ESP32微控制器连接,通过MQTT或REST API协议将数据传输到ThingsBoard。用户可以通过ThingsBoard仪表板实时监控数据,并通过数值显示和图形分析获得行动洞察。


四、结果与讨论

A. 连接性和数据传输性能

MQTT和REST API的连接性测试确认了从传感器到ThingsBoard平台的稳定遥测数据传输。MQTT作为轻量级协议,表现出低延迟和持续数据流,适合实时监测;而REST API在处理偶发数据推送时表现出更高的延迟。通过调整MQTT的QoS设置和实现ESP32的自动重连机制,确保了系统的连续运行。

B. 仪表板功能与数据可视化

ThingsBoard仪表板提供了数值显示和基于图形的可视化,支持即时读取关键参数和监测历史趋势。这种双重可视化方式有助于用户快速了解当前状态,并分析长期变化或潜在问题。

C. 数据管理和存储性能

ThingsBoard的内置存储(PostgreSQL用于元数据,Cassandra用于时间序列数据)在测试中表现出色,能够可靠地存储和检索数据,无需外部数据库。

D. 系统可扩展性和灵活性

ThingsBoard平台能够轻松扩展,支持多个监测设备的注册和数据流的区分。新的设备或传感器可以轻松添加,仪表板会自动更新以反映新参数。

E. 面临的挑战及解决方案

系统在实际部署中面临网络断开导致的数据丢失问题,通过调整MQTT的QoS设置和启用ESP32的自动重连机制加以解决。此外,配置Azure VM防火墙规则以限制访问,确保数据的安全性和完整性。

F. 对水质监测的影响

该系统能够实时监测水质变化,帮助用户及时采取措施,避免长时间处于有害条件下。系统自动化数据采集减少了人工监测的需求,节省了时间和运营成本。


五、结论

本文提出了一种基于云的物联网架构,用于实时水质监测,特别是针对有害藻华的检测。该系统通过MQTT和REST API将遥测数据传输到ThingsBoard,提供可靠的数据存储和可视化,支持即时读取和趋势分析。尽管存在偶尔的网络中断,但通过调整MQTT的QoS设置和启用自动重连机制,系统能够保持连续的数据流。该模块化架构易于扩展,支持未来扩展,包括添加更多传感器和集成预测分析,以支持主动的环境管理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/973862.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VMware converter standalone迁移windows老版本系统到esxi

最近因为有个客户有5台老服务器想淘汰掉换成新服务器,有多老呢?差不多20年了。比我干这个行业的时间还久。 老服务器的系统分别是: 1:3台windows server 2008 sp2 x64系统 2:2台windows server 2003 sp2 x32系统 新服务…

python学opencv|读取图像(七十五)人脸识别:Fisherfaces算法和LBPH算法

【1】引言 前序学习进程中,已经掌握了使用Eigenfaces算法进行的人脸识别。相关文章链接为: python学opencv|读取图像(七十四)人脸识别:EigenFaces算法-CSDN博客 在此基础上,学习剩余两种人脸识别算法&am…

【GaussTech技术专栏】GaussDB AI大模型在智能运维场景的应用

在数字化转型的浪潮中,数据库作为企业数据管理的核心,扮演着至关重要的角色。随着业务规模的扩大和数据量的激增,数据库运维的复杂性也随之增加。传统运维方法在确保数据高可用性、系统稳定性、性能优化及故障快速响应方面,面临着…

燧光 XimmerseMR SDK接入Unity

官网SDK文档连接: RhinoX Unity XR SDK 一:下载SDK 下载链接:RhinoX Unity XR SDK 二:打开Unity项目,添加Package 1、先添加XR Core Utilties包和XR Interaction Toolkit包 2、导 2、再导入下载好的燧光SDK 三&…

政安晨的AI大模型训练实践 九 - 熟悉LLaMA Factory的详细参数含义-基本概念理解一下

政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎在评论区提出指正! 小伙伴铁子们,上手先熟悉起来训练工具的每一个参数,很重要。 参照我…

Arduino IDE编程ESP32-C3的Flash选项

用Arduino IDE为ESP32-C3编程 概述ESP32-C3的FLASH连接Arduino编程选项FLASH的QIO和DIO总结后记概述 买了CORE-ESP32-C3实验板,用Arduino IDE为板子编程。板子如下: 编程出现问题,串口打印输出: 13:56:22.927 -> E (25) boot: load partition table error! 13:56:22.…

SAP 代码扫描工具

描述: ZSCANNER是一个先进的代码分析工具,旨在提供对程序和功能模块内部工作的全面见解。它揭示了代码的技术细节,包括正在创建、读取、更新或删除的数据表(CRUD操作),以及正在调用的类、功能模块和BAPI&a…

el-table树状表格,默认展开第一个节点的每一层

效果如图 <template><el-table:data"tableData"style"width: 100%":tree-props"{ children: children, hasChildren: hasChildren }":expand-row-keys"expandRowKeys"row-key"id"expand-change"handleExpan…

以ChatGPT为例解析大模型背后的技术

目录 1、大模型分类 2、为什么自然语言处理可计算&#xff1f; 2.1、One-hot分类编码&#xff08;传统词表示方法&#xff09; 2.2、词向量 3、Transformer架构 3.1、何为注意力机制&#xff1f; 3.2、注意力机制在 Transformer 模型中有何意义&#xff1f; 3.3、位置编…

I2C实践开发 ---【STM32-I2C-HDC1080温湿度采集系统】

I2C实践开发 — STM32-I2C-HDC1080温湿度采集系统 目录 I2C实践开发 --- STM32-I2C-HDC1080温湿度采集系统1. 引言2. 系统架构2.1 硬件架构2.2 软件架构 3. 代码分析3.1 I2C驱动文件 (i2c.h 和 i2c.c)3.2 HDC1080传感器驱动文件 (hdc1080.h 和 hdc1080.c) 4. 功能总结【HDC1080…

java毕业设计之医院门诊挂号系统(源码+文档)

风定落花生&#xff0c;歌声逐流水&#xff0c;大家好我是风歌&#xff0c;混迹在java圈的辛苦码农。今天要和大家聊的是一款基于ssm的医院门诊挂号系统。项目源码以及部署相关请联系风歌&#xff0c;文末附上联系信息 。 项目简介&#xff1a; 医院门诊挂号系统的主要使用者…

[笔记.AI]大模型的蒸馏、剪枝、量化 | 模型压缩 | 作用与意义

上周简单整理了《deepseek-r1的不同版本&#xff08;满血版、蒸馏版、量化&#xff09;》&#xff0c;这次继续完善对其的认知——补充“剪枝”&#xff0c;并进一步整理蒸馏、剪枝、量化的作用与意义。 以下摘自与DeepSeek-R1在线联网版的对话 蒸馏、剪枝、量化是当前主流的三…

VMware按照的MacOS升级后无法联网

背景 3年前公司使用Flutter开发了一款app&#xff0c;现在app有微小改动需要重新发布到AppStore 问题 问题是原来的Vmware搭建的开发环境发布App失败了 提示&#xff1a;App需要使用xcode15IOS 17 SDK重新构建&#xff0c;这样的话MacOS至少需要升级到13.5 Xcode - 支持 - Ap…

量子计算的基本运算:Hadamard 门、CNOT 门、Pauli 门详解

量子计算是现代计算科学的前沿领域,它与经典计算机在处理信息的方式上有着本质的区别。量子计算机利用量子比特(qubit)的叠加态和量子纠缠等特性来进行计算,从而在某些特定任务上超越传统计算机。量子计算的核心运算单元是量子门,它们通过作用于量子比特来操控量子状态。本…

go http Client net/http

框架推荐 net/http go的内置http工具&#xff0c;可以构建client和server。 Slf4j Controller RequestMapping("/rest") public class RestTestController {GetMapping("/get")ResponseBodypublic String get(RequestBody SSHConnectParam param) throws…

Pycharm中断点使用技巧

1. 打开项目并准备代码 首先&#xff0c;打开 PyCharm 并加载你的 Python 项目&#xff0c;确保你已经有想要调试的 Python 代码文件。如&#xff1a; def add_numbers(a, b):result a breturn resultnum1 5 num2 3 sum_result add_numbers(num1, num2) print(f"Th…

【数据库系统概论】第第12章 并发控制

12.1 并发控制概述 并发控制是指数据库管理系统&#xff08;DBMS&#xff09;通过控制多个事务同时执行&#xff0c;保证数据的一致性和隔离性&#xff0c;避免事务间的相互干扰。 事务串行执行不能充分利用系统资源 并发执行的优点&#xff1a;能够减少处理机的空闲 时间&a…

阿里云通过docker安装skywalking及elasticsearch操作流程

系统 本文使用系统为 Alibaba Cloud Linux 3.2104 LTS 64位 配置为 4核8G PS&#xff1a;最低配置应为2核4G&#xff0c;配置过低无法启动 安装docker 1.卸载旧版本docker yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-…

【分治法】循环赛日程表问题 C\C++(附代码、实例)

问题描述 设计一个满足以下要求的比赛日程表&#xff1a; 每位选手必须与其他n-1个选手各赛一次每位选手一天只能赛一次循环赛一个进行n-1天选手人数 n 2 k n2^k n2k 问题分析 下图是一种日程表的安排方式 观察上图&#xff0c;我们发现日程表左上角的四行四列和右下角的四…

【第一节】C++设计模式(创建型模式)-工厂模式

目录 前言 一、面向对象的两类对象创建问题 二、解决问题 三、工厂模式代码示例 四、工厂模式的核心功能 五、工厂模式的应用场景 六、工厂模式的实现与结构 七、工厂模式的优缺点 八、工厂模式的扩展与优化 九、总结 前言 在面向对象系统设计中&#xff0c;开发者常…