0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手教你使用物模型连接DDSU电表

亿佰特物联网应用专家 2024-06-14 08:21 次阅读

物模型其实就是云平台对产品功能的数字化描述。以“灯”为例,最简单的“灯”具有“开”和“关”属性,只需要在平台定义一个布尔量的数据点位,有些高级的“灯”还具有“亮度”、“色温”、“颜色”等属性,可以和简单“灯”一样定义多个属性描述,也可以定义一个结构体,下图就是基于阿里云“物联网平台”定义的两种“灯具”举例。

fbb65c3e-29e3-11ef-a655-92fbcf53809c.pngfbc3098e-29e3-11ef-a655-92fbcf53809c.png

利用物模型规范数据传输的格式更好的整合和管理多样化的产品数据,提高数据处理和交互的效率,方便将设备接入软件即服务(SaaS)、平台即服务(PaaS)等云服务类型,比如利用“云智能”通用模板“零代码”开发手机应用以及利用“物联网平台”增值服务开发Web服务。

阿里云物模型使用

使用物模型需要对产品的功能进行定义,添加“灯”和“可控灯”两个属性,其中“灯”仅支持“开”“关”操作,而“可控灯”除了“开关”以外还可以进行“亮度”“色温”“颜色”控制。

fc19954c-29e3-11ef-a655-92fbcf53809c.png

配置完成点击“发布上线”即可,此时在进入设备界面的“物模型数据”下可以查看刚才添加的属性。

fc40c8d8-29e3-11ef-a655-92fbcf53809c.png

根据阿里云物模型JSON规则配置的上传数据格式:

{"id":"123","version":"1.0","params":{"light":1,"advanced_light":{"on":1,"luminance":500,"Temperature":1000,"colour":100}},"method":"thing.event.property.post"}

利用Node-RED推送JSON报文到阿里云规定的属性上报窗口,就可以在设备窗口查询到上报的属性;

fc63655a-29e3-11ef-a655-92fbcf53809c.pngfc76ab74-29e3-11ef-a655-92fbcf53809c.png

阿里云官方提供的实例演示地址:https://help.aliyun.com/zh/iot/getting-started/using-mqtt-fx-to-access-iot-platform?spm=a2c4g.11186623.0.0.12254df9kv2LCH

上述报文如何配置的都可以在此处查询,除此之外,还需要了解平台推送数据的方法。

阿里云和ONENET推送设置的格式基本一致,但ONENET平台需要在收到数据后向指定地址推送接收成功的报文,讲解ONENET时再展开说明;

还是以控制“灯”为例,了解平台下发数据的报文,下述报文为平台关闭“灯”并配置控制“可控灯”状态的报文:

{"id":"2024306076","version":"1.0","params":{"light":0,"advanced_light":{"on":1,"luminance":500,"Temperature":1000,"colour":100}},"method":"thing.service.property.set"}

ONENET物模型使用

所有的云平台物模型功能较为相似,ONENET和阿里云一样描述为功能定义,除了UI有差异外其余基本一致。

fc87e5ba-29e3-11ef-a655-92fbcf53809c.png

报文上与阿里云也比较类似,与阿里云列举相同案例:

{"id":"123","version":"1.0","params":{"light":{"value":0,"time":1524448722123}}}

相比阿里云增加了数据点位的时间戳功能;

fcab5af4-29e3-11ef-a655-92fbcf53809c.png

fcb0a64e-29e3-11ef-a655-92fbcf53809c.png

设备属性设置和阿里云相同,只是没有“method”字段,最大的差异时平台设置需要设备响应,否则服务器会返回错误。

DDSU666电表数据上报

《Node-RED实现电表数据上云》一文中使用Node-RED通过“MQTT节点”并利用“自定义topic”将透明报文数据传输至服务器实现了电表数据上云,通过自定义topic的方式连接服务器,无法使用平台的其他开发工具,通过前面对阿里云与中移物联网的物联网平台的物模型进行报文分析,接下来就手把手教大家使用物模型连接DDSU电表。

前文指路:

Node-RED实现电表数据采集并上云

