国产精品一区在线观看你懂的,三级电影网站免费观看,日韩黄色网,大黄网站在线观看

當前位置: 首頁 >應用方案 >技術應用 >

Node-RED聯(lián)動云平臺物模型實現(xiàn)電表數(shù)據(jù)上報教程

因為篇幅原因,我們將Node-RED聯(lián)動云平臺物模型實現(xiàn)電表數(shù)據(jù)上報教程分為了三段,前文撰寫的《Node-RED聯(lián)動ONENET云平臺物模型的應用教程》、《阿里云物模型的應用教程》兩篇文章中介紹了什么是物模型、ONENET物模型的使用以及阿里云物模型的使用教程。本文將重點介紹Node-RED聯(lián)動云平臺物模型實現(xiàn)電表數(shù)據(jù)上報過程的案例教程,

DDSU666電表數(shù)據(jù)上報步驟


Node-RED實現(xiàn)電表數(shù)據(jù)上云》一文中使用Node-RED通過“MQTT節(jié)點”并利用“自定義topic”將透明報文數(shù)據(jù)傳輸至服務器實現(xiàn)了電表數(shù)據(jù)上云,通過自定義topic的方式連接服務器,無法使用平臺的其他開發(fā)工具,通過前面對阿里云與中移物聯(lián)網(wǎng)的物聯(lián)網(wǎng)平臺的物模型進行報文分析,接下來就手把手教大家使用物模型連接DDSU電表;

1、物模型如何鏈接DDSU666電表

下圖為《Node-RED實現(xiàn)電表數(shù)據(jù)上云》的系統(tǒng)框架,接下來就在此基礎上添加JSON報文解析和報文組合就可以實現(xiàn)物模型控制;

Node-RED實現(xiàn)電表數(shù)據(jù)上云

按照阿里云物模型使用”提供方法在定義“正向有功總功率”“當前電壓”“當前電流”“當前功率”“查詢代碼”五條屬性(查詢代碼采用枚舉,其余需要使用浮點值),之后就是在“阿里云查詢”節(jié)點后添加兩個函數(shù)節(jié)點,分別用于提取平臺查詢代碼和查詢代碼保存(后續(xù)上報時需要用到);

Node-RED實現(xiàn)電表數(shù)據(jù)上云1

函數(shù)(提取查詢代碼)1

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

return msg;

函數(shù)(保存查詢代碼)2

var QueryCode=0;

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

return QueryCode;

以上步驟就可以完成阿里云平臺下發(fā)的配置指令解析,隨后和之前一樣,通過查詢碼,查詢電表數(shù)據(jù);

查詢電表數(shù)據(jù)

“電表解析”完成后,增加函數(shù)節(jié)點,組合JSON報文;

電表解析

函數(shù)(ALIYUN報文配置)3

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

cache.id = String(Date.parse(new Date())/1000); //id數(shù)據(jù)用時間戳替換

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

阿里云查詢

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

阿里云上報

和阿里云一樣的方法定義五個屬性,分別為“正向有功總電能”“當前電壓”“當前電流”“當前功率”“查詢代碼”

阿里云定義3

添加mqtt in”節(jié)點、“函數(shù)”(返回報文)、“mqtt out”節(jié)點;

阿里云定義4


函數(shù)(返回報文),需要id一致:

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

msg_cache.id=msg.payload.id;

msg.payload=msg_cache;

return msg;

阿里云定義5

解析過程與阿里云同步,調整函數(shù)(ONENET報文配置):

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

cache.id = String(Date.parse(new Date())/1000);//id數(shù)據(jù)用時間戳替換

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

實現(xiàn)電表數(shù)據(jù)上報教程1

返回接收成功(屬性設置響應):$sys/QpUi02FdgF/220220069406/thing/property/set_reply

實現(xiàn)電表數(shù)據(jù)上報教程2

ONENET上報(屬性上報):$sys/QpUi02FdgF/220220069406/thing/property/post

實現(xiàn)電表數(shù)據(jù)上報教程3

至此就成功將DDSU666電表連接到阿里云與中移物聯(lián)網(wǎng)。

實現(xiàn)電表數(shù)據(jù)上報教程4

2、電表數(shù)據(jù)查詢

ONENET調試窗口查詢電表數(shù)據(jù);

實現(xiàn)電表數(shù)據(jù)上報教程5

ALIYUN調試窗口查詢電表數(shù)據(jù);

實現(xiàn)電表數(shù)據(jù)上報教程6

好了,今天的分享就到這里啦,EBYTE每一天都致力于更好的助力物聯(lián)化、智能化、自動化的發(fā)展,提升資源利用率,更多產(chǎn)品更多資料,感興趣的小伙伴可以登錄我們的億佰特官網(wǎng)進行了解,也可以直接撥打400電話咨詢技術專員!


點擊撥打: 億佰特官網(wǎng) 4000-330-990