固件
在最终确定固件之前,请注意确认以下事项。
创建项目
创建项目时,你可以使用标准例程,但不要忘记为例程创建副本,单独进行维护,以免将最新的 esp-rainmaker 代码拉至本地时产生冲突。建议使用 Git 等版本控制系统来跟踪项目改动。
Claiming
正如其他文档中所提到的,私有 RainMaker 部署不支持使用 Claiming。请使用 RainMaker Admin CLI 生成要烧录至 fctry 分区的凭证。此外,为了节省 flash 空间,请在项目的 sdkconfig.defaults
文件中禁用以下配置选项:
CONFIG_ESP_RMAKER_ASSISTED_CLAIM
CONFIG_ESP_RMAKER_SELF_CLAIM
·
设置二维码
在开发环境中,二维码显示在串行终端上。但在生产环境中,二维码需要在设备外生成。RainMaker Admin CLI 提供了生成这些二维码的配置条件。
固件空中升级 (OTA)
固件空中升级在 switch
和 led_light
例程中默认为启用状态。以下为其中一段代码:
esp_rmaker_ota_config_t ota_config = {
.server_cert = ESP_RMAKER_OTA_DEFAULT_SERVER_CERT,
};
esp_rmaker_ota_enable(&ota_config, OTA_USING_PARAMS);
以上操作配置了通过参数形式下发 OTA 任务,用于开发者测试。要通过 RainMaker 管理面板下发 OTA 任务,请将 OTA_USING_PARAMS
更改为 OTA_USING_TOPICS
。
esp_rmaker_ota_enable(&ota_config, OTA_USING_TOPICS);
了解更多关于 OTA 的细节,请参阅 OTA 固件升级。请注意,只有超级管理员 (super admin) 用户才可以访问管理面板,并通过管理面板执行 OTA 操作。
时区
如果您想使用调度功能,请确保您在固件中设置了时区,或者添加了时区服务,该服务允许您的设备在配置完成后通过手机应用修改时区。详细信息请参阅 时区。大多数例程都已默认添加时区服务。
调度
如果您想在固件中使用调度,首先必须使用正确的 API 添加该服务。详细信息请参阅 调度。注意,您必须首先设置时区才可以使用调度。大多数例程都已默认添加调度服务。
设置支持时间表的最大数量
使用 CONFIG_ESP_RMAKER_SCHEDULING_MAX_SCHEDULES
选项可以配置支持时间表的最大数量(打开 idf.py menuconfig
> ESP RainMaker Config
> ESP RainMaker Scheduling
> Maximum Schedules
进行设置)。支持时间表的最大数量原本默认为 5,现已更新为 10。如果这一数量仍然偏小,您可以对其进行更改。但请注意,所有调度信息都以 RainMaker 参数 (parameter) 的形式报告,而 RainMaker 使用 AWS IoT Shadow 来维护云中的参数值,因此您必须将所有参数的总量限制在 8 KB 以内。
本地控制
ESP RainMaker 提供本地控制服务,其优势如下:
- 提高响应速度
- 降低成本(无需调用 REST API)