Tenta:远程和实时传感器网络管理

论文标题

  • 英文标题:Tenta: Remote and Real-Time Sensor Network Management

  • 中文标题:Tenta:远程和实时传感器网络管理

作者信息

Felix Böhm, Moritz Makowski, Patrick Aigner, Jia Chen

  • 所属机构:Technical University of Munich (TUM), Munich, Germany

  • 通讯作者:Felix Böhm, Jia Chen

论文出处

  • 期刊:Journal of Open Source Software

  • 卷号:10

  • 期号:105

  • 文章编号:7311

  • DOI:10.21105/joss.07311

  • 提交日期:2024年6月20日

  • 发表日期:2025年1月9日

  • 版权声明:作者保留版权,并在Creative Commons Attribution 4.0 International License (CC BY 4.0)下发布作品

摘要

传感器网络在许多领域已成为推动有效决策的不可或缺的工具,它们监测温室气体和空气污染物、记录火山活动以及追踪动物迁徙。然而,当网络规模较大或位置难以到达时,手动检查传感器以获取数据和检查状态变得极其耗时。同时,规模使得传感器故障几乎不可避免,未检测到的故障会导致数据丢失和结果偏差,从而可能导致错误的结论。

Tenta是一个轻量级的服务器应用程序,用于远程和实时管理传感器网络。该系统接收并存储传感器传输的测量数据,并允许用户通过直观的仪表板监控传感器。此外,Tenta使用版本化的配置来适应传感器对要求的变化。配置是无模式的JSON文档,代表传感器的状态。它们允许对传感器进行请求,例如更新其测量间隔或甚至其软件。Tenta将每个测量与传感器当前激活的配置相关联,从而生成高度可复现的数据集。传感器通过广泛采用的MQTT协议与Tenta通信。系统提供REST API以简化任务自动化。数据存储在针对时间序列优化的PostgreSQL+TimescaleDB数据库中。

自2022年起,研究小组在慕尼黑及其周边地区的屋顶上部署了20个中精度CO2传感器网络。迄今为止,Tenta已可靠地处理了该网络的5亿次测量以及数百次配置更新。Tenta的测试套件目前的语句覆盖率为94%。

需求陈述

物联网领域主要由亚马逊网络服务和微软Azure等专有云服务主导。这些平台提供了一整套消息代理、监控、设备管理、数据存储和分析服务。一些研究项目使用瑞士公司Decentlab的传感器和基础设施,通过LoRaWAN将测量数据传输到网关,然后通过互联网将数据中继到Decentlab的基础设施。其他项目则实现自定义解决方案,例如基于洪泛协议的解决方案。较小的网络有时完全放弃连接性,而是依赖于对现场的物理访问。

ThingsBoard是一个物联网平台,用于收集和可视化数据,并通过远程过程调用配置传感器。支持多种通信协议,包括HTTP、MQTT和CoAP。此外,ThingsBoard允许通过所谓的规则链操作数据。ThingsBoard的部分功能可在开源许可下使用。其他开源项目仅单向通信——从传感器到服务器——而没有远程管理设备的可能性:ThingSpeak提供HTTP API以存储和检索来自物联网设备的数据。用户可以通过集成的MATLAB环境分析和可视化数据。FROST Server实现了OGC SensorThings API,并提供了HTTP和MQTT接口以收集和查询物联网数据。ThingDirectory允许通过其REST API存储和查询物联网元数据(例如位置、测量类型)。

系统设计

Tenta遵循Unix哲学,旨在快速、灵活和可扩展。该项目专注于实时传感器管理和可靠的数据收集和存储。Tenta提供无缝接口,以便使用一系列现有的优秀工具(例如Polars或Grafana)完成相关任务,如数据处理和自定义可视化。Tenta的每个功能都设计为可选的。这使得连接第一个传感器变得容易,并允许Tenta仅作为测量的数据接收端或仅作为管理系统使用。图2显示了Tenta的仪表板,其中显示了收集的测量数据的实时图表。

Tenta对测量和配置的限制最小。它们的格式可以在不同传感器之间有所不同,并且可以在不事先通知服务器的情况下随时间变化,这使得Tenta能够支持几乎任意结构的传感器网络,并简化了传感器端的软件和硬件迁移。即使如此,Tenta仍然以关系方式持久化测量数据,这使得进一步处理变得简单。

配置是无模式的JSON文档,代表传感器状态。图3显示了Tenta如何在将配置传递给传感器之前为其分配一个唯一的标识符。为了增加可观察性,配置会被正面或负面地确认。随后,传感器可以将其传出消息(例如测量数据)与相关配置的修订号相关联。

传感器通过广泛采用的MQTT协议与Tenta通信。MQTT专为资源受限的设备设计,消耗的带宽很少,这对于通过移动网络连接的传感器至关重要。大多数编程语言都有客户端库,这最大限度地提高了传感器软件和硬件的灵活性。

Tenta利用并发性实现高吞吐量。数据库和HTTP请求以及MQTT消息的发送和接收都异步执行。Tenta支持在单个实例上支持多个传感器网络以及具有不同权限的多个用户。

作者贡献

  • Felix Böhm:设计和开发服务器软件,编写测试,撰写文档,撰写手稿

  • Moritz Makowski:开发仪表板,开发在传感器上运行的客户端库,审阅手稿

  • Patrick Aigner:监督项目,提取需求,审阅手稿

  • Jia Chen:项目负责人,监督项目,审阅手稿

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神一样的老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值