RainMaker AT OTA 指南

[English]

本文档提供了详细的 RainMaker AT 命令集 示例来说明如何在 ESP32-C3 上进行 OTA 升级。

简介

当前 ESP RainMaker Dashboard 支持 2 种 OTA 触发方式:

  • Force Push:直接升级。ESP RainMaker 云立即下发一条 OTA 消息。

  • User Approval:用户确认。用户需要在手机应用上确认后才能接收到 ESP RainMaker 云下发的 OTA 消息。(推荐)

当前主控 MCU 和 Wi-Fi MCU 均支持通过 ESP RainMaker 云进行 OTA 升级:

  • 主控 MCU OTA:OTA 固件用来升级主控 MCU。

  • Wi-Fi MCU OTA:OTA 固件用来升级 ESP32-C3。

在 OTA 过程中,存在以下 5 种状态:

  • OTA 进行中。

  • OTA 成功。

  • OTA 失败。

  • OTA 被应用程序延迟。

  • OTA 由于某种原因被拒绝。

重要

  • AT+RMNODEINIT 命令默认开启 OTA 服务。

  • 只有当设备上报的 OTA 状态为 OTA 成功 或者 OTA 由于某种原因被拒绝 时,云端才会将 OTA job 状态设置为 完成

主控 MCU OTA

主控 MCU 完全控制其 OTA 的升级过程。

整个 OTA 流程可以分为以下三个阶段:

获取固件信息

ESP-AT 默认会被动的接收 OTA 信息。你也可以主动执行 AT+RMOTAFETCH 命令来获取 OTA 信息。

  1. 获取 OTA 信息。

    命令:

    AT+RMOTAFETCH
    

    响应:

    OK
    

    如果云端存在未完成的 OTA job,ESP-AT 会立即将接收到的 OTA 信息发送到主控 MCU,格式为 +RMFWNOTIFY:<type>,<size>,<url>,<fw_version>,<ota_job_id>。请参考 AT+RMOTAFETCH 获取更多 OTA 通知信息。

    +RMFWNOTIFY:0,1740880,https://esp-rainmaker-ota-315787942180-prod.s3.us-east-1.amazonaws.com/users/GitHub_TMo6AB9Y96HjWnRkYdWfNK/firmwareimages/fnwH9nS4g/AT_OTA_TEST_2.bin?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ASIAUTBTNTESPB4WFGEF%2F20221114%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20221114T114202Z&X-Amz-Expires=86400&X-Amz-Security-Token=FwoGZXIvYXdzEO3%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaDHkEHIt8cAKM633AFCLRAqKj%2F6Mb0%2FUTH%2BjJdcp%2FNPuCgDF3xDY0u9kZ1LKrL9oXCmFPTMn1ZQRRELIkKxsiPwW7Y7Wwr9h6iYrtUyhWpPoapDZYNKyesfQST%2BfFnWiq7nDYMyaqYfezIO2e60b50IEqW4aE58krGc0F4TuM1eG4ZkLX7skw%2BuSRkhVmMo4YmlrO%2Bbi49%2Fe12DmETnX69inFXvdZqyQ4ws2T7YmDu%2BC%2FSZZwoYkWnCBphMR%2BsORfE5SCpg9VAlJfEt56NmkDTUU875zIzw9IgR1pr4MQV0E3C3KCCy7qZGTSGdss9r4Qy783WpQcT%2FPfta4%2FR7fPzChbyPawAqQFDlkqjBAdANNbx3bSyDN%2BDyk%2BKXJVRXgtNTp3GQS8zp7%2FGcYakd8%2FXMMqDEWJjlKjO%2F%2Bt4Gyw5iLaHwNRzeyvzm6uDYf3%2F%2F2cPhvqHtPE5%2BXNU9wm%2Fv0FDpooitPImwYyLUyTk7gw1QQ%2FbAhlxffQbpHJLyDqGraMyZF8KtAHnv5WeCuvs0rFt1dhmq0ePg%3D%3D&X-Amz-SignedHeaders=host&X-Amz-Signature=fa5e04cd9eb8d010a954ccacba12d4fccc019853b34f60ebba82b212b0080561,d486921-dirty,cpuJraj3cxmAXuw8ER2GAe
    

下载固件

  1. 设置长 HTTP URL。

    命令:

    AT+HTTPURLCFG=1083
    

    响应:

    OK
    
    >
    

    符号 > 标识 AT 准备好接收串口数据,此时你可以输入 URL,当数据长度达到参数 <url length> 的值时,系统返回:

    SET OK
    
  2. 下载固件

    命令:

    AT+HTTPCGET=""
    

    响应:

    +HTTPCGET:<size>,<data>
    OK
    

    在该步中,主控 MCU 必须自己处理接收到的固件数据。请参考 AT+HTTPCGET 命令获取更多信息。

上报 OTA 结果

  1. 上报 OTA 结果。

    命令:

    AT+RMOTARESULT=0,"cpuJraj3cxmAXuw8ER2GAe",2,"OTA success"
    

    响应:

    OK
    

Wi-Fi MCU OTA

ESP32-C3 完全控制其 OTA 的升级过程。

在 OTA 过程中,ESP-AT 会自动将 OTA 状态上报云端,并以 +RMOTA:<status> 格式向主控 MCU 输出状态。请参考 AT+RMOTAFETCH 命令获取 <status> 信息。

Wi-Fi MCU OTA 成功后,ESP-AT 将向主控 MCU 发送 +RMOTA:1。在此之后,当主控 MCU 发送 AT+RST 或者 AT+RESTORE 命令重启 ESP32-C3,或者 ESP32-C3 因为其它原因重启后,均会运行新的固件。推荐主控 MCU 接收到 +RMOTA:1 后在合适的时间执行 AT+RST 命令重启 ESP32-C3 来切换到新固件。