一
物聯網專案在開發初期,需要雲端和裝置端兩個工種的工程師一起談談實現的技術細節。有乙個叫作alink協議的語言,成功解決了兩個物種之間交流困難的世紀難題!
alink協議是針對物聯網開發領域設計的一種資料交換規範。裝置端按照這個簡單的規範把資料組織一下傳送給雲端,雲端工程師也懂這個簡單的規範,可以直接拿這個資料進行處理。同時還解決了除錯困難的痛點:雲端工程師使用乙個叫做mqtt客戶端的電腦工具,就可以傳送符合alink協議的測試資料除錯雲端產品的**;裝置端工程師就可以在給微控制器寫**的時候直接組織乙個符合alink協議的測試資料,從而不用依賴雲端下發。
二物聯網將物理世界的萬物接入網路並通過整合各類服務實現智慧型化。「物」(things)作為整個網路中的基礎節點和商業觸手,既是環境資訊的採集者,也是智慧型服務的提供者和承載者。「物」就是裝置端。
你首先需要對物聯網中的「物」能做什麼,能提供什麼樣的服務進行描述。這就需要從產品層面進行功能建模,定義物的「屬性」(property)、「服務」(service)和「事件」(event)。最簡單的情況下你定義乙個屬性就夠了,比如零妖的物聯網彈幕器專案,就僅有兩個屬性。
通過功能建模將各類裝置統一抽象為雲端的資源,並對外暴露相應的介面,以滿足不同場景下不同系統的呼叫和快速整合。
物模型是對裝置是什麼,能做什麼的描述,包括裝置身份標識、連線狀態、描述資訊,以及裝置的屬性(properties)、服務(services)、事件(events),後三者構成了裝置的功能定義。link develop通過定義一種物的描述語言來描述物模型,稱之為 tsl(即 thing specification language)。
三有一種非常簡單的資料格式,叫作json字串,有程式設計基礎的人兩分鐘就能研究清楚那是什麼。alink協議的資料格式就是json字串的格式。零妖只是提一下而已,alink協議想讀懂根本不用了解啥是json,我要開車了,兄弟們請坐好扶穩。
看到了吧,就是這麼簡單。上面那個截圖就是裝置上報自己屬性的字串。裝置端傳送的資料其實就是那些內容,而且零妖也解釋很清楚了。總結一下,就是 的做法,非常類似 《鍵:值》 的做法。反正對於微控制器來說,想要上報哪個屬性,就傳送哪個,修改一下後面的數值就行了。
同理,雲端下發的資料也是符合alink協議的。微控制器想解析這些資料就更簡單了,簡直不要太爽。我們只管記住這些固定的格式就行了,其他的不用修改。上行資料和下行資料在格式上都一樣,但是有些固定的地方是不一樣的,可以去 檢視單個裝置的報文,複製你需要的報文,然後修改其中的屬性名稱和數值,就可以了。
對於雲端開發的工程師來說,要做的工作就是呼叫阿里雲提供的api,往裡面扔資料就行了,自己更需要關注的是業務的實現邏輯而不是這些細節問題。雲端開發**的流程零妖會在後面的文章裡講乙個小小的demo,幫助你快速上手。
物聯網全棧教程 從雲端到裝置(一)
一2016年的時候,我還在學校裡面準備著畢業 當時做的課題是 乙個挖掘機上面的乙個繼電器的壽命。我們的想法是檢測其吸合的次數,然後根據吸合的次數來預計其壽命,這個想法很簡單。因為乙個繼電器失效之前通常會正常吸合一定的次數比如10w次。二當時還是乙個愣頭青,想法簡單。實際去做的時候才發現事情遠沒有想的...
物聯網全棧教程 從雲端到裝置(二)
一二三 乙個完整的物聯網專案不是乙個硬體的事情,也不是乙個雲端軟體的事情,而是兩者的配合。既然稱之為物聯網,那麼我們講究兩個字 聯網。好吧,將會涉及到兩個東西,我們稱之為上行資料和下行資料。只要我們的裝置能夠做到上報資料和接收資料,那就夠了,剩下的事情無非就是處理一下這些資料。咱的彈幕器實戰專案將會...
物聯網全棧教程 從雲端到裝置(十)
一 有些坑零妖已經跳過了,所以就直接放出四個 裡面都是乾貨。整個物聯網彈幕器的專案中的web應用所遇到的問題,都是通過瀏覽這四個 來解決的。bone web 的官方介紹 ui元件的詳細介紹 資料視覺化元件 物聯網裝置相關的api說明 注意 使用一些元件的時候,要先安裝它們到電腦上。然後再修改pack...