设备接入概述

Link SDK是阿里云物联网平台提供的设备端软件开发工具包,可简化开发过程,实现设备快速接入阿里云物联网平台。设备厂商获取SDK后,根据需要选择相应功能进行移植,即可快速集成Link SDK,实现设备的接入。

前提条件

设备端开发前,需要完成物联网平台控制台所需操作,获取设备开发阶段的必要信息,包括设备信息、Topic信息等。具体请参见设备接入引导

背景信息

物联网平台支持海量异构的设备接入,阿里云物联网平台提供设备端软件开发工具包Link SDK,也提供标准ALink协议。

  • 使用ALink协议开发,请参见基于Alink协议自主开发

  • (推荐)使用Link SDK进行开发,实现设备的快速接入。设备基于Link SDK的开发流程可以分为以下步骤。

相关名词的解释,请参见基本概念

image

集成方式

根据设备类型的不同,集成Link SDK的方式也有差异:

  • IP设备:指支持TCP/IP协议栈的设备,例如Wi-Fi设备,可以直接集成Link SDK。WiFi Device

  • 非IP设备:指不支持TCP/IP协议栈的设备,例如ZigBee、BT、KNX、ModBus等,需要通过集成了Link SDK的网关设备,再接入到阿里云物联网平台。子设备需要通过网关代理建连,网关集成LinkSDK,子设备与网关之间的通信方式由用户自定义,C Link SDK子设备接入,请参考概述GW Device

Link SDK选型

Link SDK目前支持C、Java、Python、Node.js、Android、iOS等多种语言,用户可根据产品选择相应语言的SDK。

SDK类型

使用场景

配置链接

使用示例

C Link SDK

适用于嵌入式C环境的资源受限设备。

获取C Link SDK

MQTT接入

C Link SDK Extended

适用于通用C环境的资源丰富设备。

获取SDK

认证与连接

Android Link SDK

适用于Android设备。

环境要求与配置

认证与连接

Python Link SDK

适用于Python语言开发的设备,不适用Python轻应用开发。

环境要求与配置

认证与连接

Java Link SDK

适用于Java语言开发的设备。

环境要求与配置

认证与连接

Node.js Link SDK

适用于Node.js语言开发的设备。

环境要求与配置

认证与连接

iOS Link SDK

适用于iOS设备。

环境要求与配置

认证与连接

C语言SDK版本

功能特性

注意事项

参考文档

C Link SDK Extended

  • 接口封装更简单 。

  • 功能更丰富。

  • 性能优化。

  • 长期迭代更新。

  • 建议资源丰富型设备使用,例如PC、网关等。

  • 设备运行时内存(RAM)大于1 MB。

C Link SDK 4.x

  • 资源消耗更低。

  • 精细的裁剪能力。

  • 易移植至不同的系统,包括RTOS。

  • 提供在线裁剪工具。

  • 长期迭代更新。

  • 建议资源受限设备使用,例如单片机、模组等。

  • 设备运行时内存(RAM)小于1 MB。

C Link SDK 3.x

提供代码抽取工具,功能裁剪更便捷。

不再迭代更新,不推荐新用户使用。

C Link SDK 1.x/2.x

初始版本。

不推荐使用。

无。

说明

Link SDK适配移植

重要
  • 只有嵌入式设备使用C Link SDK时需要移植,其余的Link SDK不需要移植,可直接集成。

  • C LinkSDK支持可视化自定义裁剪,移植前请根据设备需求裁剪后下载。

  • C LinkSDK采用C99标准编写,其系统接口实现因环境不同而异,因此需要进行移植。移植说明请参见移植示例说明

  • C LinkSDK系统接口的默认实现是POSIX(Linux),Linux设备可以直接使用不需要移植。

硬件环境

操作系统

说明

相关文档

PC/SoC

Linux

如果是嵌入式设备,请注意配置交叉编译。

Linux开发环境集成SDK

Windows

无参考实现,需自行移植。

移植示例说明

MCU + 通信模组

RTOS

MCU与通信模组之间采用AT指令通信,完成设备联网。

通信模组接入

noneOS

MCU通过裸机开发连接。

无操作系统设备接入

模组OpenCPU

RTOS

