SANSAN新鲜事|一文搞懂IOT平台的数据采集架构

2024-03-03 17:30

本文主要是介绍SANSAN新鲜事|一文搞懂IOT平台的数据采集架构,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本专栏的上一篇文章“场站数字化避坑指南”中提到,场站数字化实施所遇到的“坑”中,其中一个是:传感器协议种类多且复杂,会导致系统架构复杂,最终系统难以实现、BUG多、工期长。想避免这种问题,需要抽象一个高内聚、低耦合、易于扩展和维护的数据采集架构。今天,本文就来聊一下,什么是一个合理的数据采集架构。

首先插播一个广告:三三是一个开源的物联网平台,代码可以商用而无限制,欢迎访问

什么是数据采集架构

数据采集架构是物联网平台技术架构的组成部分,主要负责数据采集,也就是从各种IOT设备上收集数据。这部分功能是任何物联网应用的核心组成部分。没有这部分功能,物联网应用就是无源之水、无本之木。

数据采集架构的组成部分

我们从架构的最下层开始,看看数据采集架构应该包含哪些组成部分。

物理设备

数据采集的对象,比如传感器、PLC、控制器、机床、智能灯/锁/开关等各种IOT设备。

设备协议

物理设备传输数据的协议,比如工业上的Modbus、西门子S7、OPCUA;电力领域的DL/T645、IEC104;水利的SL651;视频传输的国标协议GB28181。

网关

网关的含义特别杂,比如DTU、WiFi路由器都被叫做网关;工业中各种协议转换的盒子,被叫做网关;有的电脑部署了一个代理软件,也被叫做网关。究其根本,网关的本质就是做协议转换,从最底层的物理层协议到最上层的应用层协议,各种网关不过是对应在协议栈的不同层上做转换。比如工业数采网关实现的是工业协议到平台协议的转换;WiFi路由器实现的是WiFi到以太网的转换。

连接

负责将物理设备的数据通过网络传输到上层软件平台,它可能包括各种通信技术,如以太网、Wi-Fi、蓝牙、Zigbee、LTE、5G等。

平台

物联网平台负责将设备数据收集上来、处理和存储。而为了适配不同的设备协议,IOT平台需要在架构上进行合理的抽象,一般都会抽象出设备、网关、产品这几种对象,以及制定物模型、平台协议作为设备模型、接入设备的标准通信协议。

三三物联网平台的数据采集架构

三三在沿用一般IOT平台的基本抽象(设备、网关、产品)的基础上,有着自己独特的创新,真正将数据采集架构做到了简洁和优美,能够非常方便的扩展各种设备接入方式。比如三三将软网关和硬网关的做了很好的统一,对三三而言,软网关和硬网关甚至可以相互转换,比如你将软网关部署到了盒子里,它就变成了硬网关。

三三物联网平台接入设备示例

正是由于三三简洁的数据采集架构,基于三三开源物联网平台,众多开发者已经轻松扩展适配了数百种设备,以下是一些示例:

空调:

智能锁:

摄像头:

电表:

本文到这里就结束了,欢迎您也作为开发者,使用三三开源物联网平台接入您自己的设备,搭建属于您自己的物联网应用。

关注宏电官方微信公众号

每周三带您了解不一样的SANSAN开源物联网平台

这篇关于SANSAN新鲜事|一文搞懂IOT平台的数据采集架构的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/770365

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

Linux下利用select实现串口数据读取过程

《Linux下利用select实现串口数据读取过程》文章介绍Linux中使用select、poll或epoll实现串口数据读取,通过I/O多路复用机制在数据到达时触发读取,避免持续轮询,示例代码展示设... 目录示例代码(使用select实现)代码解释总结在 linux 系统里,我们可以借助 select、

Spring Boot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)

《SpringBoot分层架构详解之从Controller到Service再到Mapper的完整流程(用户管理系统为例)》本文将以一个实际案例(用户管理系统)为例,详细解析SpringBoot中Co... 目录引言:为什么学习Spring Boot分层架构?第一部分:Spring Boot的整体架构1.1

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

Pandas处理缺失数据的方式汇总

《Pandas处理缺失数据的方式汇总》许多教程中的数据与现实世界中的数据有很大不同,现实世界中的数据很少是干净且同质的,本文我们将讨论处理缺失数据的一些常规注意事项,了解Pandas如何表示缺失数据,... 目录缺失数据约定的权衡Pandas 中的缺失数据None 作为哨兵值NaN:缺失的数值数据Panda

C++中处理文本数据char与string的终极对比指南

《C++中处理文本数据char与string的终极对比指南》在C++编程中char和string是两种用于处理字符数据的类型,但它们在使用方式和功能上有显著的不同,:本文主要介绍C++中处理文本数... 目录1. 基本定义与本质2. 内存管理3. 操作与功能4. 性能特点5. 使用场景6. 相互转换核心区别

一文详解MySQL索引(六张图彻底搞懂)

《一文详解MySQL索引(六张图彻底搞懂)》MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度,:本文主要介绍MySQL索引的相关资料,文中通过代码介绍的... 目录一、什么是索引?为什么需要索引?二、索引该用哪种数据结构?1. 哈希表2. 跳表3. 二叉排序树4.

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl