多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。

编者言

2020/04/20,在得知将要开学,而学校工程教育课程项目在这个寒假零零散散做了一部分,但是实际上Wifi那里一直都没有搞很懂,而且,自己的103板子自玄学让我很苦恼,中间的时间就去做其他几个项目去了,现在,这几天要磕磕试试,把之前学习的这几个模块重新码一下。同时,也是第一次像做笔记一样把这些部分给磕出来。

往期目录

Onenet部分(第一期):
https://blog.csdn.net/nja12/article/details/105648774.
Esp8266部分(第二期):
https://blog.csdn.net/nja12/article/details/105660222.
Stm32部分(第三期):
https://blog.csdn.net/nja12/article/details/105751015.
Stm32Wifi接收部分+++(第四期):
https://blog.csdn.net/nja12/article/details/105852408.

整体框架

写到第二天发现,往后写还是需要先建立一个框架的,来总述这部分是来做什么的,以及每个区域之间的接口。

一览

用户指令
反馈
数据分析/用户验证
数据存储
待下发命令
数据收集
本节点数据
下节点数据/平台命令
上传
心跳检测
待下发命令
数据收集
数据分析/用户验证
数据存储
用户指令
反馈
用户
前端
Mysql
Onenet平台
MCU
Esp8266
app
sql

Stm32+Esp8266+Onenet

本节点数据
下节点数据/平台命令
上传
心跳检测
MCU
Esp8266
Onenet平台

Onenet+Pyqt5+Mysql(⭐前端其实都一样)

用户指令
反馈
待下发命令
数据收集
数据存储
数据分析/用户验证
用户
前端
Onenet平台
Mysql

Onenet+Flutter(⭐前端其实都一样)

用户指令
反馈
待下发命令
数据收集
数据存储
数据分析/用户验证
用户
app
Onenet平台
sql

第一天夜

Onenet平台开发

  • 对于Onenet平台的开发,其实也是一个比较懒的方式吧。首先是因为自己写的Api接口真的可能出Bug,而且在初期用的时候真的走了很多的弯路。
    一开始选的机智云平台,那个平台说实话,更像是傻瓜WiFi,感觉那样做真的不太像一个项目。因为我主要还是为了用Wifi模块,所以机智云那里其实是刷机智云固件的,而且我也真的中途就刷坏了一个Esp8266。哈哈哈,但是真好用。电灯大概花了1个多小时就调试好了,但是我感觉开放程度不高。
    如果你想试试,下面是机智云的连接,具体操作我这里不介绍,请您移步机智云。
  • 然后回到这部分的一个主题是关于Onenet平台的开发,Onenet是移动的,用起来也真的很移动,(手动滑稽)
    • 开发文档里找到多协议接入,我这里选的是MQTT协议,(其他协议真的也行,这些底层协议都是基于TCP和UDP在我这个小菜鸡面前根本不去搞它具体的通信协议,会用就完事了)
    • 在这里插入图片描述
  • 当然Onenet也是有可视化界面的,在开发者中心,不过我觉得既然学,我就直接学的是全用Post和Get请求做,而那个开发者中心我就只用来看数据对不对。
    • 下面也不多流水话了,直接开始项目一些常用指令的学习和测试
    • 具体结合开发者文档和 Postman 进行的。

具体流程