下图为《Node-RED实现电表数据上云》的系统框架,接下来就在此基础上添加JSON报文解析和报文组合就可以实现物模型控制。

fccee2a8-29e3-11ef-a655-92fbcf53809c.png

按照“阿里云物模型使用”提供方法在定义“正向有功总功率”“当前电压”“当前电流”“当前功率”“查询代码”五条属性(查询代码采用枚举,其余需要使用浮点值),之后就是在“阿里云查询”节点后添加两个函数节点,分别用于提取平台查询代码和查询代码保存(后续上报时需要用到)。

fcefd4e0-29e3-11ef-a655-92fbcf53809c.png

函数(提取查询代码)1:

msg.payload = msg.payload.params.Query_code;

return msg;

函数(保存查询代码)2:

var QueryCode=0;

flow.set("QueryCode", msg.payload);

return QueryCode;

以上步骤就可以完成阿里云平台下发的配置指令解析,随后和之前一样,通过查询码,查询电表数据。

fcf9d59e-29e3-11ef-a655-92fbcf53809c.png

待“电表解析”完成后,增加函数节点,组合JSON报文;

fd1ca5c4-29e3-11ef-a655-92fbcf53809c.png

函数(ALIYUN报文配置)3:

var cache={"id":"123","version":"1.0","params":{},"method":"thing.event.property.post"};

cache.id = String(Date.parse(new Date())/1000);//将id数据用时间戳替换

var QueryCode=flow.get('QueryCode') || 0;

switch (QueryCode){

case 1:

cache.params.P = parseFloat(msg.payload);

break;

case 2:

cache.params.V = parseFloat(msg.payload);

break;

case 3:

cache.params.I = parseFloat(msg.payload);

break;

case 4:

cache.params.p = parseFloat(msg.payload);

break;

}

msg.payload=cache;

return msg;

调整“阿里云查询”“阿里云上报”的地址:

阿里云查询(属性设置):/sys/a1iJTfIclao/DEV01/thing/service/property/set

fd21ab28-29e3-11ef-a655-92fbcf53809c.png

阿里云上报(属性上报):/sys/a1iJTfIclao/DEV01/thing/event/property/post

fd4b1f58-29e3-11ef-a655-92fbcf53809c.png

同阿里云一样的方法定义五个属性,分别为“正向有功总电能”“当前电压”“当前电流”“当前功率”“查询代码”。

fda5888a-29e3-11ef-a655-92fbcf53809c.png

添加“mqtt in”节点、“函数”(返回报文)、“mqtt out”节点;

fdc918a4-29e3-11ef-a655-92fbcf53809c.png

函数(返回报文),需要id一致:

var msg_cache = {"id":"1","code":200,"msg":"success"};

msg_cache.id=msg.payload.id;

msg.payload=msg_cache;

return msg;

fdea7990-29e3-11ef-a655-92fbcf53809c.png

解析过程与阿里云同步,调整函数(ONENET报文配置):

var cache={"id":"123","version":"1.0","params":{}};

cache.id = String(Date.parse(new Date())/1000);//将id数据用时间戳替换

var QueryCode=flow.get('QueryCode') || 0;

switch (QueryCode){

case 1:

cache.params.P={};

cache.params.P.value = parseFloat(msg.payload);

cache.params.P.time = Date.parse(new Date());//上传时间错

break;

case 2:

cache.params.V={};

cache.params.V.value = parseFloat(msg.payload);

cache.params.V.time = Date.parse(new Date());

break;

case 3:

cache.params.I={};

cache.params.V.value = parseFloat(msg.payload);

cache.params.I.time = Date.parse(new Date());

break;

case 4:

cache.params.p={};

cache.params.V.value = parseFloat(msg.payload);

cache.params.p.time = Date.parse(new Date());

break;

}

msg.payload=cache;

return msg;

ONENET查询(属性设置):$sys/QpUi02FdgF/220220069406/thing/property/set

fe06d9aa-29e3-11ef-a655-92fbcf53809c.png

返回接收成功(属性设置响应):$sys/QpUi02FdgF/220220069406/thing/property/set_reply

fe384ff8-29e3-11ef-a655-92fbcf53809c.png

