IOT——阿里雲的三元組是什麼?怎麼用?

IoT裏面是根據『產品』對所有智能設備分類的。比如說智能檯燈A是一個產品,智能插座B是另一個產品。每個產品根據productKey來區分。一個產品裏面有很多臺設備,每個設備都有一個deviceName和deviceSecret與之對應。通常把這三者聯合起來稱作三元組信息。

1. 三元組

阿里物聯網平臺的連接註冊也需要用到“三元組”:

  • ProductKey
  • DeviceName
  • DeviceSecret

這個三元組並不是直接拿來用的,而是需要按照官方設定的協議規則得到UserName、PassWord、ClientID、IP這幾個參數,規則就是:

參數 阿里雲物聯網平臺參數
UserName {DeviceName}&{ProductKey}
PassWord 通過下面的算法獲取
ClientID {隨便定}|securemode=3,signmethod=hmacsha1,timestamp=789|
IP {ProductKey}.iot-as-mqtt.cn-shanghai.aliyuncs.com

PassWord生成:

一般來說,hmac_sha1進行編碼時會有兩個參數:Key和value。

  • Key對應三元組中的:DeviceSecret
  • value就要複雜一點(XXXX,替換成實際的值):clientIdXXXXdeviceNameXXXXproductKeyXXXXXXtimestamp789
     

2. 用在哪?

2.1 MQTT協議用到的

MQTT3.1.1協議中CONNECT 報文的有效載荷(payload) 包含一個或多個以長度爲前綴的字段,可變報頭中的標誌決定是否包含這些字段。 如果包含的話, 必須按這個順序出現:客戶端標識符, 遺囑主題, 遺囑消息, 用戶名

例如通過mqtt協議連接阿里雲,連接函數可以定義成如下,這裏入口參數就用到了上面的三個參數,客戶端標識符、 用戶名、 密碼

uint8_t mqtt_connect(char *ClientID,char *Username,char *Password)

函數的中入口參數具體如何使用按照協議規定來就好。

2.2 wifi模塊等連網設備用到的

會用到ip地址,例如esp8266在使用AT指令連接服務器時,AT+CIPSTART,就會用到服務器的IP地址。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章