玩转OneNET物联网平台之简介
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力。希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石。。。
QQ技术互动交流群:ESP8266&32 物联网开发 群号622368884,不喜勿喷
一、你如果想学基于Arduino的ESP8266开发技术
一、基础篇
二、网络篇
- ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
- ESP8266开发之旅 网络篇② ESP8266 工作模式与ESP8266WiFi库
- ESP8266开发之旅 网络篇③ Soft-AP——ESP8266WiFiAP库的使用
- ESP8266开发之旅 网络篇④ Station——ESP8266WiFiSTA库的使用
- ESP8266开发之旅 网络篇⑤ Scan WiFi——ESP8266WiFiScan库的使用
- ESP8266开发之旅 网络篇⑥ ESP8266WiFiGeneric——基础库
- ESP8266开发之旅 网络篇⑦ TCP Server & TCP Client
- ESP8266开发之旅 网络篇⑧ SmartConfig——一键配网
- ESP8266开发之旅 网络篇⑨ HttpClient——ESP8266HTTPClient库的使用
- ESP8266开发之旅 网络篇⑩ UDP服务
- ESP8266开发之旅 网络篇⑪ WebServer——ESP8266WebServer库的使用
- ESP8266开发之旅 网络篇⑫ 域名服务——ESP8266mDNS库
- ESP8266开发之旅 网络篇⑬ SPIFFS——ESP8266 Flash文件系统
- ESP8266开发之旅 网络篇⑭ web配网
- ESP8266开发之旅 网络篇⑮ 真正的域名服务——DNSServer
- ESP8266开发之旅 网络篇⑯ 无线更新——OTA固件更新
三、应用篇
四、高级篇
1.前言
在进入OneNet系列之前,我们先来了解一下OneNet平台。读者可以自行阅读OneNet官方文档,博哥这里只是做到抛砖引玉的作用。
2.OneNET物联网平台简介
OneNET定位为PaaS服务,即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台:
- 面向设备,适配多种网络环境和常见传输协议(包括我们讲的MQTT、HTTP等),提供各类硬件终端的快速接入方案和设备管理服务;
- 面向企业应用,提供丰富的API和数据分发能力以满足各类行业应用系统的开发需求,使物联网企业可以更加专注于自身应用的开发,而不用将工作重心放在设备接入层的环境搭建上,从而缩短物联网系统的形成周期,降低企业研发、运营和运维成本。
简单理解为:放心用,OneNet平台为你考虑了方方面面。
3.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提供用户资源访问安全认证机制,提供产品级以及设备级的不同粒度的密钥,并支持用户自定义密钥访问权限,最大限度保证用户设备以及应用层接入的安全性。
4.资源模型
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常用术语:

6.OneNet开发准备
理解了OneNet基本知识之后,我们就可以开始建造我们自己的项目(博主不会教你怎么去注册OneNet,请自行注册登录)。
6.1 创建产品
登录后进入开发者中心,创建不同协议下的产品(项目),博主在这里先创建三个不同协议的产品(项目,后面的案例会基于这三个产品进行)。

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



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

每种协议对应自己的开发方式以及调试工具,开发者可以自行查阅官方文档。
6.2 创建设备
创建产品后会提示立即添加设备,而创建设备又有多种方式。
6.2.1 创建单个设备 —— 手动创建
创建产品后会提示立即添加设备,我们在提前预知设备的前提下推荐采用此种方式。具体可看成官方文档 创建单个设备 。
手动创建使用场景:
- 提前预知设备,比如温湿度控制系统上传数据节点,我们可以提前预知设备信息以及设备数量。
6.2.2 批量创建设备 —— 手动创建
除了单个创建设备外,平台还提供批量创建设备的功能。具体可看成官方文档 批量创建设备 。
手动创建使用场景:
- 提前预知设备,比如多点温湿度控制系统上传数据节点,我们可以提前预知设备信息以及设备数量。
6.2.3 自动创建设备 —— API创建
在无法提前知道设备的场景下,我们无法提前去创建设备节点,推荐的做法是设备自动往OneNet平台注册。比如,智能家居LED系统中,我们无法提前预知家里会安装多少LED设备,这个时候就需要设备可以自动注册绑定系统。在后面OneNet Mqtt中我们会讲解这一点,属于常用功能。具体API可以参考 API列表,开发者需要注意不同协议下使用不同的API。
6.3 数据流与数据点
创建完设备之后,我们就可以开始处理数据了。
OneNet平台通过数据流与数据点来组织设备上行数据,如下图所示:

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

