WiFi单品设备开发-基于其他模组
更新时间:2019-06-11 17:19:14
如果用户不使用已认证的模组,本文讲解用户如何直接通过Link Kit SDK开发WiFi单品设备,用以连接飞燕平台。
在飞燕后台定义产品
- 创建项目以及创建产品
请参考“创建产品”了解如何创建项目、以及创建产品,创建产品时“连网方式”选择“WiFi”。
注:
- 如果手机APP使用飞燕的公版APP对设备进行管理,那么添加设备时如果发现设备是WiFi设备,那么就会进入阿里的WiFi配网过程对设备进行配网,因此设备需要集成阿里的WiFi配网功能
- 如果设备并没有集成阿里的WiFi配网功能,而是通过触摸屏输入WiFi热点的SSID/密码或者其它配网方式,并且集成的Link Kit SDK是C语言版本、安卓版本,联网方式请选择“以太网”以避免飞燕的公版APP使用阿里配网流程来添加设备,但是同时可以使用本地发现方式来添加设备
- 如果设备上集成Link Kit SDK的Java、NodeJS、Python、iOS版本,创建产品时“连网方式”可以设置为“蜂窝网”来避免添加设备失败
- 产品功能定义
请参考“功能定义”来定义产品的功能
- 添加测试设备
请参考“设备调试”来添加测试设备、设置设备的绑定策略等。
设备端开发
使用C语言Link Kit SDK开发设备
获取Link Kit SDK代码
下面的描述以Link Kit SDK v2.3.0进行编写,若需要获取最新的SDK可以访问SDK的文档中心
模组商可以访问此处获取Link Kit SDK v2.3.0的代码,并请阅读《创建产品》熟悉如何在飞燕平台定义产品以及其功能。
注:如果开发者希望使用阿里提供的设备热点配网功能,请使用Link Kit SDK v3.0.0版本进行开发。
配置SDK
SDK解压之后,SDK的根目录下的文件如下图所示:
其中文件make.settings包含了SDK的功能配置,用户可以对make.settings中的功能选项进行裁剪,下面是针对WiFi设备的推荐定义:
FEATURE_SRCPATH="."
#打开MQTT特性
FEATURE_MQTT_COMM_ENABLED=y
#MQTT直接连接
FEATURE_MQTT_DIRECT=y
#使能物模型特性
FEATURE_DEVICE_MODEL_ENABLED=y
#使能本地通信
FEATURE_ALCS_ENABLED=y
FEATURE_ALCS_SERVER_ENABLED=y
FEATURE_DEV_BIND_ENABLED=y
#使能OTA
FEATURE_OTA_ENABLED=y
#加密库的实现
FEATURE_SUPPORT_TLS=y
#使能配网,如果确认不需要配网可以注释掉FEATURE_WIFI_PROVISION_ENABLED关闭配网
FEATURE_WIFI_PROVISION_ENABLED=y
#
# AWSS Configurations
#
#一键配网,如果不需要可以注释掉FEATURE_AWSS_SUPPORT_SMARTCONFIG关闭一键配网
FEATURE_AWSS_SUPPORT_SMARTCONFIG=y
#手机热点配网,如果不需要可以注释掉FEATURE_AWSS_SUPPORT_PHONEASAP关闭手机热点配网
FEATURE_AWSS_SUPPORT_PHONEASAP=y
#路由器配网,如果不需要可以注释掉FEATURE_AWSS_SUPPORT_PHONEASAP关闭路由器配网
FEATURE_AWSS_SUPPORT_ROUTER=y
#零配配网,如果不需要可以注释掉FEATURE_AWSS_SUPPORT_PHONEASAP关闭零配配网
FEATURE_AWSS_SUPPORT_ZEROCONFIG=y
注:如果设备支持通过某种方式输入WiFi热点的SSID/密码,比如通过串口输入WiFi热点的SSID/密码,那么可以不用使能WiFi配网功能,因为WiFi配网的HAL适配也是需要较大工作量的(一周左右)。
HAL适配
请参照下面的文档进行HAL的实现:
注:若未选择集成阿里提供的WiFi配网功能,可以不用适配这些HAL
交叉编译
请参考交叉编译示例了解如何进行交叉编译配置
WiFi配网开发
请访问Link Kit SDK的WiFi配网开发指南了解如何调用配网相关的API实现WiFi配网
云端连接以及动态连云设置
请参考设备认证了解如何将设备连接到云端,以及设备连接海外站点时动态连云的设置。
设备重置开发
对于飞燕平台来说,建议产品设计一个reset按键用于清除设备上的配置,将设备恢复到出厂状态,同时调用awss_report_reset()函数告知云端清除设备与用户的绑定关系。
因此,设备商需要在处理reset按键的逻辑中增加对awss_report_reset()的调用。
/*
* 应用程序调用该API后,Linkkit首先往Flash里存储恢复出厂设置的标志,并向云端上报reset操作,
* 在规定的时间内(3秒)如果没有收到云端的回复,设备会重新上传reset,直至收到云端的回复位置;
* 有些产品希望发生reset时设备可以重新启动,如果重新启动之前reset没有上报成功,下一次连接云后,
* 设备会首先检查Flash中恢复出厂标志是否设置,如果设置了则首先向云端上报reset,直至成功;
*/
int awss_report_reset();
物模型编程
飞燕平台上的产品需要支持物模型编程,请参考物模型编程了解如何上报属性、事件变化,如何处理来自云端的服务调用、属性设置。
OTA开发
请参考设备OTA开发中的“用高级版接口实现的OTA例程”了解如何进行OTA的开发
使用其它编程语言的Link Kit SDK开发设备
非C语言的Link Kit SDK由于不需要进行系统适配,同时对系统的内存要求不那么严苛,所以不提供功能裁剪功能,用户根据相关开发文档进行产品开发即可。
目前支持的Link Kit SDK支持的编程语言类型:
- 使用安卓Link Kit SDK开发设备
- 使用NodeJS Link Kit SDK开发设备
- 使用Java Link Kit SDK开发设备
- 使用Python Link Kit SDK开发设备