基于ESP-IDF框架集成LinkSDK。

乐鑫ESP32开发板移植

设备开发:连接与消息

物联网平台为满足不同的设备接入需求,支持多种协议和多种认证方式,下面介绍设备接入物联网平台的几种方案。

功能

说明

相关文档

多协议接入

支持MQTT、CoAP、HTTP等协议接入,大部分设备使用MQTT协议。

使用协议自主接入

一机一密

每个设备使用单独的密钥进行认证。

一机一密

一型一密

每个型号设备使用共同的密钥,简化设备烧录的工作。

说明

一型一密和一机一密可以结合使用,设备第一次接入物联网平台通过一型一密(动态注册)获取到设备单独的密钥,之后再通过一机一密接入。

一型一密

X.509证书认证

每个设备拥有独立的证书,在TLS阶段就可以完成设备的认证,该方式有更高的安全性。

使用X.509证书认证

网关子设备

网关代理子设备接入物联网平台,子设备接入后可以使用子设备的topic与云平台通信。

创建网关与子设备

功能项

C Link SDK Extended

C(v4.x)

C(v3.x)

Android

Java

Python

Node.js

设备接入与消息通信

一机一密认证

认证与连接

设备认证

认证与连接

认证与连接

认证与连接

认证与连接

一型一密认证

一型一密

MQTT动态注册使用说明

设备认证

设备认证

设备认证

设备认证

设备认证

X.509证书认证

认证与连接

X.509证书

X.509证书

不支持

消息通信

认证与连接

基于MQTT Topic通信

基于MQTT Topic通信

网关与子设备

子设备认证与连接

网关与子设备

子设备管理

网关与子设备

网关与子设备

网关与子设备

不支持

设备开发:业务功能

设备在接入物联网平台后,可以通过物联网平台收发消息。设备将业务数据上报到物联网平台,可以通过以下方式。

  • 自定义:用户完成自定义消息的topic和Payload,请参见使用自定义Topic通信

  • 物模型:用户基于物模型定义设备属性、事件、服务,通过物模型的格式上报/下发,请参见什么是物模型设备使用物模型通信物模型是物联网平台的核心能力,使用物模型的优势:

    • 数据结构化存储:简化后续数据开发流程。

    • 状态缓存(设备影子):设备/服务端在任意时间都可查询设备状态/数据。

    • 数据可视化:在物联网平台页面可以查看数据。

    • 在线调试:支持在线调试设备。

功能项

C Link SDK Extended

C(v4.x)

C(v3.x)

Android

Java

Python

Node.js

iOS

设备管理

物模型

物模型开发

使用说明

物模型编程

物模型开发

物模型开发

物模型开发

物模型开发

不支持

设备标签

设备标签

设备标签

标签

设备标签

设备标签

设备标签

设备标签

不支持

文件管理

不支持

文件上传

文件上传

文件上传

不支持

设备分发

设备分发

设备分发

设备分发

不支持

设备影子

设备影子

设备影子

设备影子

设备影子

设备影子

设备影子

设备影子

不支持

设备任务

不支持

设备任务

不支持

设备开发:运维功能

设备在完成业务功能开发后,在正式量产前,建议再增加运维功能,方便设备后续的迭代、配置及问题排查。物联网平台主要提供以下运维能力。

功能

说明

相关文档

OTA

设备升级,提供设备远程固件升级的能力。

OTA升级概述

远程登录

基于安全隧道,提供控制台通过SSH协议远程登录设备的能力。

远程登录

日志上报

设备上报运行日志到物联网平台,通过该日志可进行设备问题排查。

设备日志上报

远程配置

远程配置设备。

远程配置

NTP服务

提供设备时间同步的能力。

NTP服务

功能项

C Link SDK Extended

C(v4.x)

C(v3.x)

Android

Java

Python

Node.js

监控运维

OTA

设备OTA开发

OTA升级

设备OTA开发

设备OTA升级开发

不支持

设备OTA开发

不支持

远程登录

远程登录

远程登录

不支持

日志上报

日志上报

日志上报

不支持

认证与连接

不支持

远程配置

远程配置

远程配置

远程配置

远程配置

远程配置

不支持

NTP服务

NTP服务

NTP服务

NTP服务

不支持