6.4 应用管理 —— 数据展示
通过OneNET应用编辑器,用户可以方便快捷地实现OneNET平台上的设备数据流可视化。请开发者自行查看文档 应用管理
基本上到这里,我们完成了OneNet平台上的一个项目配置。
7.总结
本篇属于纯理论篇,大体上介绍了一下OneNet平台下的一些知识点,方便我们有个大体了解。接下来的篇章,博主将针对不同协议进行不同讲解。
玩转OneNET物联网平台之简介的更多相关文章
- 玩转OneNET物联网平台之MQTT服务④ —— 远程控制LED(设备自注册)+ Android App控制
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之MQTT服务③ —— 远程控制LED(设备自注册)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之HTTP服务① —— 模拟上传温度(TcpClient)
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之MQTT服务② —— 远程控制LED
1.理论基础 参考博主线上博文: 玩转PubSubClient MQTT库 玩转OneNET物联网平台之简介 玩转OneNET物联网平台之MQTT服务① 2.远程控制LED 2.1 实验材料 ...
- 玩转OneNET物联网平台之MQTT服务① —— OneNetMqtt全方位调试
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之MQTT服务⑤ —— OneNet智能灯+MVP框架
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之HTTP服务③ —— OneNet智能灯 HTTP版本
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- 玩转OneNET物联网平台之MQTT服务⑦ —— 远程控制LED(数量无限制)+ Android App控制 优化第一版
授人以鱼不如授人以渔,目的不是为了教会你具体项目开发,而是学会学习的能力.希望大家分享给你周边需要的朋友或者同学,说不定大神成长之路有博哥的奠基石... QQ技术互动交流群:ESP8266&3 ...
- HelloX操作系统与中国移动OneNET物联网平台成功完成对接
HelloX成功与中国移动物联网平台对接 经过HelloX项目组同仁的努力,尤其是Tywin(@飓风)的努力下,HelloX最新版本V1.78已成功与中国移动OneNET(open.iot.10086 ...
随机推荐
- Spring Boot 的单元测试和集成测试
学习如何使用本教程中提供的工具,并在 Spring Boot 环境中编写单元测试和集成测试. 1. 概览 本文中,我们将了解如何编写单元测试并将其集成在 Spring Boot 环境中.你可在网上找到 ...
- java异常类的妙用
异常类的妙用 以往在使用异常时,只是知道通过异常类的构造方法设置一些出错信息,此外最多就是把引起该异常的原因通过Throwable类的子类一同设置进去.今天在分析springSecurity3.0 ...
- SUSE Storage6 环境搭建详细步骤 - Win10 + VMware WorkStation
学习 SUSE Storage 系列文章 (1)SUSE Storage6 实验环境搭建详细步骤 - Win10 + VMware WorkStation (2)SUSE Linux Enterpri ...
- 杭州蓝松科技---短视频SDK介绍
蓝松短视频的口号和 更新周期: 我们的口号是: 蓝松短视频 任意个性化. 我们是杭州蓝松科技, 专业做视频短视频SDK的技术团队. 我们提供 Android/IOS平台上的 短视频编辑SDK, ...
- .Net Core 微服务容器系列基础目录篇
1.开场白 HI,各位老铁,大家端午好,之前写了些关于.net core商城系列的文章,有点乱,今天心血来潮想着整理一下(今天只是先把目录列出来,后面的每篇文章这两天会进行重新修改的,目前先将就看下) ...
- Navicat使用常见的两个问题及解决方法,提高开发效率
Navicat使用常见问题 在我们日常开发过程中,一般不会直接使用命令行来操作 MYSQL 数据库,而会选择一些图形化界面去帮助我们来进行此类操作,常用的有:SQLyog(Logo也是小海豚),Nav ...
- React的diff算法(译文)
前言 此篇文章主要是因为在看Virtual DOM(虚拟DOM)的时候看到的主要讲的是实现Virtual Dom 的diff算法,原文地址:https://calendar.perfplanet.c ...
- Kafka 异步消息也会阻塞?记一次 Dubbo 频繁超时排查过程
线上某服务 A 调用服务 B 接口完成一次交易,一次晚上的生产变更之后,系统监控发现服务 B 接口频繁超时,后续甚至返回线程池耗尽错误 Thread pool is EXHAUSTED.因为服务 B ...
- 03-01 K-Means聚类算法
目录 K-Means聚类算法 一.K-Means聚类算法学习目标 二.K-Means聚类算法详解 2.1 K-Means聚类算法原理 2.2 K-Means聚类算法和KNN 三.传统的K-Means聚 ...
- IP的分类以及子网划分、网络设置
前言 整个因特网就是一个单一的.抽象的的网络.IP地址就是给因特网上的每一个主机(或路由器)的每一个接口分配一个在全世界范围是唯一的32位的标识符.IP地址的结构使我们可以在因特网上很方便的进行寻址. ...