一
千千萬萬的物聯網設備通過ALink協議接入到了云端,它們不斷地按照ALink協議的規范向云端匯報數據,同時也一直在等待服務器下發一些數據并處理這些數據。關于物聯網設備端如何搞定這些數據,零妖老哥會在下一篇文章中以一個型號叫做STM32F103的單片機為例子進行硬件電路和程序代碼的詳細講解,不要說你沒有基礎什么都不懂,你要是沒有打開電腦上網的基礎的話就關閉這篇文章吧(⊙o⊙ )。
今天這篇文章零妖將告訴你云端怎么調用設備的數據。調用設備數據,給設備下發數據,獲取設備當前是否在線等等,都是通過調用阿里云提供的API(相當于一個子函數,運行一下出一個結果那種)來實現的。我們就以一個API的使用方法為例子進行示范,起一個拋磚引玉的作用。
二
零妖在上一章介紹了一種方法,在網頁上顯示了一個儀表盤,今天就來嘗試一下將設備上報的溫度數據顯示到儀表盤上。
在LinkDevelop平臺中定義好一個產品后,你會得到一個產品的IoT-TSL(物的描述語言)。在云端看來,設備無非就是一串串符合ALink協議規范的JSON字符串。零妖老哥當初定義物聯網彈幕器這個設備有兩個屬性,一個是溫度,一個是彈幕。
好了,我們的目標很明確了,我們要通過調用API的方式獲取設備的一個屬性,即獲取溫度這個屬性。請你打開這個網址,找到 物的管理服務 里面的 獲取物的指定屬性快照數據 這個API的官方幫助文檔。
然后就你就可以看到關于這個API的使用方法示例了,其實很簡單,只需要修改一下他們例程里面的參數,然后通過例程上給的方法調用一下,就可以得到一個返回值,這個返回值里面會有一個參數就是我們想得到的溫度屬性的數值。
三
擼起袖子開始抄!復制,粘貼!注意一下哈,這里面也import了一個東西,其實是導入了另外一個新的組件,名字叫做 @bone/linkdevelop-sdk ,你要自己安裝一下。方法在零妖的上一篇文章中已經介紹了,不再說了啊。然后我們要修改里面的內容。你需要進入你的 測試設備 這個頁面,讀取兩個參數如下圖。這里得到的參數是 ProductKey 和 ProductSecret 。
然后去 功能定義 里看一下溫度屬性的標識符:
最后把上述得到的三個參數復制到代碼里,替換原來的數值。
四
上述代碼中有一個地方是零妖自己琢磨了一會后發現的,就是修改儀表盤顯示數值的那個變量。有個小技巧,先猜測某個變量最有可能是對應儀表盤顯示的,然后修改這個變量,觀察結果。(高級的我真的不懂了,誰讓我是半路出家的竟會些歪門邪道。)
告訴你一個很神奇的代碼,能夠提高調試代碼的效率: console.log(this.Temperature); ,作用是在控制臺輸出this.Temperature這個變量的內容,你可以修改為任何你想查看的變量。
零妖并不是特別擅長寫“云上”這些代碼,我只是告訴你一種方法來調用物的屬性。其實如果你是專業的云端工程師,到這里就夠了,你可以去開發你的代碼了,不管你是基于哪個框架的哪種編程語言的,只要會調用API不就行了嗎?
五
最后,打開我們的MQTT客戶端,模擬設備端發送一個數據過來。儀表盤同步變化了!
階段小結:如果你看到這里,其實就可以完成云端工程師的工作了。完全可以用MQTT客戶端來模擬設備發送數據和接收數據,你就能調試云端和應用端的代碼了。關于設備端的研發套路,零妖從下一篇文章開始介紹,主角是STM32F103C8T6這顆單片機!
-
單片機
+關注
關注
6032文章
44522瀏覽量
633218 -
物聯網
+關注
關注
2904文章
44300瀏覽量
371422 -
阿里云
+關注
關注
3文章
942瀏覽量
42971 -
IOT
+關注
關注
186文章
4181瀏覽量
196268
發布評論請先 登錄
相關推薦
評論