玩转OneNET物联网平台之简介_onenet物模型和数据流的区别(1),谈谈我认为的高级物联网嵌入式开发开发到底应该是怎样的

307 阅读9分钟

1.前言

    在进入OneNet系列之前,我们先来了解一下OneNet平台。读者可以自行阅读OneNet官方文档,博哥这里只是做到抛砖引玉的作用。

2.OneNET物联网平台简介

    OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台

  • 面向设备,适配多种网络环境和常见传输协议(包括我们讲的MQTT、HTTP等),提供各类硬件终端的快速接入方案和设备管理服务;
  • 面向企业应用,提供丰富的API和数据分发能力以满足各类行业应用系统的开发需求,使物联网企业可以更加专注于自身应用的开发,而不用将工作重心放在设备接入层的环境搭建上,从而缩短物联网系统的形成周期,降低企业研发、运营和运维成本。

    简单理解为:放心用,OneNet平台为你考虑了方方面面。

3.OneNET物联网平台架构

image

    可以通过上图去理解整个OneNet平台的设计架构,对于我们来说,比较关注以下几点:

3.1 设备接入

    OneNET提供安全稳定的设备接入服务,支持包括LWM2M(CoAP)、MQTT、Modbus、HTTP、TCP等在内的多种协议:

  • 在考虑低功耗以及广覆盖的场景,建议使用CoAP协议接入
  • 在工业modbus通信场景,建议使用DTU+Modbus协议接入
  • 在需要与设备实时通信的场景,建议采用MQTT协议接入
  • 在设备单纯上报数据的场景,可以使用HTTP/HTTPS协议接入
  • 在用户需要自定义协议接入的场景,建议采用TCP+脚本的方式接入

具体参考 设备开发协议,大家可以点击下载具体的协议文档以便学习查阅。

3.2 设备管理

    OneNET平台针对不同的使用场景,提供关于设备的包括生命周期管理、在线状态监测、在线调试、数据管理等功能在内的丰富的设备管理功能。

具体参考 入门手册

3.3 API列表

    OneNET提供开放的、丰富的、基于HTTP/HTTPS的API接口,用户可以使用API进行设备管理,数据查询,设备命令交互等操作,在API的基础上,根据自己的个性化需求指定搭建上层应用。

    具体参考 API列表,作为开发者的我们需要根据产品接入协议来选择不同的API。

    平台提供的API列表如下:

3.3.1 设备管理相关 —— 重要
API请求方式说明
新增设备POST供应用层使用
注册设备POST用于设备自行注册场景
更新设备信息PUT用于更新设备属性
查询设备详情GET用于查询设备属性,包括设备在线状态
批量查询设备信息GET
批量查询设备状态GET
删除设备DELETE
3.3.2 数据流管理相关 —— 重要
API请求方式说明
新增数据流POST建立某设备独有的数据属性,产品内建议使用数据流模板替代
更新数据流属性PUT
查询数据流状态GET可用于查询数据流配置以及最新数据点
删除数据流DELETE
3.3.3 数据管理相关 —— 重要
API请求方式说明
查询设备历史数据GET
批量查询设备最新数据GET
上传数据点POST设备/应用服务器均可通过HTTP/HTTPS方式上传数据
上传文件POST可用于设备上传原始数据、图片、文件等
获取文件GET
3.3.4 设备命令相关
API请求方式说明
下发命令POST平台主动发送数据至设备
查询命令状态GET用于查询某条命令的执行情况
查询命令响应GET设备收到命令时需要设备发送命令响应
查询设备历史命令GET
3.3.5 触发器相关
API请求方式说明
新增触发器POST
更新触发器PUT
查询触发器详情GET
删除触发器DELETE
3.3.6 apikey相关
API请求方式说明
新增apikeyPOST新增的apikey只具有设备级的权限
更新apikeyPUT
查询apikeyGET
删除apikeyDELETE
3.3.7 topic相关(限MQTT设备使用)
API请求方式说明
发布消息POST发布消息到topic
查询订阅设备列表GET查询订阅某个topic的设备列表
查询设备订阅详情GET查询设备的topic订阅列表
查询topic列表GET

