如果你一直關(guān)注樂鑫,應(yīng)該對 ESP RainMaker 及其豐富的功能有所了解。ESP RainMaker 重要特性之一是輕量化,它能充當(dāng)ESP 節(jié)點(diǎn)和移動(dòng)端App、Alexa、GVA等客戶端之間的“隧道”,具備極大的靈活性和可擴(kuò)展性。
ESP RainMaker 支持創(chuàng)建任何設(shè)備,開發(fā)多種設(shè)備功能,最終還能通過移動(dòng)端App實(shí)現(xiàn)設(shè)備控制。
ESP-RainMaker項(xiàng)目用于實(shí)現(xiàn)“節(jié)點(diǎn)”,用戶登錄后可以使用客戶端(如手機(jī)應(yīng)用程序)進(jìn)行對節(jié)點(diǎn)進(jìn)行配置,然后通過ESPRainMakerCloud 進(jìn)行控制。
節(jié)點(diǎn)
節(jié)點(diǎn)是基于 ESP32 的單個(gè)產(chǎn)品。它具有關(guān)聯(lián)的標(biāo)識(shí)符(node_id) 和聲明服務(wù)提供的一組憑據(jù),用于對節(jié)點(diǎn)進(jìn)行合法驗(yàn)證。用戶可以為節(jié)點(diǎn)指定好名稱。單個(gè)節(jié)點(diǎn)可以公開多個(gè)設(shè)備。
設(shè)備
設(shè)備是用戶可控制的邏輯實(shí)體,如開關(guān)、燈泡、恒溫器、溫度傳感器等。一個(gè)簡單的節(jié)點(diǎn)通常只有一個(gè)設(shè)備。但是,ESP32 也可以有多個(gè)設(shè)備,例如在一塊板上安裝兩個(gè)開關(guān),或者它可以充當(dāng)其他設(shè)備(例如BLE 傳感器)的橋接器。每個(gè)設(shè)備在節(jié)點(diǎn)中必須具有唯一的名稱,并且可以選擇具體的類型。
這些是設(shè)備的控制和監(jiān)視參數(shù),用于用戶在APP或者服務(wù)器上進(jìn)行控制或者監(jiān)視。例如:開/關(guān)電源狀態(tài)、亮度、電流/目標(biāo)溫度等所有這些參數(shù)在設(shè)備中都必須具有唯一的名稱。這些參數(shù)還可以具有其他字段,如值、類型、邊界、UI 信息等。參數(shù)值可以是布爾值、整數(shù)、浮點(diǎn)數(shù)或字符串。
獲取ESP RainMaker項(xiàng)目
使用以下方法下載RainMaker:
1、git clone https://github.com/espressi?f/esp-rainmaker.git
2、git clone https://github.com/espressif/esp-iot-bridge.git
第一個(gè)倉庫為Rainmaker倉庫,配合ESP Rainmaker APP使用 。
第二個(gè)倉庫集成了Rainmaker和lite mesh,本文示例使用該倉庫,使用樂鑫nova home app關(guān)于lite mesh的內(nèi)容請關(guān)注后續(xù)文章。
執(zhí)行以下命令以拉入子模塊:
git submodule update--init --recursive --progress
構(gòu)建和刷新固件
Rainmaker工程位于esp-iot-bridge倉庫的examples/rainmaker目錄下,編譯以及燒錄基于ESP-IDF,本文基于IDF5.0。
如果您是第一次使用,建議先擦除閃存,然后再刷新固件。以下是步驟:
cd ~/esp-iot-bridge/examples/rainmaker/led_light/(進(jìn)入例程目錄)
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(燒錄并運(yùn)行)
代碼運(yùn)行成功后
Part.1
找到設(shè)備名稱
Part.2
打開App添加你的第一個(gè)設(shè)備
Part.3
找到設(shè)備同意藍(lán)牙連接
Part.4
輸入WiFi賬號(hào)密碼進(jìn)行配網(wǎng)
左右滑動(dòng)查看圖集
Part.5
進(jìn)入在線調(diào)節(jié)參數(shù)頁面
基于ESP RainMaker的應(yīng)用程序的典型代碼如下
例程中Rainmaker節(jié)點(diǎn)、設(shè)備、屬性的初始化在app_rainmaker_start()函數(shù)中實(shí)現(xiàn),具體可以參考app_rainmaker.c文件,具體流程為
初始化ESP RainMaker節(jié)點(diǎn)esp_rmaker_node_init(),方法是向其傳遞配置 esp_rmaker_config_t()節(jié)點(diǎn)名稱和類型。
創(chuàng)建設(shè)備esp_rmaker_device_create()。RainMaker節(jié)點(diǎn)本身沒有特定的值,除非它下面有設(shè)備。
添加參數(shù)和其他元數(shù)據(jù)。
將設(shè)備添加到節(jié)點(diǎn)。
啟動(dòng)RainMaker代理esp_rmaker_start()。這將啟動(dòng)RainMaker核心任務(wù),該任務(wù)將等待Wifi,如果需要,通過MQTT連接到RainMaker Cloud,報(bào)告節(jié)點(diǎn)配置,報(bào)告參數(shù)值,然后等待命令。
啟動(dòng)無線網(wǎng)絡(luò) app_wifi_start()
以上是 ESP RainMaker 項(xiàng)目開發(fā)的基本介紹。您無需在云后臺(tái)進(jìn)行任何配置或更改,就可以輕松添加自定義功能,擁有極大的靈活性與可擴(kuò)展性。
-
ESP
+關(guān)注
關(guān)注
0文章
183瀏覽量
33954
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論