基于 oneM2M 标准的空气质量监测系统的互操作性
论文标题
英文标题: Interoperability of Air Quality Monitoring Systems through the oneM2M Standard
中文标题: 基于 oneM2M 标准的空气质量监测系统的互操作性
作者信息
Jonnar Danielle Diosana, Gabriel Angelo Limlingan, Danielle Bryan Sore, Marc Rosales, Isabel Austria, Jaybie de Guzman, John Richard Hizon
Electrical and Electronics Engineering Institute, University of the Philippines, Diliman Quezon City, Philippines
Email: {jonnar.danielle.diosana, gabriel.angelo.limlingan, danielle.bryan.sore, richard.hizon}@eee.upd.edu.ph
论文出处
2024 31st IEEE International Conference on Electronics, Circuits and Systems (ICECS)
DOI: 10.1109/ICECS61496.2024.10849089
摘要
本文探讨了通过 oneM2M 标准实现空气质量监测(AQM)系统的互操作性。通过在菲律宾大学城市环境空气研究中心(UP CARE)现有的 AQM 研究计划中引入 oneM2M 标准,实现了 Wi-Fi、LoRa 和 Zigbee 等不同无线协议设备的数据标准化和传输。该系统在服务器停机时实现了 0.14% 的平均重传率、356.8 毫秒的最大端到端延迟和 99.5% 的数据可靠性。
1. 引言
空气质量监测(AQM)系统在学术界、政府和公众的创新和决策过程中发挥着重要作用。现有的 AQM 系统通过部署多个传感器测量污染物浓度并将数据上传到服务器进行监测和分析。然而,随着全球机器到机器(M2M)通信标准的发展,AQM 系统需要更高的可扩展性和互操作性,以便整合局部数据点并生成更广泛的区域视图。oneM2M 标准旨在为 M2M 通信行业提供标准化和规范,以实现不同系统之间的互操作性。本文介绍了一个基于 oneM2M 标准的 AQM 系统,通过 Wi-Fi、LoRa 和 Zigbee 等无线协议将传感器数据标准化并传输到 oneM2M 服务器。
2. AQM 系统的互操作性解决方案
现有的 AQM 解决方案通过多种传感器测量环境参数(如二氧化碳、颗粒物、温度和湿度),并利用 Wi-Fi、LoRa 和 Zigbee 等无线通信协议实现可靠传输。这些协议在数据速率、传输范围、功耗和成本方面各有优缺点。例如,Wi-Fi 支持高数据速率但功耗高且范围有限;LoRa 适合定期监测传感器值;Zigbee 则因其低功耗和无缝连接而具有灵活性。此外,AQM 系统还面临消息协议固定配置的问题,如 MQTT 和 HTTP 的互操作性。oneM2M 标准通过水平协议栈(包括应用层、oneM2M 服务和网络层)解决了这些问题,为 AQM 系统提供了互操作性、可访问性和可扩展性。

3. 方法与实现
本文实现了一个基于 oneM2M 协议的 AQM 系统,包括传感器和路由器、本地网络、数据库管理系统以及用户界面。系统设计基于 oneM2M 功能架构,分为现场域(部署结构)和基础设施域(中央服务器)。

