天天看點

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

物聯網全棧教程-從雲端到裝置( 十一

千千萬萬的物聯網裝置通過ALink協定接入到了雲端,它們不斷地按照ALink協定的規範向雲端彙報資料,同時也一直在等待伺服器下發一些資料并處理這些資料。關于物聯網裝置端如何搞定這些資料,零妖老哥會在下一篇文章中以一個型号叫做STM32F103的單片機為例子進行硬體電路和程式代碼的詳細講解,不要說你沒有基礎什麼都不懂,你要是沒有打開電腦上網的基礎的話就關閉這篇文章吧(⊙o⊙ )。

今天這篇文章零妖将告訴你雲端怎麼調用裝置的資料。調用裝置資料,給裝置下發資料,擷取裝置目前是否線上等等,都是通過調用阿裡雲提供的API(相當于一個子函數,運作一下出一個結果那種)來實作的。我們就以一個API的使用方法為例子進行示範,起一個抛磚引玉的作用。

零妖在上一章介紹了一種方法,在網頁上顯示了一個儀表盤,今天就來嘗試一下将裝置上報的溫度資料顯示到儀表盤上。

在LinkDevelop平台中定義好一個産品後,你會得到一個産品的IoT-TSL(物的描述語言)。在雲端看來,裝置無非就是一串串符合ALink協定規範的JSON字元串。零妖老哥當初定義物聯網彈幕器這個裝置有兩個屬性,一個是溫度,一個是彈幕。

好了,我們的目标很明确了,我們要通過調用API的方式擷取裝置的一個屬性,即擷取溫度這個屬性。請你打開這個網址,找到  物的管理服務 裡面的 擷取物的指定屬性快照資料 這個API的官方幫助文檔。

https://linkdevelop.aliyun.com/docCenter#/api/4
【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

然後就你就可以看到關于這個API的使用方法示例了,其實很簡單,隻需要修改一下他們例程裡面的參數,然後通過例程上給的方法調用一下,就可以得到一個傳回值,這個傳回值裡面會有一個參數就是我們想得到的溫度屬性的數值。

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

撸起袖子開始抄!複制,粘貼!注意一下哈,這裡面也import了一個東西,其實是導入了另外一個新的元件,名字叫做   @bone/linkdevelop-sdk  ,你要自己安裝一下。方法在零妖的上一篇文章中已經介紹了,不再說了啊。然後我們要修改裡面的内容。你需要進入你的 測試裝置 這個頁面,讀取兩個參數如下圖。這裡得到的參數是 ProductKey 和 ProductSecret 。

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

然後去 功能定義 裡看一下溫度屬性的辨別符:

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

最後把上述得到的三個參數複制到代碼裡,替換原來的數值。

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。

上述代碼中有一個地方是零妖自己琢磨了一會後發現的,就是修改儀表盤顯示數值的那個變量。有個小技巧,先猜測某個變量最有可能是對應儀表盤顯示的,然後修改這個變量,觀察結果。(進階的我真的不懂了,誰讓我是半路出家的竟會些歪門邪道。)

告訴你一個很神奇的代碼,能夠提高調試代碼的效率:   console.log(this.Temperature);  ,作用是在控制台輸出this.Temperature這個變量的内容,你可以修改為任何你想檢視的變量。

零妖并不是特别擅長寫“雲上”這些代碼,我隻是告訴你一種方法來調用物的屬性。其實如果你是專業的雲端工程師,到這裡就夠了,你可以去開發你的代碼了,不管你是基于哪個架構的哪種程式設計語言的,隻要會調用API不就行了嗎?

最後,打開我們的MQTT用戶端,模拟裝置端發送一個資料過來。儀表盤同步變化了!

【連載】物聯網全棧教程-從雲端到裝置(十一)---調用阿裡雲API,擷取物的屬性。
階段小結:如果你看到這裡,其實就可以完成雲端工程師的工作了。完全可以用MQTT用戶端來模拟裝置發送資料和接收資料,你就能調試雲端和應用端的代碼了。關于裝置端的研發套路,零妖從下一篇文章開始介紹,主角是STM32F103C8T6這顆單片機!

我已經把前11章的内容制作成為一個總的PDF檔案了,非常适合做雲端産品的朋友閱讀,完全不用硬體就可以調試産品的應用程式,非常友善。需要的朋友加零妖QQ号聊聊吧,記得說你是在技新網看到的資訊昂。QQ:1827702167    暗号:  上雲