❤️博主介绍❤️
😬 作者:单片机菜鸟哥
👉火爆博客:ESP8266 Arduino教程
零基础从入门到熟悉Arduino平台下开发ESP8266,同时会涉及网络编程知识。专栏文章累计超过60篇,分为基础篇、网络篇、应用篇、高级篇,涵盖ESP8266大部分开发技巧。
👻最近更新:ESP32 MicroPython应用
讲解Python在esp32上的应用,包括网络请求、爬虫
如果觉得有用,麻烦点赞收藏,您的支持是博主创作的动力。
文章目录
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) —— 报警服务
收集整理了一份《2024年最新物联网嵌入式全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升的朋友。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人
都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!