快速开始
ESP RainMaker 目前已有大量技术文档支持客户对固件和应用进行深度开发,具体可参考 固件开发指南。同时,为了提高开发效率,ESP RainMaker 提供了一系列标准方案,包括 MeshLite、Matter、电工照明等。您可以直接在方案的基础上来自定义开发新的固件,但在此之前请先了解 ESP RainMaker 的整体使用流程。依照以下内容,您可以快速搭建一个 ESP RainMaker 项目。
前提条件
ESP RainMaker 账户创建
用户需要创建 ESP RainMaker 的账号,才能将设备绑定到账号云端进行数据同步。用户可以在 Web 端申请云端账号,也可以前往 Google Play 或 Apple APP Store 应用商店下载 Nova Home 应用,在用户登录界面创建账号。
- Android: Google Play Store
- iOS: Apple App Store
ESP-IDF 环境搭建
ESP RainMaker 需要在 ESP-IDF 的环境下进行编译,用户在开始使用 ESP RainMaker 之前需要预先安装 ESP-IDF,具体流程可以参考 ESP-IDF 安装指南。目前只有 ESP-IDF 4.0 以上的版本才能支持 ESP RainMaker 正常运行。
获取 ESP RainMaker
在确认安装好符合版本的 ESP-IDF 后,打开 ESP-IDF 终端,输入如下命令将 ESP RainMaker 克隆到本地环境中:
$ git clone --recursive https://github.com/espressif/esp-rainmaker.git
注意:请注意命令中的
--recursive
,如您已克隆 ESP RainMaker,但在语句中没有执行--recursive
这一选项,请执行git submodule update --init --recursive
硬件准备
目前 ESP RainMaker 基本适配大部分的 ESP 系列芯片。您可以通过 硬件指南获取芯片及模组信息。在后续的介绍中将采用 Switch 固件作为示例,并选用搭载 ESP32-C3 芯片的开发板 ESP32-C3-DevkitC-02 进行演示。
创建并烧录项目
在上述步骤中克隆而来的 ESP RainMaker 文件中已经包含一些应用示例,您可以将这些示例项目烧录到开发板中来体验 ESP RainMaker 的功能,也可以在 Github Example 中查看更多的固件样例。Switch 项目为设备的开关功能固件,将此固件烧录到设备中可以远程控制设备的开关状态。具体步骤如下:
(1) 打开 Switch 项目下的终端控制台。
(2) 将串口设置为连接开发板的端口,并设置烧录芯片型号。可以直接通过代码修改:
$ export ESPPORT=/dev/tty.SLAB_USBtoUART #注意需要将语句中USB串口修改为实际所用串口位置
$ idf.py set-target esp32-C3 #将目标设置为 ESP32-C3
除了上述方法外还可以手动设置,具体步骤如下:
- 界面左下角点击串口选项 > 页面顶端弹出选择连接芯片的串口 > 确认项目
- 界面左下角点击芯片型号 > 页面顶端弹出选项选择项目 > 选择对应芯片型号
(3) 输入如下代码可以清除之前硬件上的固件。如果是第一次烧录则无需此步骤,请直接进行下一步。
$ idf.py erase_flash
(4) 构建并烧录固件到设备中,运行以下命令。
$ idf.py build #构建固件
$ idf.py flash monitor #将固件烧录到设备中并打开日志监测
运行成功后可能会在日志界面出现如下信息:
I (755) esp_claim: Initialising Self Claiming. This may take time.
或者
I (895) esp_claim: Initialising Assisted Claiming. This may take time
这说明设备没有直接连接到 ESP RainMaker 云端,因为尚未提供有效凭据。设备自动下载 Claiming 后,手动在应用中为设备配网,设备将通过 Wi-Fi 连接到云端。
(5) 日志界面会自动生成设备的二维码,每个设备的二维码都是唯一的。这一二维码将用于为设备配网,因此请不要立即关闭终端,或者将此二维码保存下来。如果生成的二维码有所损坏,例如下图:
那么您需要在终端日志中查看以下信息,并粘贴日志提供的链接到浏览器中以获取二维码。
I (1080) app_wifi: If QR code is not visible, copy paste the below URL in a browser.
https://rainmaker.espressif.com/qrcode.html?
data={"ver":"v1","name":"PROV_000317","pop":"a1000317","transport":"softap"}
至此 Switch 固件已完全烧录至设备中,这也意味着 ESP RainMaker 完成了初步的设备端部署,接下来需要对设备进行配网。
设备配网
为设备配网需要先在移动端下载应用,安卓用户可以通过 Google Play 应用商店或 APK 链接下载,苹果用户则可以在 Apple APP Store 应用商店下载:
- Android: Google Play Store, APK🔗
- iOS: Apple App Store
应用下载完成后即可开始为设备配网,具体步骤如下:
(1)登录应用,可以使用之前新建的 ESP RainMaker 账号,也可以使用第三方登录。
注意:如要在 ESP RainMaker 管理面板 中查看配网设备,则必须使用保证应用端与 Web 端使用同一账号。
(2)在主界面中选择 Add Device
, 进入界面并扫描终端日志中的设备二维码。没有二维码可以选择 I don't have an QR Code
选项,使用 Bluetooth LE 或 SoftAP 进行配网。
(3) 进入配网界面,输入设备将接入的 WiFi 网络名称和密码,点击 Start
。进入配置状态后,等待设备配网,之后点击 Done
完成所有配网步骤。
完成配网后,返回到主界面能够看到已添加的设备,点击开关标识即可通过云端实现对设备控制。
终端控制
配网结束后用户可以在应用端尝试远程控制开关。所用 ESP32-C3 开发板状态如下图所示:
- LED 灯(蓝色或绿色)处于打开状态
- 按下 BOOT 按钮会切换 LED 灯开关状态
- 手机端点击
switch
则会通过云端切换 LED 灯开关状态
LED 灯不工作
在使用开发板时请确认开发板型号,ESP32-S2-Saola-1、ESP32-C3-DevKit 和 ESP32-S3-DevKit 最适合用来验证这一固件,但不同开发板 RGB LED 默认连接的 GPIO 管脚位置有所不同。如果使用 ESP32-S2-Saola-1,需要连接 GPIO 18,但一些较早的开发板需连接到 GPIO 17。请使用 CONFIG_WS2812_LED_GPIO
设置合适的 GPIO,具体步骤如下:
$ idf.py menuconfig #在终端中打开控制台
选择 component config > WS2812 RGB LED > WS2812 LED GPIO > 17
重置电路板
- 按住 BOOT 键 3 秒以上可重置 Wi-Fi 设置。
- 按住 BOOT 键 10 秒以上可恢复出厂默认设置。
至此,ESP RainMaker 的基本使用流程已结束。用户可以基于 ESP RainMaker 框架自己开发定制化固件,同时可以参考 ESP RainMaker 管理面板使用指南查看设备运作情况。