华为IoT训练营之一:平台在手,万物皆有~

这是华为IoT举办的一个训练营,4.1号---4.30号;自己昨天才看到,上车晚了,第一第二期的提交已经截止了,anyway,还是怼着玩玩吧。
想记录一下主要是下面两个原因:
1.跟着视频操作一遍后反倒有点迷糊,不搞清楚机制很难受。
2.方便以后上手操作。

想起一个段子:两学渣探讨问题,一个真敢讲,一个真敢听。。。。纯粹个人理解,maybe错误百出。

华为IoT训练营之一:平台在手,万物皆有~_第1张图片
第一期主要讲了:
01 Profile定义;
02 编解码插件开发;
04 在线调试
其他项课程中没有涉及到。

//在Profile定义之前先有个产品创建的过程,很简单,略过



01 Profile定义

Profile这个词,很难有一个中文词与之完美对应。看看官方文档对于IoT平台上的profile的定义及创建过程:

https://iot-dev.huaweicloud.com/assets/docCenter/helpcenter/helpPortal/Portal/helpcenter.html?manualName=UserGuide_COMMON&docSite=COMMONpage=gettingStarted&lang=zh&fake_Url=zh-cn_topic_0127923580.html

看完了Profile的定义及创建过程,来看一下实例:
华为IoT训练营之一:平台在手,万物皆有~_第2张图片 教程实例是要能根据灯光的亮度自动控制灯的亮灭。这是我根据教程创建的Profile中的一项,即开关项,使得能够获取灯的当前开关状态。这个项中有 服务名称; 属性列表;命令列表。

服务名称要能表征Profile中的这一服务是干嘛的,建议采用驼峰式命名;
属性列表(是跟上报字段联系在一起的):是设备向云平台上报的消息指令。表征这项服务的特征属性,比如服务是BulbSwitch,即灯的开关,那表征的属性自然是灯的状态了,亮或是灭,可以用status表征。
命令列表(是跟下发字段联系在一起的):是云平台对设备下发的命令,即要执行的动作。用ON_OFF表征此项,实际的动作指令是toggleBulb

拉通来看,其实就是先给一个服务名称,表征这项服务是干嘛的;
然后,要能获取设备状态呀,就是这块属性列表做的事;
最后获取状态以后,我不喜欢这个状态,要改变状态,就要下发命令,这就是命令列表能赋予你的能力。



02 编解码插件

华为IoT训练营之一:平台在手,万物皆有~_第3张图片我们知道了Profile里面定义属性列表是为了上报消息,但上报的二进制消息,没法直接给物联网平台呀,物联网平台能够接受的是JSON这种脚本语言,这就需要一个文本转换的功能了,就是编解码插件干的事。
事都被编解码插件干完了,那我们要做的是什么呢?就是把
1上报消息中的字段与产品模型的属性字段关联到一起。
2下发消息中的字段与产品模型的下发命令字段关联到一起。
先看下面这张图,就是实现1的
华为IoT训练营之一:平台在手,万物皆有~_第4张图片左边的大白框就是在编解码插件这部分中设置的,因为有status和color两项,所以在设置的时候要先设置地址段,以区别两项。
以bulb_status为例:命令格式的第一段是messageId(勾选设置为地址段后系统自动命名)第二段才是status。因为数据格式都是int8u,所以上报一条消息是16位,也就是四个十六进制位。高两个位是messageId,低两位是status。eg:bulb_status中的地址是0x0(系统给的),因为是两位十六进制位,则messageId为0x00;status(两个十六进制位)定义了两种状态0或1,用16进制表示就是0x00或0x01。则想上报一次灯光的状态,字段为:0x0000或0x0001。
蓝线右边连接的那个小框框就是在profile中定义的属性了。


来看下面这张图,就是实现2的

华为IoT训练营之一:平台在手,万物皆有~_第5张图片这块我自己猜测,Profile定义中的产品模型,是让设备本身与物联网平台实现模型结构上的互联,即构成下面这个
华为IoT训练营之一:平台在手,万物皆有~_第6张图片而编解码插件就是签证,签证办好了,但是一堆数字(上报的属性字段or下发的命令字段)跟孤魂野鬼一样在游荡,没法自己找到桥的入口啊,这时候就需要小蓝和小紫箭头引导一下数字了。
小蓝把上报消息中的字段送到属性列表这个桥的入口处,小紫把下发消息中的字段送到命令列表这个桥的入口处。
这样就么的问题,可以欢快的过桥了。



04 在线调试

前面的原理搞懂了,在线调试就没啥问题了。就是根据地址字段+想要实现目标的字段填入十六进制命令就行了,不赘述了。

你可能感兴趣的:(华为IoT应用)