Link SDK是阿里雲物聯網平台提供的裝置端軟體開發套件,可簡化開發過程,實現裝置快速接入阿里雲物聯網平台。裝置廠商擷取SDK後,根據需要選擇相應功能進行移植,即可快速整合Link SDK,實現裝置的接入。
前提條件
裝置端開發前,需要完成物聯網平台控制台所需操作,擷取裝置開發階段的必要資訊,包括裝置資訊、Topic資訊等。具體請參見裝置接入引導。
背景資訊
物聯網平台支援海量異構的裝置接入,阿里雲物聯網平台提供裝置端軟體開發套件Link SDK,也提供標準ALink協議。
使用ALink協議開發,請參見基於Alink協議自主開發。
(推薦)使用Link SDK進行開發,實現裝置的快速接入。裝置基於Link SDK的開發流程可以分為以下步驟。
相關名詞的解釋,請參見基本概念。
整合方式
根據裝置類型的不同,整合Link SDK的方式也有差異:
IP裝置:指支援TCP/IP協議棧的裝置,例如Wi-Fi裝置,可以直接整合Link SDK。
非IP裝置:指不支援TCP/IP協議棧的裝置,例如ZigBee、BT、KNX、ModBus等,需要通過整合了Link SDK的網關裝置,再接入到阿里雲物聯網平台。子裝置需要通過網關代理建連,網關整合LinkSDK,子裝置與網關之間的通訊方式由使用者自訂,C Link SDK子裝置接入,請參考概述。
Link SDK選型
Link SDK目前支援C、Java、Python、Node.js、Android、iOS等多種語言,使用者可根據產品選擇相應語言的SDK。
SDK類型 | 使用情境 | 配置連結 | 使用樣本 |
C Link SDK | 適用於嵌入式C環境的資源受限裝置。 | ||
Android Link SDK | 適用於Android裝置。 | ||
Python Link SDK | 適用於Python語言開發的裝置,不適用Python輕應用開發。 | ||
Java Link SDK | 適用於Java語言開發的裝置。 | ||
iOS Link SDK | 適用於iOS裝置。 |
如需更多語言的Link SDK,請提交工單。
常見的開源MQTT庫包括paho.mqtt.c、paho.mqtt.embedded-c、paho.mqtt.android、paho.mqtt.python等。
Link SDK適配移植
硬體環境 | 作業系統 | 說明 | 相關文檔 |
PC/SoC | Linux | 如果是嵌入式裝置,請注意配置交叉編譯。 | |
Windows | 無參考實現,需自行移植。 | ||
模組OpenCPU | RTOS | 基於ESP-IDF框架組成LinkSDK。 |
裝置開發:串連與訊息
物聯網平台為滿足不同的裝置接入需求,支援多種協議和多種認證方式,下面介紹裝置接入物聯網平台的幾種方案。
功能 | 說明 | 相關文檔 |
多協議接入 | 支援MQTT、CoAP、HTTP等協議接入,大部分裝置使用MQTT協議。 | |
一機一密 | 每個裝置使用單獨的密鑰進行認證。 | |
一型一密 | 每個型號裝置使用共同的密鑰,簡化裝置燒錄的工作。 說明 一型一密和一機一密可以結合使用,裝置第一次接入物聯網平台通過一型一密(動態註冊)擷取到裝置單獨的密鑰,之後再通過一機一密接入。 | |
X.509認證認證 | 每個裝置擁有獨立的認證,在TLS階段就可以完成裝置的認證,該方式有更高的安全性。 | |
網關子裝置 | 網關代理子裝置接入物聯網平台,子裝置接入後可以使用子裝置的topic與雲平台通訊。 |
裝置開發:業務功能
裝置在接入物聯網平台後,可以通過物聯網平台收發訊息。裝置將業務資料上報到物聯網平台,可以通過以下方式。
自訂:使用者完成自訂訊息的topic和Payload,請參見使用自訂Topic通訊。
物模型:使用者基於物模型定義裝置屬性、事件、服務,通過物模型的格式上報/下發,請參見什麼是物模型和裝置使用物模型通訊。物模型是物聯網平台的核心能力,使用物模型的優勢:
資料結構化儲存:簡化後續資料開發流程。
狀態緩衝(裝置影子):裝置/服務端在任意時間都可查詢裝置狀態/資料。
資料視覺效果:在物聯網平台頁面可以查看資料。
線上調試:支援線上調試裝置。
裝置開發:營運功能
裝置在完成業務功能開發後,在正式量產前,建議再增加營運功能,方便裝置後續的迭代、配置及問題排查。物聯網平台主要提供以下營運能力。
功能 | 說明 | 相關文檔 |
OTA | 裝置升級,提供裝置遠程韌體升級的能力。 | |
日誌上報 | 裝置上報作業記錄到物聯網平台,通過該日誌可進行裝置問題排查。 | |
遠程配置 | 遠程配置裝置。 | |
NTP服務 | 提供裝置時間同步的能力。 |