ESP32-C3物联网工程开发实战
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

3.2.2 RainMaker设备侧代理程序

RainMaker设备侧代理程序的主要功能是提供连接能力、协助应用层处理云上/下行数据。该代理程序由RainMaker SDK构建,基于成熟的ESP-IDF开发框架开发,使用了ESP-IDF中的RTOS、NVS、MQTT等组件。图3-3所示为RainMaker SDK的结构。

图3-3 RainMaker SDK的结构

RainMaker SDK的具体功能如下:

(1)连接功能,包括:

①配合Claiming服务进行设备证书的获取。

②使用安全的MQTT协议连接云后端,提供远程连接能力,满足远程控制、消息上报、用户管理、设备管理等需求,默认使用ESP-IDF中的MQTT组件实现,同时提供一个抽象层,以便对接其他的协议栈。

③使用wifi_provisioning组件实现Wi-Fi连接与配网,使用esp_https_ota组件实现OTA升级,使用esp_local_ctrl组件实现本地发现与连接,这些能力通过简单的配置即可实现。

(2)数据处理功能,包括:

①存储Claiming服务下发的设备证书以及运行RainMaker时需要存储的数据,默认使用nvs_flash组件提供的接口进行存储,对外提供API供开发者直接使用。

②使用回调机制处理云上/下行数据,自动解封数据给应用层,方便开发者处理。例如,物联网设备需要定义一些物模型用于描述设备及实现功能(定时、倒计时、语音控制),RainMaker SDK提供了丰富的接口方便创建物模型数据。对于定时之类的基础交互功能,RainMaker SDK提供了免开发的方案,仅需要在开发时启用该功能即可,RainMaker设备侧代理程序能够直接处理这些数据,并通过相关的MQTT主题发送到云端,通过回调机制反馈云后端对这些数据的更改。