ONENET上报(属性上报):$sys/QpUi02FdgF/220220069406/thing/property/post

fe5fb9a8-29e3-11ef-a655-92fbcf53809c.png

至此,就成功将DDSU666电表连接到阿里云与中移物联网。

fe655bce-29e3-11ef-a655-92fbcf53809c.png

ONENET调试窗口查询电表数据;

fe889dfa-29e3-11ef-a655-92fbcf53809c.png

ALIYUN调试窗口查询电表数据;

fe99574e-29e3-11ef-a655-92fbcf53809c.png

产品推荐

febb994e-29e3-11ef-a655-92fbcf53809c.jpg

E870-G1边缘计算网关是基于亿佰特自行研发的通讯协议《亿佰特云设备通讯协议》开发的以太网/4G边缘采集云网关,可通过服务器下发指令到设备达到控制或采集功能;可采集500个边缘数据点。设备上支持多种协议(TCP、UDP、MQTT)接入服务器,支持心跳包、注册包设置;同时该产品支持多种配置方式,支持网页平台;采用工业级设计标准,保证设备的高可靠性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2903

    文章

    44240

    浏览量

    371001
  • 电表
    +关注

    关注

    12

    文章

    529

    浏览量

    35268
  • 云平台
    +关注

    关注

    1

    文章

    1277

    浏览量

    38861
收藏 人收藏

    评论

    相关推荐

    图文教程:手把手教你焊接贴片元件

    图文教程:手把手教你焊接贴片元件,首先来张全部焊接一个点的PCB图
    发表于 04-01 11:03 3.6w次阅读
    图文教程:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>焊接贴片元件

    手把手教你构建一个完整的工程

    手把手教你构建一个完整的工程
    发表于 08-03 09:54 33次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>构建一个完整的工程

    手把手教你写批处理-批处理的介绍

    手把手教你写批处理-批处理的介绍
    发表于 10-25 15:02 69次下载

    美女手把手教你如何装机(中)

    美女手把手教你如何装机(中) 再来是硬碟的部份,这款机壳还不错,可以旋转支架~
    发表于 01-27 11:14 1454次阅读

    美女手把手教你如何装机(下)

    美女手把手教你如何装机(下) 接著下来就是今天的重头戏,开核萝!~
    发表于 01-27 11:16 2915次阅读

    手把手教你学习FPGA—LED篇

    电子专业单片机相关知识学习教材资料——手把手教你学习FPGA—LED篇
    发表于 08-08 17:19 0次下载

    手把手教你学电子书制作

    手把手教你学电子书制作,可以自己DIY电子书
    发表于 09-13 11:26 0次下载

    手把手教你安装Quartus II

    本章手把手把教你如何安装 Quartus II 软件 ,并将它激活 。此外 还有USB -Blaster下载器的驱动安装步骤 。
    发表于 09-18 14:55 9次下载

    手把手教你在家搭建监控系统

    手把手教你在家搭建监控系统
    发表于 01-17 19:47 25次下载

    手把手教你做电子时钟---前言

    手把手教你做彩铃电子时钟
    发表于 11-14 16:53 11次下载

    手把手教你如何开始DSP编程

    手把手教你如何开始DSP编程。
    发表于 04-09 11:54 12次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>如何开始DSP编程

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视
    发表于 03-06 01:41 3107次阅读

    手把手教你开关电源PCB排板

    手把手教你开关电源PCB排板(新型电源技术)-分享一下开关电源PCB排板的基本要点及分析,以及例子讲解。绝对的手把手
    发表于 09-18 12:27 57次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>开关电源PCB排板

    手把手教你开发基于单片机的wifi通信的联网项目(远程灯控制)

    手把手教你开发基于单片机的wifi通信的联网项目(远程灯控制)
    发表于 11-12 19:36 18次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>开发基于单片机的wifi通信的<b class='flag-5'>物</b>联网项目(远程灯控制)

    手把手教你学FPGA仿真

    电子发烧友网站提供《手把手教你学FPGA仿真.pdf》资料免费下载
    发表于 10-19 09:17 2次下载
    <b class='flag-5'>手把手</b><b class='flag-5'>教你</b>学FPGA仿真