3.1 AQM 传感器
-
Wi-Fi 传感器:使用 ESP32 微控制器和 HC8 CO2 NDIR 传感器,通过 MQTT 协议将数据传输到代理服务器。
-
LoRa 传感器:使用 ESP32 微控制器和 SX1278 LoRa 收发器,数据以 JSON 格式发送并通过 Paho 集成到 MQTT。
-
Zigbee 传感器:使用 Raspberry Pi 和 Zigbee2MQTT,支持超过 3000 种设备,数据直接链接到 MQTT 服务。
3.2 Raspberry Pi 网关
网关负责数据管理和通信,接收来自不同无线技术传感器的数据,并将其转发到互操作代理实体(IPE)进行数据标准化。数据随后被上传到 oneM2M 服务器,并存储在本地 SQL 数据库中。
3.3 基于 oneM2M 的传感器网络
所有设备、网关和传感器数据在 oneM2M 系统中以资源形式表示。中央服务器作为基础设施节点(IN),包含开源的 IN-CSE(公共服务中心实体)。系统通过 IPE 实现不同无线技术设备的互操作性和数据标准化。
3.4 用户界面
用户界面通过 Grafana 实现,提供实时空气质量指标的趋势图和数据实例的描述信息。界面还支持设备注册、删除和网关传感器的概览等功能。
4. 结果与讨论
本节介绍了系统的功能和性能测试结果,包括互操作性和可靠的数据管理。
4.1 互操作性
通过协议堆叠技术,系统实现了不同无线技术的传感器网络的互操作性。所有传输到系统中的数据,无论使用何种无线技术,均以 oneM2M 资源的形式统一存储,确保了数据格式的一致性。
4.2 数据管理可靠性
系统通过网关的本地存储实现了数据存储的可靠性。即使在服务器中断期间,系统仍能实现 99.63% 的数据传输率(DDR)。总体而言,系统在最佳网络条件下实现了 99.5% 的数据可靠性。
4.3 网络性能
系统在三个地点部署,测试了网络的拥塞情况。每个网关的 TCP 重传率均低于 1%,表明系统具有较低的冗余传输。网络延迟通过从网关到服务器的 ping 测试和数据存储时间计算得出。由于扩展网络的需要,系统使用了虚拟专用网络(VPN),这增加了网关到中央服务器的额外跳数,从而影响了平均网络延迟。
5. 结论
本文开发了一个基于 oneM2M 架构的标准化空气质量监测网络,实现了互操作性、可扩展性和数据可靠性。系统通过多个网关和中央服务器存储不同位置的数据,展示了在不同网络条件下的高效数据管理能力。未来的工作将包括增加更多信息(如位置和语义)以增强从物理环境到数字世界的空气质量建模能力。
6. 致谢
作者感谢 UP CARE 的指导和建设性反馈,以及 DOST 的项目资助。同时感谢家人和朋友的支持。
相关文章:
基于 oneM2M 标准的空气质量监测系统的互操作性
论文标题 英文标题: Interoperability of Air Quality Monitoring Systems through the oneM2M Standard 中文标题: 基于 oneM2M 标准的空气质量监测系统的互操作性 作者信息 Jonnar Danielle Diosana, Gabriel Angelo Limlingan, Danielle Bryan Sor…...
春晚舞台上的人形机器人:科技与文化的奇妙融合
文章目录 人形机器人Unitree H1的“硬核”实力传统文化与现代科技的创新融合网友热议与文化共鸣未来展望:科技与文化的更多可能结语 2025 年央视春晚的舞台,无疑是全球华人目光聚焦的焦点。就在这个盛大的舞台上,一场名为《秧BOT》的创意融合…...
零基础学习书生.浦语大模型-入门岛
第一关:Linux基础知识 Cursor连接服务器 使用Remote - SSH插件即可 注:46561:服务器端口号 运行指令 python hello_world.py端口映射 ssh -p 46561 rootssh.intern-ai.org.cn -CNg -L 7860:127.0.0.1:7860 -o StrictHostKeyCheckingno …...
Gurobi基础语法之 addConstr, addConstrs, addQConstr, addMQConstr
在新版本的 Gurobi 中,向 addConstr 这个方法中传入一个 TempConstr 对象,在模型中就会根据这个对象生成一个约束。更重要的是:TempConstr 对象可以传给所有addConstr系列方法,所以下面先介绍 TempConstr 对象 TempConstr TempC…...
数据结构---图的遍历
图的遍历(Travering Graph):从图的某一顶点出发,访遍图中的其余顶点,且每个顶点仅被访问一次,图的遍历算法是各种图的操作的基础。 复杂性:图的任意顶点可能和其余的顶点相邻接,可能在访问了某个顶点后,沿某条路径搜索…...
Qwen 模型自动构建知识图谱,生成病例 + 评价指标优化策略
关于数据库和检索方式的选择 AI Medical Consultant for Visual Question Answering (VQA) 系统:更适合在前端使用向量数据库(如FAISS)结合关系型数据库来实现图像和文本的检索与存储。因为在 VQA 场景中,你需要对患者上传的图像或…...
.Net Web API 访问权限限定
看到一个代码是这样的: c# webapi 上 [Route("api/admin/file-service"), AuthorizeAdmin] AuthorizeAdmin 的定义是这样的 public class AuthorizeAdminAttribute : AuthorizeAttribute {public AuthorizeAdminAttribute(){Roles "admin"…...
项目架构调整,切换版本并发布到中央仓库
文章目录 0.完成运维篇maven发布到中央仓库的部分1.配置server到settings.xml2.配置gpg 1.架构调整1.sunrays-dependencies(统一管理依赖和配置)1.作为单独的模块2.填写发布到中央仓库的配置1.基础属性2.基本配置3.插件配置 3.完整的pom.xml 2.sunrays-f…...
考试知识点位运算
深入理解位运算 在C编程的世界里,位运算作为一种直接对二进制位进行操作的运算方式,虽然不像加减乘除等算术运算那样广为人知,却在许多关键领域发挥着至关重要的作用。从底层系统开发到高效算法设计,位运算都展现出其独特的魅力与…...
matlab快速入门(2)-- 数据处理与可视化
MATLAB的数据处理 1. 数据导入与导出 (1) 从文件读取数据 Excel 文件:data readtable(data.xlsx); % 读取为表格(Table)CSV 文件:data readtable(data.csv); % 自动处理表头和分隔符文本文件:data load(data.t…...
Kafka中文文档
文章来源:https://kafka.cadn.net.cn 什么是事件流式处理? 事件流是人体中枢神经系统的数字等价物。它是 为“永远在线”的世界奠定技术基础,在这个世界里,企业越来越多地使用软件定义 和 automated,而软件的用户更…...
Python-列表
3.1 列表是什么 在Python中,列表是一种非常重要的数据结构,用于存储一系列有序的元素。列表中的每个元素都有一个索引,索引从0开始。列表可以包含任何类型的元素,包括其他列表。 # 创建一个列表my_list [1, 2, 3, four, 5.0]…...
51单片机开发:定时器中断
目标:利用定时器中断,每隔1s开启/熄灭LED1灯。 外部中断结构图如下图所示,要使用定时器中断T0,须开启TE0、ET0。: 系统中断号如下图所示:定时器0的中断号为1。 定时器0的工作方式1原理图如下图所示&#x…...
【HarmonyOS之旅】基于ArkTS开发(三) -> 兼容JS的类Web开发(二)
目录 1 -> HML语法 1.1 -> 页面结构 1.2 -> 数据绑定 1.3 -> 普通事件绑定 1.4 -> 冒泡事件绑定5 1.5 -> 捕获事件绑定5 1.6 -> 列表渲染 1.7 -> 条件渲染 1.8 -> 逻辑控制块 1.9 -> 模板引用 2 -> CSS语法 2.1 -> 尺寸单位 …...
算法【混合背包】
混合背包是指多种背包模型的组合与转化。 下面通过题目加深理解。 题目一 测试链接:1742 -- Coins 分析:这道题可以通过硬币的个数将其转化为01背包,完全背包和多重背包。如果硬币的个数是1个,则是01背包;如果硬币的…...
WordPress eventon-lite插件存在未授权信息泄露漏洞(CVE-2024-0235)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
基于微信小程序的医院预约挂号系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
C++初阶 -- 手撕string类(模拟实现string类)
目录 一、string类的成员变量 二、构造函数 2.1 无参版本 2.2 有参版本 2.3 缺省值版本 三、析构函数 四、拷贝构造函数 五、c_str函数 六、operator重载 七、size函数 八、迭代器iterator 8.1 正常版本 8.2 const版本 九、operator[] 9.1 正常版本 9.2 const版…...
【Postman接口测试】Postman的安装和使用
在软件测试领域,接口测试是保障软件质量的关键环节之一,而Postman作为一款功能强大且广受欢迎的接口测试工具,能够帮助测试人员高效地进行接口测试工作。本文将详细介绍Postman的安装和使用方法,让你快速上手这款工具。 一、Pos…...
miniconda学习笔记
文章主要内容:演示miniconda切换不同python环境,安装python库,使用pycharm配置不同的conda建的python环境 目录 一、miniconda 1. 是什么? 2.安装miniconda 3.基本操作 一、miniconda 1. 是什么? miniconda是一个anac…...
C++_核心编程_多态案例二-制作饮品
#include <iostream> #include <string> using namespace std;/*制作饮品的大致流程为:煮水 - 冲泡 - 倒入杯中 - 加入辅料 利用多态技术实现本案例,提供抽象制作饮品基类,提供子类制作咖啡和茶叶*//*基类*/ class AbstractDr…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
多场景 OkHttpClient 管理器 - Android 网络通信解决方案
下面是一个完整的 Android 实现,展示如何创建和管理多个 OkHttpClient 实例,分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...
mongodb源码分析session执行handleRequest命令find过程
mongo/transport/service_state_machine.cpp已经分析startSession创建ASIOSession过程,并且验证connection是否超过限制ASIOSession和connection是循环接受客户端命令,把数据流转换成Message,状态转变流程是:State::Created 》 St…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)
目录 1.TCP的连接管理机制(1)三次握手①握手过程②对握手过程的理解 (2)四次挥手(3)握手和挥手的触发(4)状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...
Opencv中的addweighted函数
一.addweighted函数作用 addweighted()是OpenCV库中用于图像处理的函数,主要功能是将两个输入图像(尺寸和类型相同)按照指定的权重进行加权叠加(图像融合),并添加一个标量值&#x…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...
