玩转OneNET物联网平台之简介

❤️博主介绍❤️
😬 作者:单片机菜鸟哥
👉火爆博客:ESP8266 Arduino教程

零基础从入门到熟悉Arduino平台下开发ESP8266,同时会涉及网络编程知识。专栏文章累计超过60篇,分为基础篇、网络篇、应用篇、高级篇,涵盖ESP8266大部分开发技巧。

👻最近更新:ESP32 MicroPython应用

讲解Python在esp32上的应用,包括网络请求、爬虫

快速导航
单片机菜鸟的博客快速索引(快速找到你要的)

如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。

文章目录

    • 1.前言
    • 2.OneNET物联网平台简介
    • 3.OneNET物联网平台架构
      • 3.1 设备接入
      • 3.2 设备管理
      • 3.3 API列表
        • 3.3.1 设备管理相关 —— 重要
        • 3.3.2 数据流管理相关 —— 重要
        • 3.3.3 数据管理相关 —— 重要
        • 3.3.4 设备命令相关
        • 3.3.5 触发器相关
        • 3.3.6 apikey相关
        • 3.3.7 topic相关(限MQTT设备使用)
      • 3.4 HTTP推送
      • 3.5 安全认证
    • 4.资源模型
      • 4.1 用户(user) —— OneNet平台账号
      • 4.2 产品(product) —— 具体项目
      • 4.3 设备(device) —— 项目涉及到的物理设备
      • 4.4 数据流与数据点 —— 物理设备上传的数据
      • 4.5 APIkey —— 用户校验标识
      • 4.6 触发器(trigger) —— 报警服务
      • 4.7 应用(application) —— OneNet自带UI展示
    • 5.术语解释
    • 6.OneNet开发准备
      • 6.1 创建产品
      • 6.2 创建设备
        • 6.2.1 创建单个设备 —— 手动创建
        • 6.2.2 批量创建设备 —— 手动创建
        • 6.2.3 自动创建设备 —— API创建
      • 6.3 数据流与数据点
      • 6.4 应用管理 —— 数据展示
    • 7.总结

1.前言

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

2.OneNET物联网平台简介

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

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

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

3.OneNET物联网平台架构

玩转OneNET物联网平台之简介

    可以通过上图去理解整个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 请求方式 说明
新增apikey POST 新增的apikey只具有设备级的权限
更新apikey PUT
查询apikey GET
删除apikey DELETE

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资源模型如下图:

玩转OneNET物联网平台之简介

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常用术语:

玩转OneNET物联网平台之简介

6.OneNet开发准备

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

6.1 创建产品

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

玩转OneNET物联网平台之简介

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

玩转OneNET物联网平台之简介

玩转OneNET物联网平台之简介

玩转OneNET物联网平台之简介

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

玩转OneNET物联网平台之简介

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

6.2 创建设备

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

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

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

手动创建使用场景

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

6.2.2 批量创建设备 —— 手动创建

    除了单个创建设备外,平台还提供批量创建设备的功能。具体可看成官方文档 批量创建设备 。

手动创建使用场景

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

6.2.3 自动创建设备 —— API创建

    在无法提前知道设备的场景下,我们无法提前去创建设备节点,推荐的做法是设备自动往OneNet平台注册。比如,智能家居LED系统中,我们无法提前预知家里会安装多少LED设备,这个时候就需要设备可以自动注册绑定系统。在后面OneNet Mqtt中我们会讲解这一点,属于常用功能。具体API可以参考 API列表,开发者需要注意不同协议下使用不同的API

6.3 数据流与数据点

    创建完设备之后,我们就可以开始处理数据了。
    OneNet平台通过数据流与数据点来组织设备上行数据,如下图所示:
玩转OneNET物联网平台之简介

    设备上传并存储数据时,必须以key-value的格式上传数据,其中key即为数据流(stream)名称,value为实际存储的数据点(point),value格式可以为int、float、string、json等多种自定义格式。
    在实际应用中,数据流可以被用于分类描述设备的某一类属性数据,例如温度,湿度,坐标等信息,用户可以自定义数据流的数据范围,将相关性较高的数据归类为一个数据流。
    数据流中的数据在存储的同时可以“流向”后续服务,数据流是平台后续数据服务(规则、触发器、消息队列等)的服务对象,后续数据服务支持用户通过选择数据流的方式选择服务的数据来源
    数据流中的数据平台会默认以时序存储,用户可以查询数据流中的不同时间的数据点的值,如下图:

玩转OneNET物联网平台之简介

6.4 应用管理 —— 数据展示

    通过OneNET应用编辑器,用户可以方便快捷地实现OneNET平台上的设备数据流可视化。请开发者自行查看文档 应用管理
    基本上到这里,我们完成了OneNet平台上的一个项目配置。

7.总结

    本篇属于纯理论篇,大体上介绍了一下OneNet平台下的一些知识点,方便我们有个大体了解。接下来的篇章,博主将针对不同协议进行不同讲解。

本文章来源于互联网,如有侵权,请联系删除!原文地址:玩转OneNET物联网平台之简介