添加产品

  1. 首先我这里是先建立一个产品:
    在这里插入图片描述
  2. 然后万里长征已经走完了第一步(在这里我没有选择添加设备,因为我打算用Postman在这里插入图片描述
    当然我们需要知道一些参数
    然后让我们试着添加第一个设备

新增设备

在这里插入图片描述
Post方式,参数很多都是选填的
Postman真的很好用.jpg
在这里插入图片描述

Postman

里面鉴权信息可以用户自定义的
在header添加api-key在这里插入图片描述
结果:
在这里插入图片描述
这样就添加好第一个项目。这个产品id很重要,下面几乎每个请求都要用到这个id.还有api-key.

第二天

接着上面的继续。

注册设备

在这里插入图片描述

  1. 这写文档其实用着用着很快就会玩了。(注册码在开发者中心的产品下面还是很好找的)
Postman

在这里插入图片描述
返回0成功
在这里插入图片描述
1. 当然可能有疑问,注册和添加不都是弄了一个新设备吗。是的,不过有一点不一样的是,注册的设备有自己的Api-Key,这样就可以不用Master-Key。一个设备一个Api_key虽然麻烦,但是安全系数高,当然之前添加的设备也可以在设备详情里面添加Api-Key.
图示法表示是:

关联
关联
关联
关联
关联
关联
关联
关联
关联
Master-Key
设备一
设备二
设备三
Api-key1
Api-key2
Api-key3

更新设备

除了你想改一些基本信息,用处不大。建议还是平台操作。

查询设备详情

在这里插入图片描述
Get方法,比较简单,也是常用到的,在前端实现显示的时候都需要套用。

Postman

在这里插入图片描述

批量查询设备状态

在这里插入图片描述
突然想起来还有这个。哈哈哈,对于多设备很好用。
在这里插入图片描述

新增数据流(⭐)

在这里插入图片描述
Post 请求,需要注明设备Id。
以设备1为例:
想想我们需要多少数据流?
大概我想了这几个

设备号592808742
数据流数据类型注释
Led_switchBool测试用Led开关
OnlineBool远程控制上下线
TecBoolTEC工作状态
WarningBool⚠状态
dev_numint节点数量
Temp_s1Int主节点温度1数据(室温)
Temp_s2Int主节点温度2数据
Temp_z3Int子节点温度3数据
Temp_z4Int子节点温度4数据
---------
Set_s2Int主节点温度2预设
Set_z3Int子节点温度3预设
Set_z4Int子节点温度4预设
---------

对于大多数关系型数据库,这些表以后还能加,而且也不是很麻烦。
以一个为例:(感觉好多咳咳咳,有的忙了)

Postman

在这里插入图片描述
ds_uuid:代表平台分配的数据流Id其实是内部存储用的,(咱们用不到)。
!@#¥%……&*()————+过了很久
好了,我加完了
平台上显示:
在这里插入图片描述

批量查询数据流信息

在这里插入图片描述
数据流那麽多当然批量更好,而且我们根本不可能记得数据流Id,那太麻烦了。
下面才是重点:

批量查询设备最新数据(⭐)

在这里插入图片描述
这才是跟我们前端交互最关键的地方
在这里插入图片描述
啥都没有说明是空的
用后台生成一些伪数据。
在这里插入图片描述

{
    "errno": 0,
    "data": {
        "devices": [
            {
                "title": "device_001",
                "id": "592808742",
                "datastreams": [
                    {
                        "at": "2020-04-21 15:49:54",
                        "id": "dev_num",
                        "value": 1
                    },
                    {
                        "at": "2020-04-21 15:50:55",
                        "id": "Set_s2",
                        "value": 21
                    },
                    {
                        "at": "2020-04-21 15:50:24",
                        "id": "Temp_z3",
                        "value": 10
                    },
                    {
                        "at": "2020-04-21 15:49:34",
                        "id": "Warning",
                        "value": 1
                    },
                    {
                        "at": "2020-04-21 15:50:15",
                        "id": "Temp_s2",
                        "value": -1
                    },
                    {
                        "at": "2020-04-21 15:50:52",
                        "id": "Temp_z4",
                        "value": -1
                    },
                    {
                        "at": "2020-04-21 15:49:26",
                        "id": "Tec",
                        "value": 0
                    },
                    {
                        "at": "2020-04-21 15:48:53",
                        "id": "Led_switch",
                        "value": 0
                    },
                    {
                        "at": "2020-04-21 15:49:13",
                        "id": "Online",
                        "value": 0
                    },
                    {
                        "at": "2020-04-21 15:50:09",
                        "id": "Temp_s1",
                        "value": -4
                    },
                    {
                        "at": "2020-04-21 15:51:00",
                        "id": "Set_z3",
                        "value": 12
                    },
                    {
                        "at": "2020-04-21 15:51:05",
                        "id": "Set_z4",
                        "value": 1
                    }
                ]
            }
        ]
    },
    "error": "succ"
}

关于这些Api的说明就到这里。之后一些订阅如果我用的到的话,我再加。不急。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值