天貓-阿里雲IoT平台接入開發記錄


 
開發環境:
1、IoT 設備端開發
2、設備基於於 Linux 平台
3、無 AliOS Things 的 SDK

 

一、開發資料

1、SDK下載及介紹

https://help.aliyun.com/document_detail/135278.html?spm=a2c4g.11186623.6.645.b04b7e70qmGKql

 

2、關鍵參數

  • PK: ProductKey, 設備品類標識字符串,
  • PS: ProductSecret, 設備品類密鑰
  • DN:DeviceName, 某台設備的標識字符串
  • DS: DeviceSecret, 某台設備的設備密鑰

詳細介紹:https://help.aliyun.com/document_detail/96627.html?spm=a2c4g.11186623.6.606.5c0770dfcOzuUM
參數來源:https://help.aliyun.com/document_detail/115433.html?spm=a2c4g.11186623.6.548.5c0770df3Mcz3T

 

3、配網功能

WiFi配網概述:https://help.aliyun.com/document_detail/97570.html?spm=a2c4g.11186623.6.623.5c0770df4gHKr7
設備熱點配網:https://help.aliyun.com/document_detail/111048.html?spm=a2c4g.11186623.6.598.284c8d7fMGnCla
一鍵配網問題排查:https://help.aliyun.com/document_detail/128598.html?spm=a2c4g.11186623.4.3.2b164e10ux8Q0G
零配問題排查:https://help.aliyun.com/document_detail/128649.html?spm=a2c4g.11186623.6.751.49ee42aaXJP70p

 

4、Wi-Fi設備接入LP

設備端/雲端/APP接入開發介紹:https://help.aliyun.com/document_detail/115433.html?spm=a2c4g.11186623.6.548.5c0770df3Mcz3T

 

5、公版App介紹

https://help.aliyun.com/document_detail/143848.html?spm=a2c4g.11186623.2.23.1b4c2adaLRTn8F#task-2338021

 

6、錯誤碼字典

https://help.aliyun.com/document_detail/127995.html?spm=5176.11065259.1996646101.searchclickresult.3b1d3682Hnhydl

注:錯誤碼更新不及時,有些遇到的錯誤碼這里並沒有。

 

7、SDK不同語言或平台功能匯總

https://help.aliyun.com/document_detail/100576.html?spm=a2c4g.11186623.6.543.5c0770dfFFKyQm

 

Opps 1:飛燕、啟明星、阿里物聯、生活智能、天貓精靈app、公版app......整的真亂!

Opps 2:統一平台后,又強制阿里賬號和天貓賬號關聯;關聯后登錄,要阿里平台登一次,天貓賬號登一次,完了還要短信驗證碼,那個費勁吶。。。

 

二、開發過程

1、SDK 獲取

運行在 Linux 系統,需要下載不帶 AliOS 的 SDK:

生活物聯網平台SDK(V1.3.0) 或 git clone git@code.aliyun.com:living_platform/ali-smartliving-device-sdk-c.git -b rel_1.3.0

 

2、網絡接入(配網)

准備:設備,天貓精靈app(app store下載)

1.1 AP配網實現細節

- 設備作為 CoAP Server,監聽 UDP 5683 端口

- 天貓精靈App不支持AP配網!!!

 

1.2 一鍵配網實現細節

- 解析 802.11 幀包,涉及數據幀/管理幀

- 網卡需支持混雜模式(也叫monitor模式)

- Linux 平台需要網卡 firmware 和 驅動支持

 

1.3 一鍵配網開發流程

1.3.1 在雲平台創建產品

1.3.2 創建調試設備,進而獲取 ProductKey、ProductSecret、DeviceName、DeviceSecret 參數

注1:ProductKey/ProductSecret 參數和產品綁定的,即對於創建的同一個產品,這對參數固定;DeviceName/DeviceSecret 參數和具體設備綁定,即“一機一碼”

注2:配網信息解密涉及這些參數,若有誤,將因解密配網數據失敗而無法完成配網

1.3.3 從雲平台下載配網二維碼

1.3.4 設備端一鍵配網 SDK 使用:

首先,需要根據自己的硬件平台適配一鍵配網鈎子函數,主要的有:

  • HAL_Awss_Switch_Channel:信道切換
  • HAL_Awss_Open_Monitor:開啟網卡混雜模式(監聽模式)
  • awss_recv_80211_frame_cb_t:網卡接收 802.11 的數據包,並調用其對802.11幀進行處理
  • HAL_Awss_Close_Monitor:關閉網卡混雜模式(監聽模式)
1、設置參數
HAL_SetProductKey(config.product_key);
HAL_SetProductSecret(config.product_secret);
HAL_SetDeviceName(config.device_name);
HAL_SetDeviceSecret(config.device_secret);

2、注冊事件回調函數
// 注冊配網事件回調一定要需在awss_start之前調用
iotx_event_regist_cb(linkkit_event_handler);

3、使能一鍵配網
awss_config_press();

4、進入配網流程
awss_start();

 

其次,實現所需鈎子函數,並在合適的時機調用之。

這部分關鍵是要保證 HAL_Awss_Switch_Channel 信道切換和接收 802.11 的數據幀的正確性。

 

:配網完成,釋放 aws_info 對象導致出現段錯誤!

 

3、連雲

設備連上網絡后,在雲端完成設備注冊,app 端才最終提示配網完成,然后 app 上才顯示自己的設備。

SDK 的 examples 目錄下有幾種支持的連雲方式,如下:

但是,比較坑的是,有的只有連雲功能(如mqtt),不具備設備注冊功能。這就是說,配網過程設備連上網后,調用只有連雲功能的示例是無法完成配網的!

這里,linkkit 既有設備注冊功能,又有連雲功能,一切正常。

 

4、設備功能開發及和 app 插件端聯調

略。

5、OTA 功能開發

設備端開發:用高級版接口實現的OTA例程

固件上傳雲端:操作步驟

https://help.aliyun.com/document_detail/131448.html?spm=a2c4g.11174283.2.24.2d1971327LUS5W

6、產品上線

 

 

 

 

 

 

 

 

 

 

待續。。。。。。。。。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM