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

上海大学工程教育(高级)实战开发_多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记。【一】

  • 编者言
  • 往期目录
  • 整体框架
    • 一览
    • Stm32+Esp8266+Onenet
    • Onenet+Pyqt5+Mysql(⭐前端其实都一样)
    • Onenet+Flutter(⭐前端其实都一样)
  • 第一天夜
    • Onenet平台开发
    • 具体流程
      • 添加产品
      • 新增设备
        • Postman
  • 第二天
      • 注册设备
        • Postman
      • 更新设备
      • 查询设备详情
        • Postman
      • 批量查询设备状态
      • 新增数据流(⭐)
        • Postman
      • 批量查询数据流信息
      • 批量查询设备最新数据(⭐)

编者言

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个多小时就调试好了,但是我感觉开放程度不高。
    如果你想试试,下面是机智云的连接,具体操作我这里不介绍,请您移步机智云。
    • 机智云平台: http://www2.gizwits.com/.
  • 然后回到这部分的一个主题是关于Onenet平台的开发,Onenet是移动的,用起来也真的很移动,(手动滑稽)
    • 首先先附上官网地址
    • Onenet: https://open.iot.10086.cn/.
    • 多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第1张图片
    • 开发文档里找到多协议接入,我这里选的是MQTT协议,(其他协议真的也行,这些底层协议都是基于TCP和UDP在我这个小菜鸡面前根本不去搞它具体的通信协议,会用就完事了)
    • 多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第2张图片
  • 当然Onenet也是有可视化界面的,在开发者中心,不过我觉得既然学,我就直接学的是全用Post和Get请求做,而那个开发者中心我就只用来看数据对不对。
    • 下面也不多流水话了,直接开始项目一些常用指令的学习和测试
    • 具体结合开发者文档和 Postman 进行的。

具体流程

添加产品

  1. 首先我这里是先建立一个产品:
    多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第3张图片
  2. 然后万里长征已经走完了第一步(在这里我没有选择添加设备,因为我打算用Postman在这里插入图片描述
    当然我们需要知道一些参数
    然后让我们试着添加第一个设备

新增设备

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第4张图片
Post方式,参数很多都是选填的
Postman真的很好用.jpg
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第5张图片

Postman

里面鉴权信息可以用户自定义的
在header添加api-key多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第6张图片
结果:
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第7张图片
这样就添加好第一个项目。这个产品id很重要,下面几乎每个请求都要用到这个id.还有api-key.

第二天

接着上面的继续。

注册设备

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

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

Postman

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第9张图片
返回0成功
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第10张图片
1. 当然可能有疑问,注册和添加不都是弄了一个新设备吗。是的,不过有一点不一样的是,注册的设备有自己的Api-Key,这样就可以不用Master-Key。一个设备一个Api_key虽然麻烦,但是安全系数高,当然之前添加的设备也可以在设备详情里面添加Api-Key.
图示法表示是:

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

更新设备

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

查询设备详情

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第11张图片
Get方法,比较简单,也是常用到的,在前端实现显示的时候都需要套用。

Postman

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

批量查询设备状态

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第13张图片
突然想起来还有这个。哈哈哈,对于多设备很好用。
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第14张图片

新增数据流(⭐)

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第15张图片
Post 请求,需要注明设备Id。
以设备1为例:
想想我们需要多少数据流?
大概我想了这几个

设备号 592808742
数据流 数据类型 注释
Led_switch Bool 测试用Led开关
Online Bool 远程控制上下线
Tec Bool TEC工作状态
Warning Bool ⚠状态
dev_num int 节点数量
Temp_s1 Int 主节点温度1数据(室温)
Temp_s2 Int 主节点温度2数据
Temp_z3 Int 子节点温度3数据
Temp_z4 Int 子节点温度4数据
---- -----
Set_s2 Int 主节点温度2预设
Set_z3 Int 子节点温度3预设
Set_z4 Int 子节点温度4预设
---- -----

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

Postman

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第16张图片
ds_uuid:代表平台分配的数据流Id其实是内部存储用的,(咱们用不到)。
!@#¥%……&*()————+过了很久
好了,我加完了
平台上显示:
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第17张图片

批量查询数据流信息

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第18张图片
数据流那麽多当然批量更好,而且我们根本不可能记得数据流Id,那太麻烦了。
下面才是重点:

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

多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第19张图片
这才是跟我们前端交互最关键的地方
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第20张图片
啥都没有说明是空的
用后台生成一些伪数据。
多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。_第21张图片

{
    "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的说明就到这里。之后一些订阅如果我用的到的话,我再加。不急。

你可能感兴趣的:(多点温控[[Onenet]+[Esp8266]+[Stm32[F4/F1]+[Pyqt5]+[Flutter[App]]系列笔记【一】(完结)。)