如何开发Wi 您所在的位置:网站首页 阿里云生活物联网飞燕平台 如何开发Wi

如何开发Wi

2023-09-25 01:49| 来源: 网络整理| 查看: 265

SDK推荐配置

建议开发者阅读编译说明中的“SDK裁剪”了解SDK配置以及各选项的意义。

可以通过修改make.settings或者Linux下执行make menuconfig 来配置需要的功能。

功能 说明 FEATURE_MQTT_COMM_ENABLED y:使用MQTT连接阿里云物联网平台 FEATURE_MQTT_DIRECT y:连国内服务器 n:连海外服务器 FEATURE_Device_MODEL_ENABLED y:使能物模型 FEATURE_ALCS_ENABLED y:使能本地控制功能 FEATURE_ALCS_SERVER_ENABLED y:使能本地控制被控端功能 FEATURE_DEV_BIND_ENABLED y:使能用户绑定相关功能 FEATURE_SUPPORT_TLS y:使能TLS加密 FEATURE_OTA_ENABLED y:使能OTA FEATURE_WIFI_PROVISION_ENABLED y:使能Wi-Fi配网 FEATURE_AWSS_SUPPORT_DEV_AP y/n:根据需要打开或关闭设备热点配网 FEATURE_AWSS_SUPPORT_SMARTCONFIG y/n:根据需要打开或关闭一键配网 FEATURE_AWSS_SUPPORT_PHONEASAP y/n:根据需要打开或关闭手机热点配网 FEATURE_AWSS_SUPPORT_ROUTER y/n:根据需要打开或关闭路由器配网 FEATURE_AWSS_SUPPORT_ZEROCONFIG y/n:根据需要打开或关闭零配配网

设备需要连接海外服务器请参见国际站设备开发。

HAL适配

请参照下面的文档进行HAL的实现:

基础HAL适配 MQTT连云相关的HAL适配 线程相关HAL的适配 Wi-Fi配网HAL的适配注:若未选择集成阿里提供的Wi-Fi配网功能,可以不用适配这些HAL OTA HAL的适配 本地通信HAL的适配 设备身份认证模式

设备连接阿里云物联网平台时,可以使用预置设备证书的方式进行设备的身份认证,也可以采用动态注册方式得到完整的设备证书再进行身份认证,请参见设备认证。

产品功能实现

在设备上根据云端定义的产品功能进行相应功能的实现,请参见物模型编程。

Wi-Fi配网开发

请访问生活物联网SDK的Wi-Fi配网开发指南了解如何调用配网相关的API实现Wi-Fi配网。

云端解绑与恢复出厂默认设置

设备被解绑后,云端会下发一个解绑事件通知:{"identifier":"awss.BindNotify","value":{"Operation":"Unbind"}} 设备收到此消息可以做重置配网、清空本地数据等处理。

如果通过App将设备恢复出厂默认设置,云端会下发一个Reset事件通知:{"identifier":"awss.BindNotify","value":{"Operation":"Reset"}} 设备收到此消息可以做重置配网、清空本地数据等处理。设备开发者可以结合具体产品类型,决定收到解绑和恢复出厂默认设置通知后做哪些清空操作。

可以参考示例代码example/smart_outlet/smart_outlet_main.c中notify_msg_handle函数,做如下改动。

static int notify_msg_handle(const char *request, const int request_len) { .... if (!strcmp(item->valuestring, "awss.BindNotify")) { cJSON *value = cJSON_GetObjectItem(request_root, "value"); if (item == NULL || !cJSON_IsObject(value)) { cJSON_Delete(request_root); return -1; } cJSON *op = cJSON_GetObjectItem(value, "Operation"); if (op != NULL && cJSON_IsString(op)) { if (!strcmp(op->valuestring, "Bind")) { EXAMPLE_TRACE("Device Bind"); vendor_device_bind(); } if (!strcmp(op->valuestring, "Unbind")) { EXAMPLE_TRACE("Device unBind"); vendor_device_unbind(); } if (!strcmp(op->valuestring, "Reset")) { EXAMPLE_TRACE("Device Reset"); vendor_device_reset(); } } } .... } 设备重置

对于生活物联网平台来说,建议产品设计一个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编程。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有