首先簡(jiǎn)單的介紹下這兩個(gè)阿里云的產(chǎn)品功能吧
阿里云物聯(lián)網(wǎng):物聯(lián)網(wǎng)平臺(tái)提供安全可靠的設(shè)備連接通信能力,支持設(shè)備數(shù)據(jù)采集上云,規(guī)則引擎流轉(zhuǎn)數(shù)據(jù)和云端數(shù)據(jù)下發(fā)設(shè)備端。此外,也提供方便快捷的設(shè)備管理能力,支持物模型定義,數(shù)據(jù)結(jié)構(gòu)化存儲(chǔ),和遠(yuǎn)程調(diào)試、監(jiān)控、運(yùn)維。
表格存儲(chǔ):表格存儲(chǔ)(Tablestore)面向海量結(jié)構(gòu)化數(shù)據(jù)提供Serverless表存儲(chǔ)服務(wù),同時(shí)針對(duì)物聯(lián)網(wǎng)場(chǎng)景深度優(yōu)化提供一站式的IoTstore解決方案。適用于海量賬單、IM消息、物聯(lián)網(wǎng)、車聯(lián)網(wǎng)、風(fēng)控、推薦等場(chǎng)景中的結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ),提供海量數(shù)據(jù)低成本存儲(chǔ)、毫秒級(jí)的在線數(shù)據(jù)查詢和檢索以及靈活的數(shù)據(jù)分析能力。
再說(shuō)一下我的需求:在公司未能完成硬件開發(fā)的前提下,模擬硬件設(shè)備向物聯(lián)網(wǎng)發(fā)送數(shù)據(jù)并采集到表格存儲(chǔ)中 再通過(guò)云服務(wù)器向移動(dòng)端轉(zhuǎn)接。
整體步驟如下:
-
開通物聯(lián)網(wǎng)這個(gè)功能并且創(chuàng)建產(chǎn)品
-
添加設(shè)備
設(shè)備證書最好是拿文檔存一下哈,后面需要使用。 -
進(jìn)行物模型設(shè)置(意思就是給這個(gè)設(shè)備添加一些數(shù)據(jù)屬性)
物模型參數(shù)填完后記得左下角發(fā)布一下!?。。∥锬P蚸son數(shù)據(jù)也要保存下來(lái) -
由于我沒(méi)有真機(jī)設(shè)備所以目前只能用LinkSdk 模擬真機(jī)進(jìn)行上傳數(shù)據(jù),下載地址:https://help.aliyun.com/document_detail/42648.html
-
開始設(shè)備建連:
#一. 下載sdk(文檔地址https://help.aliyun.com/document_detail/96596.html) 我是用的python3.7 所以直接 pip3 install paho-mqtt==1.4.0 和 pip3 install aliyun-iot-linkkit 即可
#二. 把設(shè)備信息更換掉(就是剛才保存在文檔上的三個(gè)參數(shù))
#三. 把第3步物模型json數(shù)據(jù)導(dǎo)到本地更換掉(因?yàn)檫@個(gè)模型json跟你創(chuàng)建的模型屬性掛鉤)
#四. 更換掉使用thing_post_property方法的標(biāo)識(shí)符(當(dāng)然不同語(yǔ)言sdk的方法命名不一樣,仔細(xì)觀察即可找出)
#五. 我們運(yùn)行一下程序就能上報(bào)數(shù)據(jù)啦~ -
開始數(shù)據(jù)流轉(zhuǎn)到表格存儲(chǔ):
#一. 創(chuàng)建數(shù)據(jù)源
#二. 添加Topic
#三. 創(chuàng)建數(shù)據(jù)目的(沒(méi)有授權(quán)的授權(quán)一下)
沒(méi)有創(chuàng)建表格存儲(chǔ)實(shí)例的也創(chuàng)建下
創(chuàng)建好實(shí)例把表也創(chuàng)建一張(方便設(shè)備數(shù)據(jù)流轉(zhuǎn)過(guò)來(lái))
#四. 完成之后我們?cè)倩氐綌?shù)據(jù)目的這里進(jìn)行創(chuàng)建
#五. 接下來(lái)創(chuàng)建一下解析器(按照步驟來(lái)全部創(chuàng)建)
關(guān)聯(lián)數(shù)據(jù)源
關(guān)聯(lián)數(shù)據(jù)目的
編寫解析腳本(目前好像只支持js的部分)
腳本文檔地址https://help.aliyun.com/document_detail/270937.html)
代碼如下:文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-724890.html
//通過(guò)payload函數(shù),獲取設(shè)備上報(bào)的消息內(nèi)容,并按照J(rèn)SON格式轉(zhuǎn)換。
var data = payload("json");
var obj={}
//第一種方法。
var lightcurrent = getOrNull(data, "items", "LightCurrent", "value");
//第二種方法
var lightswitch = data.items.LightSwitch.value;
obj.put('lightcurrent',lightcurrent)
obj.put('lightswitch',lightswitch)
//這里需要注意下 獲取的函數(shù)是deviceName,而我創(chuàng)建數(shù)據(jù)庫(kù)的主鍵時(shí)拼錯(cuò)了拼成divceName,主鍵是必須要的哦。
obj.put('divceName',deviceName())
obj.put('id',timestamp())
//writeTableStore是對(duì)應(yīng)tablestore寬表模式,其他數(shù)據(jù)庫(kù)要用其他函數(shù)。接收第一個(gè)參數(shù)實(shí)第二部數(shù)據(jù)目的的id,第二個(gè)參數(shù)是返回給tablestore的數(shù)據(jù)
writeTableStore(1000, obj);
點(diǎn)擊保存和發(fā)布 然后退回來(lái)點(diǎn)擊發(fā)布
#五. 接下來(lái)就該測(cè)試一下啦~ 打開文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-724890.html
結(jié)尾:這樣基本大功告成了,雖然不是一個(gè)完整的物聯(lián)網(wǎng)開發(fā) 但是有助于我們這些開發(fā)者能夠早點(diǎn)認(rèn)識(shí)了解并學(xué)習(xí)到這些功能(啃文檔的日子真的好難受阿?。?!) 如有寫錯(cuò)或者寫的不好的地方希望在評(píng)論區(qū)賜教 感謝!
到了這里,關(guān)于阿里云物聯(lián)網(wǎng)流轉(zhuǎn)表格存儲(chǔ)Tablestore的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!