电子说
如果你一直关注乐鑫,应该对 ESP RainMaker 及其丰富的功能有所了解。ESP RainMaker 重要特性之一是轻量化,它能充当ESP 节点和移动端App、Alexa、GVA等客户端之间的“隧道”,具备极大的灵活性和可扩展性。
ESP RainMaker 支持创建任何设备,开发多种设备功能,最终还能通过移动端App实现设备控制。
ESP-RainMaker项目用于实现“节点”,用户登录后可以使用客户端(如手机应用程序)进行对节点进行配置,然后通过ESPRainMakerCloud 进行控制。
节点
节点是基于 ESP32 的单个产品。它具有关联的标识符(node_id) 和声明服务提供的一组凭据,用于对节点进行合法验证。用户可以为节点指定好名称。单个节点可以公开多个设备。
设备
设备是用户可控制的逻辑实体,如开关、灯泡、恒温器、温度传感器等。一个简单的节点通常只有一个设备。但是,ESP32 也可以有多个设备,例如在一块板上安装两个开关,或者它可以充当其他设备(例如BLE 传感器)的桥接器。每个设备在节点中必须具有唯一的名称,并且可以选择具体的类型。
参数
这些是设备的控制和监视参数,用于用户在APP或者服务器上进行控制或者监视。例如:开/关电源状态、亮度、电流/目标温度等所有这些参数在设备中都必须具有唯一的名称。这些参数还可以具有其他字段,如值、类型、边界、UI 信息等。参数值可以是布尔值、整数、浮点数或字符串。
获取ESP RainMaker项目
使用以下方法下载RainMaker:
1、git clone https://github.com/espressif/esp-rainmaker.git
2、git clone https://github.com/espressif/esp-iot-bridge.git
第一个仓库为Rainmaker仓库,配合ESP Rainmaker APP使用 。
第二个仓库集成了Rainmaker和lite mesh,本文示例使用该仓库,使用乐鑫nova home app关于lite mesh的内容请关注后续文章。
执行以下命令以拉入子模块:
git submodule update--init --recursive --progress
构建和刷新固件
Rainmaker工程位于esp-iot-bridge仓库的examples/rainmaker目录下,编译以及烧录基于ESP-IDF,本文基于IDF5.0。
如果您是第一次使用,建议先擦除闪存,然后再刷新固件。以下是步骤:
cd ~/esp-iot-bridge/examples/rainmaker/led_light/(进入例程目录)
idf.py set-target esp32/esp32s2/esp32c3/esp32s3(选择芯片类型)
[注意:ESP RainMaker 可与 ESP32系列所有芯片配合使用,如 ESP32、ESP32-S2、ESP32-C3 和 ESP32-S3。]
idf.py build(编译)
idf.py erase_flash(擦除)
idf.py flash monitor(烧录并运行)
代码运行成功后
Part.1
找到设备名称
Part.2
打开App添加你的第一个设备
Part.3
找到设备同意蓝牙连接
Part.4
输入WiFi账号密码进行配网
左右滑动查看图集
Part.5
进入在线调节参数页面
基于ESP RainMaker的应用程序的典型代码如下
例程中Rainmaker节点、设备、属性的初始化在app_rainmaker_start()函数中实现,具体可以参考app_rainmaker.c文件,具体流程为
初始化ESP RainMaker节点esp_rmaker_node_init(),方法是向其传递配置 esp_rmaker_config_t()节点名称和类型。
创建设备esp_rmaker_device_create()。RainMaker节点本身没有特定的值,除非它下面有设备。
添加参数和其他元数据。
将设备添加到节点。
启动RainMaker代理esp_rmaker_start()。这将启动RainMaker核心任务,该任务将等待Wifi,如果需要,通过MQTT连接到RainMaker Cloud,报告节点配置,报告参数值,然后等待命令。
启动无线网络 app_wifi_start()
以上是 ESP RainMaker 项目开发的基本介绍。您无需在云后台进行任何配置或更改,就可以轻松添加自定义功能,拥有极大的灵活性与可扩展性。
审核编辑:汤梓红
全部0条评论
快来发表一下你的评论吧 !