跳到主要内容

ESP Insights (Beta)

ESP Insights 是一套远程诊断解决方案,支持用户远程监控现场 ESP 设备的健康状况。目前,所有 ESP RainMaker 示例已提供对 ESP Insights 的支持。

启用 ESP Insights

更新 esp-rainmaker 仓库

启用 ESP Insights 前,需使用以下命令行,确保 esp-rainmaker 仓库已更新至最新版本:

cd /path/to/esp-rainmaker
git pull origin master
git submodule update --init --recursive

运行上述命令,将 esp-insights 子模块拉取至 esp-rainmaker/components 目录中,并在所有默认示例中添加对 ESP Insights 的支持。如果仅需运行默认示例,可以跳过接下来有关 CMakeLists.txt 的两节内容。

编辑 CMakeLists.txt 文件

如需在现有项目中引入 ESP Insights 功能,需要将组件包含在 esp-rainmaker/components/esp-insights/components 文件夹中。在 CMakeLists.txt 文件中搜索以下代码:

set(EXTRA_COMPONENT_DIRS ${CMAKE_CURRENT_LIST_DIR}/../../components ${CMAKE_CURRENT_LIST_DIR}/../common)

将其替换为:

set(EXTRA_COMPONENT_DIRS ${CMAKE_CURRENT_LIST_DIR}/../../components ${CMAKE_CURRENT_LIST_DIR}/../common ${CMAKE_CURRENT_LIST_DIR}/../../components/esp-insights/components)

另一种更推荐的方法是在示例中直接引用新的 CMakeLists.txt 文件,将相应代码复制到文件中。

启用 ESP Insights

ESP Insights 相关代码由 examples/common/app_insights 组件抽象而成,默认情况下禁用。如需启用,输入 idf.py menuconfig 命令,选择 Component config > ESP Insights > Enable ESP Insights,设置 CONFIG_ESP_INSIGHTS_ENABLED=y

在项目代码中包含 app_insights.h,并在 esp_rmaker_start() 前添加以下代码:

app_insights_enable();

以上代码已包含在所有 ESP RainMaker 示例中,因此只需启用 CONFIG_ESP_INSIGHTS_ENABLED

构建和烧录项目

按照常规流程构建和烧录项目即可。

idf.py build flash monitor

请注意,构建日志中会显示以下内容:

===================== Generating insights firmware package build/led_light-v1.0.zip ======================
led_light-v1.0
led_light-v1.0/led_light.bin
led_light-v1.0/sdkconfig
led_light-v1.0/partition_table
led_light-v1.0/partition_table/partition-table.bin
led_light-v1.0/bootloader
led_light-v1.0/bootloader/bootloader.bin
led_light-v1.0/partitions.csv
led_light-v1.0/project_build_config.json
led_light-v1.0/led_light.map
led_light-v1.0/led_light.elf
led_light-v1.0/project_description.json

后续步骤将用到在 build/ 文件夹下生成的 zip 文件,即上述代码中的 build/led_light-v1.0.zip

Claiming

此前使用过 ESP RainMaker 的用户想必已经很熟悉 Claiming 的概念了。ESP RainMaker 提供了三种 Claiming 服务:

  1. 自身 Claiming
  2. 主机 Claiming
  3. 协助 Claiming

访问 ESP Insights 需要对节点拥有 管理员权限,因此需要使用主机 Claiming 或协助 Claiming。ESP32-S2 默认使用自身 Claiming,此时也需要更改使用 主机 Claiming 以获取管理员权限。

查看 ESP Insights

固件准备就绪并完成 Claiming 后,即可正常使用项目。使用进行 Claiming 时的账号登录 ESP RainMaker 管理面板,搜索节点 ID,即可查看 ESP Insights。

下图展示了 ESP Insights 在管理面板中的界面:

上传固件包

上传固件包可以帮助更加深入地了解诊断信息。固件包中包含了用于分析的二进制文件、elf 文件、map 文件和其他信息。前往管理面板,打开 Firmware Images,找到项目 build/ 文件夹中的 <project_name>-<fw_version>.zip 压缩包并上传。

即使并未更改代码,使用 idf.py buildidf.py flash 等命令仍会重新构建固件,导致固件包发生变化。请确保同步烧录到开发板上的二进制文件和上传到管理面板的固件包。

参考

请参考 ESP Insights 文档,了解更多信息。如需将 ESP Insights 用于商业产品,请 联系我们