手机端操作
- 我们手机端需要在如下软件下载安装包,或者应用商城中搜索 ESP RainMaker。
安卓:
- https://github.com/espressif/esp-rainmaker-android
- https://play.google.com/store/apps/details?id=com.espressif.rainmaker iOS:
- https://github.com/espressif/esp-rainmaker-ios
- https://apps.apple.com/us/app/esp-rainmaker/id1497491540
- 安卓用户在 github 中点击下框部分
3. 点击 apk 文件下载,后续传到手机中安装即可。
ESP32 操作
创建一个新工程
- 在 VScode 中输入 Ctrl + Shift + P ,然后输入 Example 打开例程。
2. 点击 sample_project 创建一个项目。
拉取 rainmaker 仓库
修改配置
- 进入 main 文件夹,添加 idf_component.yml 文件
- 在该文件中包含内容。 The ESP Component Registry 搜 rainmaker。
- 修改分区表。需要注意,esp_secure_cert 和 fctry 这两个分区是 Rainmaker 的必要条件。其他内容你可以根据自己需求来设定。
- 修改 menuconfig,创建 sdkconfig.defaults 文件,并且删除 sdkconfig 和 sdkconfig.old,之后执行 idf.py menuconfig 即可完成配置。
5. 将上面拉取的 rainmaker 仓库中的两个文件复制到当前工程根目录。注意,新老版本的的文件名会不一样,根据自己的版本选择其一即可。
- 进入根目录的 CMakeList.txt 文件,加入颜色编译。方便我们 debug。
烧录证书
- 像 esp32-c2 是需要烧录证书的,如果是esp32-c3无需。
- 如果出现如下报错,说明当前设备没有证书,需要进行烧录。
- 我们可以执行如下命令生成证书。需要注意, --addr 后面加的地址是前面配置分区表时的 fctry 起始地址。如果不知道 fctry 起始地址是多少,可以执行 idf.py partition-table 获取。
- 烧录证书。write_flash 后接 fctry 起始地址
Rainmaker 初始化
- 如下为一个 Rainmaker 的初始化代码。
- 最终的显示效果如下:
Rainmaker 常用 API 说明
创建节点
- 该函数用于创建一个 Rainmaker 节点。需要先调用该函数,才能够调用 ESP Rainmaker API 。
创建设备
- 该函数可以用于创建一个设备,第一个参数是设备的设备名称,第二个参数时设备类型。根据第二个参数,界面能够有不同的显示。能够选择的类型参考 : 标准预定义类型
添加设备回调函数
- 当我们创建设备成功后,我们需要调用该函数注册回调函数。当我们手机进行操作时,ESP32 会触发 write_cb 回调函数。read_cb 感觉没用,直接传入 NULL 即可。
- 如下为一个回调函数的示例。
- 需要重点关注的三个参数:
- device_name : 发生写事件的设备名称,因为我们这里仅注册了一个设备,因此该参数可以无视。
- param_name : 写事件的具体参数名称。
- val.val : 该参数是一个联合体,根据需求进行配置。
- b : 如果该参数是 bool 类型数据,使用这个
- i : int 类型
- f : float 类型
- s : 字符串类型
创建设备参数
- 这个函数用于创建设备参数。
- param_name : 设备参数的名称。
- type : 设备参数类型。拥有的 参数类型。如果不想用它预设的参数,传入 NULL 即可。
- val : 设备参数的初始值。你需要使用
use esp_rmaker_bool(), esp_rmaker_int(), esp_rmaker_float() or esp_rmaker_str()
来进行设置。
添加 UI 属性
- 我们可以调用如下函数添加 UI 属性。可选的 UI 元素。
将参数加入设备
- 当我们配置完参数后,需要调用该函数将参数加入到设备。
设置首要参数
- 如果我们需要在设备首页即可看到某个参数,那么可以使用如下函数。
创建设备名
- 一个设备需要名称,我们可以调用如下函数进行添加名称元素。后续我们就可以在手机端更改设备名称了。
添加字符串类型参数
- 有时候,我们可能会需要添加可下滑选择的参数。
- 而这些参数我们大概率是希望以字符串的形式存在,因此就需要使用到该参数。
列表效果
- 如果我们希望有列表记录的效果,可以直接按照如下代码进行编写。
将设备添加进入节点
- 设备设置完成之后,我们需要调用如下函数将设备添加进入节点。
启动 Rainmaker
- 当上面配置全部完成以后,我们可以需要调用该函数最终启动 Rainmaker。
数据上报
- 如果需要上报数据,我们可以先调用
esp_rmaker_device_get_param_by_name
函数获取参数名句柄,然后调用esp_rmaker_param_update_and_report
函数更新数据。 - 需要注意的一点是,你在创建参数时候,用的是什么类型的数据,那么更新时候也应当用对应类型的数据。
弹窗效果
- 我们可以使用如下函数实现弹窗效果。
- 需要注意,如果你调用该命令,发现 Rainmaker 并没有出现弹窗,那是因为你手机没有给 ESP Rainmaker 设置通知权限,请自行在设置中打开。
参考