实现ESP32-EFR32网关与阿里云生活物联网平台的对接

概述

前面已经将芯科的Z3GatewayHost应用移植到了ESP32上,基本完成了在zigbee方面的host-ncp架构搭建,接下来就是考虑怎么将其应用在业务上。目前,物联网主流的方向是业务上云,多端应用,场景驱动。

但是,对于初创公司或者小型公司,他们往往没有太多的资源和精力去搭建自己的物联网应用平台,因此选择合适的大型物联网平台进行对接,使用这些平台所提供的能力和服务,将有利于加快自己产品推出市场的速度。

目前,国内在物联网方面比较成熟、著名的解决方案平台,有阿里的物联网平台、移动的ONENET平台、电信的天翼物联平台等;其中阿里的物联网平台又细分为面向企业的“企业物联网”平台和面向智能家居的“生活物联网”平台。

在这里将记录一下将ESP32-EFR32网关对接到阿里生活物联平台的一些关键内容。

参考文档

1.《ESP 设备对接阿里云生活物联网平台 & 天猫精灵 IoT 开放平台》

乐鑫官方的开源项目,里面有较为详细的文档描述了如何将ESP32、ESP8266模组快速地接入阿里生活物联网平台,并且有对应的示例代码:三色灯控制;项目实现了通过天猫精灵或者app来控制三色灯的调光等功能,并且集成了方便用户使用的“一键配网”功能,如下图所示。

2.《阿里生活平台:网关开发&子设备开发》

阿里生活平台的官网指导文档,可以在开发前先属性了解相关的概念,特别是阿里的“物模型”概念。

阿里物模型的介绍:https://help.aliyun.com/document_detail/73727.html

准备工作

在乐鑫的官方项目里面也将得很清楚了,主要就是以下几个步骤:

1.硬件准备:这里使用ESP32-EFR32的开发板

2.生活物联网平台准备:包括产品的创建、设备的创建等;最主要的是拿到生活物联网平台分配的product key, product secert, device name, device secret四元组信息

3.环境、SDK准备:乐鑫编译环境、SDK的准备工作。这里采用ESP-IDF4.1版本

4.编译 ali-smartliving-device-sdk-c 库:在linux环境下编译生成ESP32项目所需的阿里物联网静态库“libiot_sdk.a”

备注:这里因为我们的静态库是需要具备网关能力的,所以在编译的时候,需要打开相关配置项;在ali-smartliving-device-sdk-c目录下的make.settings文件中配置

FEATURE_DEVICE_MODEL_GATEWAY=y

5.将阿里为网关设备分配的product key, product secert, device name, device secret四元组信息,烧录到ESP32中。具体操作方法,可以参考《量产说明

备注:在ESP-IDF4.1中,相关的“NVS 分区生成工具”调整为以下:

$IDF_PATH/components/nvs_flash/nvs_partition_generator/nvs_partition_gen.py  generate  my_single_mfg_config.csv  my_single_mfg.bin 0x4000

项目集成

1.链接生活物联网平台的库文件、头文件到项目中,如下所示:(具体可以参考乐鑫的smart_light示例代码)

2.引入乐鑫示例项目中的“factory_restore”和“linkkit_handle”(与阿里平台交互的主要功能)模块,并且注册相关的子设备处理方法(通过网关代理,将子设备上报到生活物联网平台,并接收平台控制指令等)。

3.配置子设备的入网信息,模拟子设备入网,如下图所示

具体的网关示例代码可以参考乐鑫开源项目中以下文档:

《智能生活C-SDK适配FreeRTOS帮助文档.pdf》

《智能生活网关产品参考应用程序说明.pdf》

gateway_main.c、gateway_ut.c:阿里提供的网关开发参考代码。

备注:但参考的时候注意ESP32是采用freeRTOS的,所以某些地方实现有所不同,建议还是直接在乐鑫的linkkit_solo.c的基础上进行开发。

另外,ESP32中用于存储四元组信息的nvs分区,需要和“wrapper_product.c”中的配置相一致,如下所示

4.编译工程,烧录项目到ESP32-EFR32开发板上,第一次启动,需要进行配网设置;配网的二维码可以在网关的产品详情中找打。

5.配网成功后,网关设备连接wifi,能正常上网后,将启动与阿里生活平台的mqtt对接,可以看到相关子设备也上线,定时上报属性值。

6.在阿里的“云智能”app和管理后台,也能查看到网关、子设备的在线信息;对于支持天猫精灵控制的设备,也可以通过天猫精灵app或者语音进行控制。

   

总结

因为乐鑫的ESP32模组已经通过了阿里生活物联网平台的认证,并且有乐鑫官方的对接示例,所以整个移植工作并不复杂。

到此,我们的网关在具备了zigbee网关能力后,又增加了阿里物联网平台接入功能;也可以利用阿里的app或者天猫精灵的app,快速地推广自己的产品。

但如果产品量产后,要向阿里生活物联网平台购买激活码(测试期间,一个产品能接入50个测试终端,这个已经相当慷慨了;移动的ONENET平台在个人认证后,测试时也只能创建3个产品,接入10个终端),相关的费用要考虑进去。

另外,阿里生活物联网平台提供了数据解析服务;如果你的网关是通过二进制方式进行数据交换,那可以通过这个服务,将上下行数据在生活物联网平台端进行转换,而不用在网关端进行;这样有助于网关功能的解耦,增加系统的可扩展性。如下图所示,具体参考地址为:https://help.aliyun.com/document_detail/68702.html

阿里生活物联网平台简化了很多智能家居产品生产方面的工作,对于中小企业来说,应该是一个可以考虑的方案。

补充

阿里生活物联网平台,提供了设备OTA功能,入口位于项目管理页面的右侧的“运营中心”里面的“设备运维”->"固件升级"

ota代码调用主要参考linkkit_solo.c中的user_fota_event_handler、user_cota_event_handler(为什么有2个ota?)

esp32平台的ota实现代码主要参考wrapper_ota.c

设备OTA相关的帮助文档地址,如下:https://help.aliyun.com/document_detail/131448.html

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值