查看: 2275|回复: 1

玩转OneNET物联网平台之简介

[复制链接]
  • TA的每日心情
    开心
    2020-7-1 09:10
  • 签到天数: 817 天

    [LV.10]以坛为家III

    发表于 2019-6-27 09:48 | 显示全部楼层 |阅读模式
    本帖最后由 单片机菜鸟 于 2019-11-28 09:47 编辑

    QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷
    image

    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 请求方式 说明
    新增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资源模型如下图:

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

    image

    6.OneNet开发准备

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

    6.1 创建产品

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

    image

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

    image

    image

    image

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

    image

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

    6.2 创建设备

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

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

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

    手动创建使用场景

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

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

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

    手动创建使用场景

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

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

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

    6.3 数据流与数据点

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

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

    image

    6.4 应用管理 —— 数据展示

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

    7.总结

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


  • TA的每日心情
    开心
    2020-7-1 09:10
  • 签到天数: 817 天

    [LV.10]以坛为家III

     楼主| 发表于 2019-11-28 10:15 | 显示全部楼层
    自我顶一下  https://blog.csdn.net/dpjcn1990
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    热门推荐

    5分钟带你快速了解新一代开发板:M5STACK
    5分钟带你快速了解新一代
    一、什么是M5Stack M5Stack是一种模块化、可堆叠扩展的开发板,每个模块
    创客火首发无人机编队套装,开启不一样的人工智能教育
    创客火首发无人机编队套装
    2017年国务院发布《新一代人工智能发展规划》,提出要广泛开展人工智能科普活动,在中
    未见过的TFT屏,是什么驱动芯片?
    未见过的TFT屏,是什么驱
    这两块屏是从POS机里拆的,准备做几个锂电池组电压监测,在网上没找到资料,在这里问
    win10系统显示不出端口信息,编译后显示serial port not selected。
    win10系统显示不出端口信
    求各位哥哥帮忙,小兄弟实在不懂是win10系统的原因,还是需要安装什么驱动程式?具体
    更智能的电脑远程开关机-基于继电器
    更智能的电脑远程开关机-
    我只是刚刚入门的萌新,所以有不足请指出 先展示下 功能:开关机,开关机检测,
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
    快速回复 返回顶部 返回列表