查看: 2152|回复: 0

氦氪云入门教程07-来玩新版氦氪通用演示产品

[复制链接]
发表于 2017-8-11 16:20 | 显示全部楼层 |阅读模式
现在我们官方淘宝店发货的氦氪模块,其中烧录的都是新版的氦氪通用演示产品的prodKey,今天我们来体验下这个新的演示产品。在看本贴之前,你可以先看一遍新版氦氪通用演示产品使用说明书
模块配网之后,进入设备控制页面,可以看到功能页面是空白的,我需要在设置页面添加状态和命令。
191034eiktjf6btgl46pz0.png
给设备起个名字叫演示设备,添加两个状态,温度和湿度,其中温度是开氏温度(摄氏温度+273),所以用到了两个字节。
191422zv6hmglb66djthsj.png
添加命令,注意这里的命令取值是从2开始的,因为命令0和1有默认的功能,其中,命令0代表APP查询设备状态,命令1代表设备上报状态。指令位是从6开始的,因为一帧数据中,帧头是4个字节,命令又占了1个字节,所以指令位可取的最小值是6。 命令类型:
回弹开关:01:打开开关,00:保持不变
非回弹开关:01:打开开关,02:关闭开关,00:保持不变
档位调节值:01:档位1,02:档位2,03:档位3,FF:关闭该项设定,00:保持不变
滑条调节值:[01,65]表示 0%-100%百分比,FF:关闭该项设定,00:保持不变
关闭该项设定是指该命令对应的控件变成不可用状态,无法操作。

191606rbb5vj4b7g75navq.png
设置完毕之后,点击右上角的发布按钮,页面会跳到功能页面,但是页面底部的三个按钮(功能,设置,调试)消失了,可以点击页面上方的设备名称5次再次调出底部的三个按钮,每次从设备列表页进入设备控制页面的时候,底部的这三个按钮都会消失,需要手动调出来。
192836miis33cm9qs2ssse.png
经过以上步骤我们就完成了一个演示产品的设置,其形成的通信协议如下图所示:
185835lj0l0kppjuflvrul.png

实际操作示例:
进入设备控制页面
设备收到:48 06 02 01 00 51
设备应答:48 06 02 01 00 51
设备上报当前状态(见备注1示例)

每隔30秒钟
设备收到:48 06 02 01 00 51
设备应答:48 06 02 01 00 51
设备上报当前状态(见备注1示例)

点击回弹按钮
设备收到:48 0D 02 02 02 01 00 00 00 00 00 00 5C
设备应答:48 0D 02 02 02 01 00 00 00 00 00 00 5C
设备上报当前状态(见备注1示例)

点击非回弹按钮
设备收到:48 0D 02 03 03 00 01 00 00 00 00 00 5E
设备应答:48 0D 02 03 03 00 01 00 00 00 00 00 5E
设备上报当前状态(见备注1示例)

调节档位到“中”档
设备收到:48 0D 02 05 04 00 00 02 00 00 00 00 62
设备应答:48 0D 02 05 04 00 00 02 00 00 00 00 62
设备上报当前状态(见备注1示例)

将滑动条拖到50%的位置
设备收到:48 0D 02 08 05 00 00 00 33 00 00 00 97
设备应答:48 0D 02 08 05 00 00 00 33 00 00 00 97
设备上报当前状态(见备注1示例)

备注1:
设备上报当前状态示例:
非回弹开关开,中档,滑动条59%,温度299,湿度50
设备发送:48 0D 01 01 01 00 01 02 3C 01 2B 32 F5
模块应答:48 0D 01 01 01 00 01 02 3C 01 2B 32 F5
202227m8b2ak5pcs3sknc5.png

非回弹开关关,高档,滑动条64%,温度305,湿度80
设备发送:48 0D 01 01 01 00 02 03 41 01 31 50 20
模块应答:48 0D 01 01 01 00 02 03 41 01 31 50 20
202404t6doz6uc619ccdoi.png

在调试页面,可以下发数据给设备:
直接填写业务数据就可以了,不用添加帧头和校验码。
202923atky1aakiuw3135t.png
串口助手收到数据
203123dqltsteafealdld9.png
你会发现在调试页面下发的帧和串口助手收到的帧的内容并不是完全相同的,但是业务数据是相同的,这个原因我在教程氦氪云入门教程01-拿到氦氪WiFi模块之后应该怎样开始玩?里讲过,这里再提一遍:
MCU和WiFi模块之间维护一套自增的帧序号,WiFi模块和APP之间维护另外一套自增的帧序号,所以从APP下发的一帧数据,在MCU上看到的帧序号和APP下发的可能是不一致的,但是有效数据是一致的,因为MCU和WiFi模块之间是一上电就开始有数据收发了,APP每次打开,没法知道MCU当前的帧序号,所以就从帧序号0开始发,这时WiFi模块如果直接转发数据给MCU,MCU就会疑惑,帧序号为何又从0开始了。

在调试页面,可以模拟设备上报数据:
这里也是直接填写业务数据,我们填的业务数据为01 00 01 02 3C 01 28 32,其代表的意思是设备上报当前的状态为:非回弹开关开,中档,滑动条59%,温度299,湿度50
204006ih2uwh2ql2clelwc.png
切换到功能页面,可以看到页面显示了我们刚才在调试页面模拟设备上报的数据。
204037fz6joh5kzi2c3icq.png

备注:
如果你模块里的PK已经被写成其他值了,但是想再次使用这个氦氪通用演示产品,请透过串口发送如下的PK设置帧给模块:
48 16 FE 01 21 01 AE 49 85 53 B1 D1 2E 5A D4 45 00 BD 79 36 86 63
重写PK之后,请在丛云APP里将PK为旧值的设备删掉,然后使设备进入配网模式,重新在丛云APP里添加设备。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

热门推荐

Blynk与m5stack basic以及uiflow的交互玩法
Blynk与m5stack basic以及
Blynk与m5stack basic以及uiflow的交互玩法 [准备工作我们假设玩家已经熟悉下面的准备
Arduino Ter什么时候上市购买
Arduino Ter什么时候上市
一直没人问 那我就来问问好了 深爱 Arduino 但目前的开发板资源有限 简单的就比如现有
blinker无法对ESP8266下发指令
blinker无法对ESP8266下发
blinker端的数据键名称是与代码对应的,连接wifi特显示arduino在线,但按键的话把8266
helloWifi上传出错
helloWifi上传出错
板子:Node mcu 已下载Blinker库,已下载对应ESP8266库(图二) 问题描述:编译出错
APP
APP
哪位大佬有这款 App ,求apk
Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   
快速回复 返回顶部 返回列表