构建一个可扩展的oneM2M物联网系统:具有实时数据,安全访问和无缝BLE切换
扫描二维码
随时随地手机看文章
该项目展示了基于全球oneM2M标准构建的可扩展物联网数据管理架构,旨在支持跨多个房间、区域或建筑物的传感器、网关和应用程序的大规模部署。系统将BLE传感器馈送到分布式网关,每个网关作为中间节点运行,这些网关向上同步到共享本地网络中的中心IN-CSE。这种分层结构支持轻松扩展、资源可发现性和跨任意数量设备的一致数据流。
为了进行演示,我们将此可扩展架构应用于智能医疗保健室监控示例。BLE传感器代表病人或房间数据源,系统使用oneM2M FlexContainers来获取结构化传感器数据,并使用基于acp的角色控制来限制访问(例如,护士与医生)。Django CloudAppAE仪表板订阅实时更新,自动适应新设备、房间或网关的添加,这显示了系统如何无缝扩展而无需重新配置。
通过专注于分布式、多网关oneM2M部署,该项目强调了组织如何构建大型、模块化、隐私感知的物联网系统,以保持低延迟、安全通信和未来的可扩展性。医疗保健示例展示了一种场景,但该架构同样适用于智能校园、工业监控、商业建筑或任何需要大规模设备增长的环境。
1. 问题陈述
物联网部署通常从小规模开始,但随着更多房间、区域或设备的增加而迅速增长。大多数系统并不是为这种增长而设计的,随着规模的增加,这会导致数据碎片化、不一致的通信协议、重复的仪表板和安全问题。当数十个传感器扩展到跨网关和应用程序的数百个传感器时,很难维护统一的数据模型、实时同步、资源可发现性和基于角色的访问控制。
如果没有标准化的体系结构,每个扩展都需要定制集成、手动配置或完整的系统重新设计。由于缺乏可伸缩性,无论是医院、校园、实验室还是企业,都很难可靠地管理来自多个分布式数据源的数据。
为了进行演示,我们将此挑战应用于医院示例,其中多个房间生成重要的患者和环境数据。随着更多的房间和传感器的增加,系统必须保持安全访问、一致的数据流和低延迟,这说明了可扩展的物联网解决方案在现实环境中的重要性。
2. 我们如何解决这个问题
我们通过使用oneM2M标准构建分布式分层物联网架构来解决这些可扩展性挑战。每个物理区域(如房间、楼层或区域)运行自己的网关,同时与中心IN-CSE同步。这允许在不重新配置系统的情况下添加新的传感器、网关或整个空间。
传感器(我们演示中的BLE外设)将数据传输到附近的网关,网关使用标准化容器、CINs和flexcontainer将信息发布到oneM2M资源树中。无论添加了多少设备或网关,这些资源都可以通过IN-CSE自动被应用程序发现。
基于django的CloudAppAE订阅来自oneM2M系统的更新,并随着部署的增长实时适应。基于角色的ACP策略限制不同用户类型的数据访问,并自然地跨多个房间或设备进行扩展。我们通过医院场景(具有广泛访问权限的医生,具有房间级访问权限的护士)来演示这一点,但该架构是通用的,适用于任何多区域物联网环境。
通过层次化的cse、标准化的数据结构和灵活的访问控制,该系统为大规模、安全、快速扩展的物联网部署提供了基础。
体系结构
我们的系统是围绕可扩展的多网关oneM2M架构设计的,可以从几个传感器扩展到分布在多个房间、区域或建筑物中的数百个设备。该结构遵循oneM2M分层模型,随着部署的扩展,可以实现无缝数据流、可发现性和安全访问控制。
1. 高级系统架构
完整的数据路径为:
BLE传感器→本地网关→IN-CSE→应用(CloudAppAE)
该体系结构支持任意数量的网关,每个网关负责一个房间或区域。IN-CSE作为全局协调器,在整个部署中维护统一的资源树。
这种结构非常适合可扩展的环境,如智能医院、校园、研究设施、工业场所和多建筑物联网网络。
2. 层分解
A.设备层- BLE传感器节点
BLE外设(例如,参见XIAO nRF54L15, ESP32-S3)广播环境或重要数据。由于使用FlexContainers进行一致的数据建模,每个传感器都可以在不重新配置系统的情况下添加。
主要可扩展性特点:
•轻量级BLE占用空间
•通过网关扫描自动发现
•统一的数据结构,便于集成
B.网关层-分布式区域
每个区域或房间都有一个nRF7002 DK作为BLE中心。网关处理传入的数据并将其转发给树莓派。
职责:
•扫描并连接传感器
•GATT数据解析
•作为CINs (contentInstances)发布读数
•同时管理多个传感器
随着部署的增长,可以添加多个网关。每个网关都成为体系结构中的一个新的中间节点。
C. oneM2M核心层-分层网关| IN-CSE模型
•网关(区域水平)
•本地主机传感器容器
•为每次读取生成CINs
•向上公布资源
IN-CSE(系统级)
•所有设备的中央注册中心
•存储统一资源树
•将通知路由到应用程序
•大规模执行
这种分离使系统具有可伸缩性。每个网关处理本地流量,而IN-CSE协调整个网络。
D.应用层——CloudAppAE仪表板
仪表板是一个注册为oneM2M AE的Django应用程序。它订阅所有网关上的传感器容器,从而实现:
•实时监控
•自动发现设备
•添加了作为网关/传感器的动态调整视图
•可扩展的访问控制
在医院的例子中,这提供了医生级和护士级视图,但同样的机制也适用于任何多角色环境。
3. 移交和设备移动性支持
传感器广播测试广告,允许网关抓取RSSI数据和oneM2M应用程序来确定哪个区域应该拥有该设备。该机制可扩展到许多房间或建筑物,从而实现:
•移动传感器跟踪
•网关之间的平滑转换
•无数据丢失的连续监控
4. 简化的资源树(可扩展示例)
当添加新的区域或传感器时,它们只是出现在新的或现有的中间节点下,不需要重新设计。
5. 为什么这种架构可以扩展?
•模块化的基于区域的网关允许水平扩展
•统一的oneM2M数据模型保证了集成的一致性
•集中式IN-CSE维护完整的全局视图
•FlexContainers支持跨大型部署的结构化、可发现的数据
•ACP策略可扩展到任意数量的用户和设备
•本地网络骨干网即使在系统增长时也能保持较低的延迟
实现
1. 实现概述
我们的实现遵循模块化、基于区域的方法,旨在演示oneM2M部署如何从少数设备平滑扩展到许多房间、网关和应用程序。每个组件(包括传感器固件、网关逻辑、CSE实例和仪表板)的实现都是为了支持轻松扩展而无需重新设计。
完整的系统流程为:
BLE传感器→本地网关(nRF7002 + Pi)→IN-CSE→CloudAppAE仪表板
每一层都独立运行,但遵循统一的oneM2M资源模型,使系统具有自然的可扩展性和互操作性。
1.1. 传感器层实现
BLE外设(参见XIAO nRF54L15和ESP32-S3)运行轻量级固件,可以广播环境或生命体征数据。这些传感器使用标准的BLE GATT特性,并为移动性和切换支持提供RSSI信息。
为什么它可以扩展:
•可以添加任意数量的传感器
•每个设备没有自定义集成
•FlexContainers允许一致的、可发现的数据格式化
1.2. 网关层实现
每个房间或区域都包含一个nRF7002 DK作为BLE中心。网关扫描传感器,自动连接,解析读数,并通过UART-over-USB将数据转发到树莓派。
在树莓派上,本地网关脚本为每次新的读取生成contentInstances (CINs)。只需在网络中添加更多的Pi网关,就可以部署多个网关。
为什么它可以扩展:
•每个新区域=只是添加另一个网关
•网关以标准化的行为独立运行
•不需要在IN-CSE或仪表板上进行更改
1.3. oneM2M业务层实现
IN-CSE在本地机器上运行ACME-CSE,并充当全局协调器。所有网关自动注册,形成分布式资源树。
oneM2M结构使系统在设计上具有可扩展性:
•IN-CSE聚合、同步和公开全局视图
•FlexContainers一致地组织传感器类型
ACP策略执行安全的、基于角色的访问,而不考虑规模
为什么它可以扩展:
•添加一个新的网关可以立即扩展网络
•使用标准oneM2M查询可以发现所有数据
分层架构自然地处理增长
1.4. 应用层实现(CloudAppAE仪表板)
基于django的CloudAppAE注册为oneM2M AE,并订阅连接到IN-CSE的所有网关的容器。当创建新的CINs时,IN-CSE会发送实时通知。
指示板:
•实时适应新的传感器或网关出现
•使用ACP规则限制用户访问
•将所有网关作为一个统一系统的一部分呈现
在演示场景中,UI将房间显示为“区域”,但该设计同样支持智能校园、实验室或工业楼层。
为什么它可以扩展:
•订阅自动适用于新的房间/传感器
•扩展时不需要重新配置仪表板
•访问策略在整个层次结构中统一应用
2. 设备/传感器实现
我们的传感器层设计轻巧,低功耗,易于扩展到许多房间或区域。每个BLE设备遵循相同的数据模型,允许在不修改系统架构或应用层的情况下添加新的传感器。
2.1. BLE外围设备
我们使用两个主要的BLE平台进行演示:
•参见XIAO nRF54L15 (Sense)
•ESP32-S3模块
这两种设备都充当BLE外设,广播或传输环境和生命体征数据,例如:
•温度(红外或板载传感器)
•湿度
•环境条件
•RSSI测试广告(用于切换逻辑)
每个传感器使用Zephyr RTOS或ESP-IDF运行最小固件,以保持系统的简单和节能。
2.2. 基于gatt的数据模型
传感器通过标准BLE GATT特性暴露其测量值,使其与BLE中心设备普遍兼容。关贸总协定的结构包括:
•环境感应服务(ESS)
•带有新数据的通知
•温度特性
•可选红外温度特性
使用标准服务可确保系统与设备无关,并支持与其他BLE传感器的轻松扩展。
2.3. 定期测量与广播
每个传感器定期更新其值,或者:
•用数据通知网关
•播放主要BLE广告
•广播测试BLE广告,用于RSSI数据采集
这种方法既支持连接模式数据传输,也支持广播模式移动检测,具体取决于网关逻辑。
可扩展原因:由于BLE是为高密度环境设计的,因此数十或数百个传感器可以同时广播而无需协调。
2.4. 通过flexcontainer统一oneM2M数据格式化
为了确保互操作性和可扩展性,一旦到达网关,所有传感器数据都被格式化为灵活的结构化模式:
•每个传感器映射到一个特定的FlexContainer配置文件
•数据字段(temp、IR、RSSI)放在命名属性中
•网关使用统一的结构将这些信息发布到IN-CSE中
这使仪表板能够自动发现新的传感器,并避免特定于传感器的硬编码。
2.5. 框架的新员工培训
因为BLE设备遵循相同的结构:
•新传感器只需要简单的手动配置
•网关自动检测和解析通过BLE连接传入的数据
•树莓派自动宣布新的传感器到IN-CSE
•应用订阅后,CloudAppAE自动接收更新
该框架的行为演示了系统如何轻松地从少数传感器扩展到大型分布式环境。
2.6. 交接的实现
嵌入式设备
每个看到的外围设备配置为显示测试广告,而主BLE连接由中央nRF7002设备之一保持。
每个nRF7002设备将解析测试广告,并使用UART通过USB推送与所见MAC地址相关的RSSI数据。
OneM2M应用程序
每个Raspberry Pi 5都运行一个脚本来解析通过UART从nRF7002发送的数据。这些数据随后通过Wi-Fi发送到IN-CSE。
应用程序将传入的RSSI数据与指定的连接阈值进行比较。如果来自保持连接的树莓派的RSSI低于阈值,则应用程序将比较最近的RSSI数据包,以确定是否有更好的网关来保持连接。
在确定有更好的连接后,应用程序将从每个nRF7002白名单中删除MAC地址,除了将保持连接的那个,向当前保持连接的nRF7002发送断开命令,然后在足够的时间过去后将MAC地址重新添加到其他白名单中,以便nRF7002接收到种子的连接。这些命令使用每个网关的应用程序实体中的“收件箱”容器进行编排。
应用场景
底层架构是为任何大型分布式物联网环境设计的。下面是几个实际场景,其中可扩展的多网关oneM2M系统提供了明显的优势。
1. 智能医疗设施监控
在医院里,每个房间或病房都有连接到本地网关的BLE传感器。随着设施的增长,增加新的房间、楼层或建筑物会使系统自动适应,而无需重新配置。医生和护士通过基于角色的访问获得实时数据,而医院则受益于统一的安全监控系统。
增值:
•自动进入新房间
•基于角色的隐私使用
•实时生命体征和环境监测
•BLE切换支持移动患者或设备
2. 智慧校园环境监测
大学校园通常由许多具有独特环境条件的建筑组成。放置在教室、实验室和大厅各处的BLE或Wi-Fi传感器可以报告温度、占用率、二氧化碳和空气质量。每个建筑都作为一个区域,有自己的网关,都与中央IN-CSE同步。
增值:
•从单个建筑扩展到整个校园的潜力
•具有构建级或管理级权限的中央仪表板
•兼容混合传感器供应商和技术
•理想的可持续发展倡议和能源优化
3. 工业多区域设备跟踪
工厂里有几十台机器,每台机器都需要状态监控、振动感应或热安全检查。安装在设备上的传感器向附近的网关报告,而系统则保持整个工厂的全局视图。
增值:
•基于区域的网关隔离大流量
•IN-CSE提供全厂可见性
•FlexContainers支持结构化的工业数据模型
•通过基于rssi的移交进行移动工具或资产跟踪
总结
该项目展示了oneM2M标准如何用于构建可扩展的多网关物联网生态系统,该生态系统可以从几个传感器发展到整个建筑物或校园。通过结合BLE外设、分布式网关节点、分层IN-CSE和动态Django CloudAppAE仪表板,该系统通过基于BLE rssi的切换提供实时监控、自动设备发现、基于角色的访问控制和无缝的设备移动性。
虽然我们的原型特别侧重于演示跨多个网关的基于ble的切换,但底层体系结构是通用的。相同的可扩展多网关oneM2M设计可应用于医院、智能园区、工业设施、研究实验室、商业建筑或任何需要大规模安全、低延迟物联网协调的环境。
得益于模块化设备层、基于区域的网关和一致的oneM2M数据建模,该系统仍然易于扩展、供应商中立和面向未来。凭借其在标准化数据流、本地网络可靠性和隐私感知访问控制方面的强大基础,该项目为几乎任何领域的下一代大规模物联网部署提供了蓝图。
本文编译自hackster.io