3.4 HTTP推送

    针对某些实时性要求较高的场景,OneNET提供数据推送功能,可以过滤掉设备端频繁的周期性上报数据,将用户关心的实时性较高的数据,通过HTTP/HTTPS的方式推送到用户的应用服务器上。

具体参考 HTTP推送

3.5 安全认证

    OneNET提供用户资源访问安全认证机制,提供产品级以及设备级的不同粒度的密钥,并支持用户自定义密钥访问权限,最大限度保证用户设备以及应用层接入的安全性。

具体参考 安全鉴权 以及 API鉴权

4.资源模型

    OneNET资源模型如下图:

image

4.1 用户(user) —— OneNet平台账号

    理解为每一个OneNet平台账号

4.2 产品(product) —— 具体项目

    用户的最大资源集为产品,产品下资源包括设备、设备数据、设备权限、数据触发服务以及基于设备数据的应用等多种资源,用户可以创建多个产品。理解为用户下的每一个项目,比如博哥建立一个温湿度监控系统

4.3 设备(device) —— 项目涉及到的物理设备

    设备为真实终端在平台的映射,真实终端连接平台时,需要与平台设备建立一一对应关系,终端上传的数据被存储在数据流中,设备可以拥有一个或者多个数据流。比如每一个温湿度模块+8266可组成一个设备。

4.4 数据流与数据点 —— 物理设备上传的数据

    数据流用于存储设备的某一类属性数据,例如温度,湿度,坐标等信息;平台要求设备上传并存储数据时,必须以key-value的格式上传数据,其中key即为数据流名称,value为实际存储的数据点,value格式可以为int、float、string、json等多种自定义格式。比如温湿度数据。

4.5 APIkey —— 用户校验标识

    APIkey为用户进行API调用时的密钥,用户访问产品资源时,必须使用该产品目录下对应的APIkey。其实跟买车票一样,有身份证才让上车。

4.6 触发器(trigger) —— 报警服务

    触发器为产品目录下的消息服务,可以进行基于数据流的简单逻辑判断并触发HTTP请求或者邮件。跟报警机制有点类似,触发了报警机制(比如温度超过多少),就做一些用户提示操作。

4.7 应用(application) —— OneNet自带UI展示

    应用编辑服务,支持用户以拖拽控件并关联设备数据流的方式,生成简易网页展示应用。比如,温湿度控制系统,我们可以拉取控件展示温度折线图。

5.术语解释

在开发OneNet项目之前,我们需要了解OneNet常用术语:

在这里插入图片描述

6.OneNet开发准备

    理解了OneNet基本知识之后,我们就可以开始建造我们自己的项目(博主不会教你怎么去注册OneNet,请自行注册登录)。

6.1 创建产品

    登录后进入开发者中心,创建不同协议下的产品(项目),博主在这里先创建三个不同协议的产品(项目,后面的案例会基于这三个产品进行)。

在这里插入图片描述

它们分别对应以下产品配置:

在这里插入图片描述

image

image

    其中最重要的信息就是“设备接入协议”,协议适用场景请见 协议简介

在这里插入图片描述

    每种协议对应自己的开发方式以及调试工具,开发者可以自行查阅官方文档。

6.2 创建设备

    创建产品后会提示立即添加设备,而创建设备又有多种方式。

6.2.1 创建单个设备 —— 手动创建

    创建产品后会提示立即添加设备,我们在提前预知设备的前提下推荐采用此种方式。具体可看成官方文档 创建单个设备

手动创建使用场景

  • 提前预知设备,比如温湿度控制系统上传数据节点,我们可以提前预知设备信息以及设备数量。

img img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取