日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

零知派——基于ESP32的BLE Mesh藍(lán)牙組網(wǎng)系統(tǒng)(iOS/Android APP控制)

零知實驗室 ? 來源:PCB56242069 ? 作者:PCB56242069 ? 2026-04-30 17:08 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

? ?零知派(零知開源)是一個專為電子初學(xué)者/電子興趣愛好者設(shè)計的開源軟硬件平臺,在硬件上提供超高性價比STM32系列開發(fā)板、物聯(lián)網(wǎng)控制板。取消了Bootloader程序燒錄,讓開發(fā)重心從“配置環(huán)境”轉(zhuǎn)移到“創(chuàng)意實現(xiàn)”,極大降低了技術(shù)門檻。零知開源編程軟件,內(nèi)置上千個覆蓋多場景的示例代碼,支持項目源碼一鍵下載,項目文章在線瀏覽。零知派(零知開源)平臺通過軟硬件協(xié)同創(chuàng)新,讓你的創(chuàng)意快速轉(zhuǎn)化為實物,來動手試試吧!

?訪問零知實驗室,獲取更多實戰(zhàn)項目和教程資源吧!

www.lingzhilab.com

?

項目概述

本項目以零知派ESP32(ESP32-WROOM-32)為核心主控,構(gòu)建了一套五節(jié)點的BLE Mesh智能照明控制系統(tǒng)。區(qū)別于傳統(tǒng)的主從藍(lán)牙(BLE Central/Peripheral)方案,本項目采用Bluetooth SIG Mesh標(biāo)準(zhǔn)協(xié)議,實現(xiàn)了真正意義上的無中心多跳自組網(wǎng):任意一個節(jié)點可以作為消息的中繼節(jié)點,將控制指令轉(zhuǎn)發(fā)給距離更遠(yuǎn)的設(shè)備,網(wǎng)絡(luò)具備自修復(fù)能力。

項目難點及解決方案

問題描述:NVS配網(wǎng)數(shù)據(jù)在固件更新后被意外清除

解決方案:僅在ESP_ERR_NVS_NO_FREE_PAGES(分區(qū)物理寫滿)時才執(zhí)行擦除,版本不匹配時保留現(xiàn)有數(shù)據(jù)

一、系統(tǒng)接線部分

1.1 硬件清單

元器件 型號 數(shù)量 說明
主控板 零知派ESP32(ESP32-WROOM-32) 5 240MHz雙核,內(nèi)置BLE 5.0
OLED顯示屏 SSD1306 0.96寸 128×64 5 I2C接口,3.3V供電
LED燈珠模塊 LED+限流電阻模塊 5 內(nèi)置限流電阻
數(shù)據(jù)線 USB Type-A to Micro-USB 1 燒錄用
杜邦線 公對母/母對母 若干 連接用
手機(jī) iOS/Android 1 安裝nRF Mesh App

1.2 接線方案表

以下引腳定義嚴(yán)格依據(jù) project_config.h 中的宏定義,五臺設(shè)備接線完全相同。

模塊 模塊引腳 ESP32引腳 說明
OLED SSD1306 VCC 3.3V 注意:只能接3.3V
OLED SSD1306 GND GND 接地
OLED SSD1306 SDA GPIO 21 I2C數(shù)據(jù),對應(yīng)OLED_SDA_GPIO
OLED SSD1306 SCL GPIO 22 I2C時鐘,對應(yīng)OLED_SCL_GPIO
LED模塊 IN/SIG GPIO 5 PWM控制,對應(yīng)LED_GPIO
LED模塊 VCC 3.3V LED模塊用3.3V供電
LED模塊 GND GND 接地

1.3 具體接線圖

wKgZPGnzFkCAWOkuAAWGMwhrx88468.png

OLED VCC務(wù)必接3.3V引腳,ESP32的5V引腳會損壞OLED、GPIO 21和GPIO 22之間無需外接上拉電阻

1.4 接線實物圖

wKgZO2nzFj2AEN9kAB2JwvWhDms87.jpeg

二、核心代碼講解

本項目代碼聚焦四個核心部分:BLE Mesh節(jié)點模型定義、Generic Server多消息處理回調(diào)、系統(tǒng)初始化流程、LED PWM平滑漸變

2.1 節(jié)點模型定義

這是整個BLE Mesh系統(tǒng)的基礎(chǔ),定義了節(jié)點向網(wǎng)絡(luò)"注冊"的功能清單

/* ============================================================
 * Config Server:BLE Mesh規(guī)范要求每個節(jié)點必須包含此模型
 * 它管理節(jié)點的網(wǎng)絡(luò)配置,使能GATT Proxy和Relay功能
 * ============================================================ */
static esp_ble_mesh_cfg_srv_t config_server = {
    .relay        = ESP_BLE_MESH_RELAY_ENABLED,    // 開啟中繼:本節(jié)點轉(zhuǎn)發(fā)他人消息
    .beacon       = ESP_BLE_MESH_BEACON_ENABLED,   // 開啟網(wǎng)絡(luò)信標(biāo)廣播
    .friend_state = ESP_BLE_MESH_FRIEND_ENABLED,   // 開啟Friend功能
    .gatt_proxy   = ESP_BLE_MESH_GATT_PROXY_ENABLED, // 開啟GATT代理:手機(jī)可連接
    .default_ttl  = 7,  // 消息最多轉(zhuǎn)發(fā)7跳,覆蓋多跳拓?fù)?    .net_transmit     = ESP_BLE_MESH_TRANSMIT(2, 20), // 原始消息重傳2次,間隔20ms
    .relay_retransmit = ESP_BLE_MESH_TRANSMIT(2, 20), // 中繼消息重傳2次
};

/* ============================================================
 * Generic OnOff Server:處理開關(guān)指令
 * AUTO_RSP表示協(xié)議棧自動回復(fù)Get消息,無需應(yīng)用層干預(yù)
 * ============================================================ */
static esp_ble_mesh_gen_onoff_srv_t onoff_server = {
    .rsp_ctrl = {
        .get_auto_rsp = ESP_BLE_MESH_SERVER_AUTO_RSP, // 自動回復(fù)狀態(tài)查詢
        .set_auto_rsp = ESP_BLE_MESH_SERVER_AUTO_RSP, // 自動回復(fù)Set指令
    },
};

/* ============================================================
 * Generic Level Server:處理亮度調(diào)節(jié)指令
 * Level范圍:-32768~32767,映射到PWM亮度0~255
 * ============================================================ */
static esp_ble_mesh_gen_level_srv_t level_server = {
    .rsp_ctrl = {
        .get_auto_rsp = ESP_BLE_MESH_SERVER_AUTO_RSP,
        .set_auto_rsp = ESP_BLE_MESH_SERVER_AUTO_RSP,
    },
};

/* ============================================================
 * 將三個模型打包進(jìn)一個Element(元素)
 * 每個節(jié)點至少有一個Element,本項目每個節(jié)點只有Primary Element
 * ============================================================ */
static esp_ble_mesh_model_t root_models[] = {
    ESP_BLE_MESH_MODEL_CFG_SRV(&config_server),          // Config Server
    ESP_BLE_MESH_MODEL_GEN_ONOFF_SRV(&onoff_pub, &onoff_server), // OnOff Server
    ESP_BLE_MESH_MODEL_GEN_LEVEL_SRV(&level_pub, &level_server), // Level Server
};

static esp_ble_mesh_elem_t elements[] = {
    ESP_BLE_MESH_ELEMENT(0, root_models, ESP_BLE_MESH_MODEL_NONE),
};

/* 節(jié)點組合數(shù)據(jù):告訴Provisioner本節(jié)點有哪些Element和Model */
static esp_ble_mesh_comp_t composition = {
    .cid           = MESH_COMPANY_ID,  // 0x02E5 = Espressif公司ID
    .elements      = elements,
    .element_count = ARRAY_SIZE(elements),
};

default_ttl消息存活跳數(shù)設(shè)置為7,每經(jīng)過一個中繼節(jié)點減1,為0時丟棄

2.2 多消息處理回調(diào)

nRF Mesh App在不同操作場景下發(fā)送的消息類型不同,必須全部處理才能實現(xiàn)完整的控制體驗

/* ============================================================
 * 三個內(nèi)聯(lián)輔助函數(shù):做好Level與亮度的雙向映射
 *
 * BLE Mesh Level范圍:-32768 ~ 32767(int16_t)
 * LED亮度范圍:0 ~ 255(uint8_t)
 * 映射公式:bri = (level + 32768) * 255 / 65535
 * ============================================================ */
static inline int16_t clamp16(int32_t v) {
    if (v >  32767) return  32767;
    if (v < -32768) return -32768;
    return (int16_t)v;
}
static inline uint8_t level_to_bri(int16_t lv) {
    return (uint8_t)(((int32_t)lv + 32768) * 255 / 65535);
}
static inline int16_t bri_to_level(uint8_t bri) {
    return (int16_t)((int32_t)bri * 65535 / 255 - 32768);
}

static void mesh_generic_server_cb(
        esp_ble_mesh_generic_server_cb_event_t event,
        esp_ble_mesh_generic_server_cb_param_t *param)
{
    /* 只處理狀態(tài)變化事件,忽略其他類型 */
    if (event != ESP_BLE_MESH_GENERIC_SERVER_STATE_CHANGE_EVT) return;

    uint32_t op = param-?>ctx.recv_op; // 獲取具體操作碼

    /* ── ① Generic OnOff Set ────────────────────────────────
     * 觸發(fā)場景:App中的ON/OFF開關(guān)按鈕(單節(jié)點或分組均可觸發(fā))
     * 關(guān)鍵處理:關(guān)燈時保留當(dāng)前亮度值,下次開燈時恢復(fù)
     * ─────────────────────────────────────────────────────── */
    if (op == ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET ||
        op == ESP_BLE_MESH_MODEL_OP_GEN_ONOFF_SET_UNACK) {
        bool on = (param->value.state_change.onoff_set.onoff != 0);
        g_local_led_on = on;
        if (on) {
            // 開燈:恢復(fù)上次亮度,若無歷史亮度則默認(rèn)78%(200/255)
            uint8_t bri = g_local_brightness ? g_local_brightness : 200;
            g_local_brightness = bri;
            led_pwm_set(true, bri);
        } else {
            led_pwm_set(false, 0);  // 關(guān)燈:PWM占空比置0
        }
    }

    /* ── ② Generic Level Set(絕對值)──────────────────────
     * 觸發(fā)場景:App單節(jié)點控制界面的Level滑塊
     * 注意:Level是int16_t絕對值,需要映射到uint8_t亮度
     * ─────────────────────────────────────────────────────── */
    if (op == ESP_BLE_MESH_MODEL_OP_GEN_LEVEL_SET ||
        op == ESP_BLE_MESH_MODEL_OP_GEN_LEVEL_SET_UNACK) {
        int16_t lv  = param->value.state_change.level_set.level;
        uint8_t bri = level_to_bri(lv);
        g_local_brightness = bri;
        g_local_led_on     = (bri > 0);
        led_pwm_set(g_local_led_on, bri);
    }

    /* ── ③ Generic Level Delta Set(相對增量)──────────────
     * 觸發(fā)場景:App分組控制界面的"+""-"按鈕
     *
     * state_change結(jié)構(gòu)體里存的是協(xié)議棧計算后的【結(jié)果Level值】
     * 字段名是 .level(int16_t),不是 .delta_level
     * 直接讀取結(jié)果值即可,無需自己做加減運算
     * ─────────────────────────────────────────────────────── */
    if (op == ESP_BLE_MESH_MODEL_OP_GEN_DELTA_SET ||
        op == ESP_BLE_MESH_MODEL_OP_GEN_DELTA_SET_UNACK) {
        int16_t new_lv = param->value.state_change.delta_set.level; // 直接取結(jié)果
        uint8_t bri    = level_to_bri(new_lv);
        g_local_brightness = bri;
        g_local_led_on     = (bri > 0);
        led_pwm_set(g_local_led_on, bri);
    }

    /* ── ④ Generic Level Move Set(連續(xù)移動)───────────────
     * 觸發(fā)場景:長按分組控制界面的"+""-"按鈕
     * 同樣讀取 .level 字段,邏輯與Delta Set完全一致
     * ─────────────────────────────────────────────────────── */
    if (op == ESP_BLE_MESH_MODEL_OP_GEN_MOVE_SET ||
        op == ESP_BLE_MESH_MODEL_OP_GEN_MOVE_SET_UNACK) {
        int16_t new_lv = param->value.state_change.move_set.level;
        uint8_t bri    = level_to_bri(new_lv);
        g_local_brightness = bri;
        g_local_led_on     = (bri > 0);
        led_pwm_set(g_local_led_on, bri);
    }
}

操作碼對應(yīng)關(guān)系速查表:

App操作 發(fā)送消息類型 操作碼 回調(diào)字段
單節(jié)點ON/OFF開關(guān) Generic OnOff Set MODEL_OP_GEN_ONOFF_SET onoff_set.onoff
單節(jié)點Level滑塊 Generic Level Set MODEL_OP_GEN_LEVEL_SET level_set.level
分組+/-按鈕 Generic Level Delta Set MODEL_OP_GEN_DELTA_SET delta_set.level(結(jié)果值!)

2.3 系統(tǒng)初始化與NVS持久化

void app_main(void)
{
    /* ── 步驟1:NVS初始化(含關(guān)鍵保護(hù)邏輯)─────────────────
     * BLE Mesh協(xié)議棧將以下數(shù)據(jù)自動存入NVS:
     *   - NetKey(網(wǎng)絡(luò)密鑰)
     *   - AppKey(應(yīng)用密鑰)
     *   - 單播地址(Unicast Address)
     *   - 序列號(防重放攻擊)
     *   - 分組訂閱地址
     *
     * 關(guān)鍵修復(fù):區(qū)分兩種錯誤碼
     *   ESP_ERR_NVS_NO_FREE_PAGES → 分區(qū)物理寫滿,必須擦除
     *   ESP_ERR_NVS_NEW_VERSION_FOUND → 固件更新版本不匹配,【不擦除】保留數(shù)據(jù)
     * ─────────────────────────────────────────────────────── */
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES) {
        ESP_LOGW(TAG, "NVS partition full - erasing (provisioning lost)");
        ESP_ERROR_CHECK(nvs_flash_erase());
        ret = nvs_flash_init();
    } else if (ret == ESP_ERR_NVS_NEW_VERSION_FOUND) {
        // 固件更新后版本號不匹配,但數(shù)據(jù)仍然有效,保留不擦
        ESP_LOGW(TAG, "NVS version mismatch - keeping existing data");
        ret = ESP_OK;
    }
    ESP_ERROR_CHECK(ret);

    /* ── 步驟2:LED PWM初始化 ─────────────────────────────
     * 參數(shù):GPIO 25,LEDC_CHANNEL_0,TIMER_0,5kHz,8bit分辨率
     * 8bit = 256級調(diào)光,對應(yīng)占空比0~255
     * ─────────────────────────────────────────────────────── */
    led_pwm_init(LED_GPIO, LED_PWM_CHANNEL, LED_PWM_TIMER,
                 LED_PWM_FREQ_HZ, LED_PWM_RESOLUTION);

    /* ── 步驟3:OLED初始化 ───────────────────────────────── */
    oled_init(OLED_I2C_PORT, OLED_SDA_GPIO, OLED_SCL_GPIO, OLED_I2C_ADDR);

    /* ── 步驟4:BLE Mesh初始化(含NVS狀態(tài)檢測)──────────── */
    ESP_ERROR_CHECK(ble_mesh_init());

    /* ── 步驟5:啟動兩個后臺任務(wù) ─────────────────────────── */
    xTaskCreate(oled_refresh_task, "oled_refresh", 2560, NULL, 3, NULL);
    xTaskCreate(led_fade_task,     "led_fade",     1024, NULL, 5, NULL);
}

在ble_mesh_init()函數(shù)末尾,通過esp_ble_mesh_node_is_provisioned()檢測NVS中是否存有配網(wǎng)數(shù)據(jù),已配網(wǎng)節(jié)點跳過node_prov_enable()直接恢復(fù)運行

if (esp_ble_mesh_node_is_provisioned()) {
    // 已配網(wǎng):直接以原單播地址恢復(fù),不廣播未配網(wǎng)信標(biāo)
    g_provisioned = true;
    ESP_LOGI(TAG, "Node %d ALREADY PROVISIONED - resuming", NODE_ID);
} else {
    // 未配網(wǎng)(首次或出廠重置):啟動ADV廣播,等待App配網(wǎng)
    esp_ble_mesh_node_prov_enable(ESP_BLE_MESH_PROV_ADV | ESP_BLE_MESH_PROV_GATT);
}


2.4 PWM平滑漸變

/* 漸變參數(shù) */
#define FADE_STEP     4    // 每次漸變步長(占空比單位)
#define FADE_INTERVAL 15   // 漸變更新間隔(毫秒)

/* led_fade_task每15ms調(diào)用一次此函數(shù) */
void led_pwm_fade_tick(void)
{
    uint32_t now = xTaskGetTickCount() * portTICK_PERIOD_MS;
    if (now - s_last_tick < FADE_INTERVAL) return; // 未到更新時刻
    s_last_tick = now;

    if (s_current == s_target) return; // 已到達(dá)目標(biāo)值

    /* 非線性逼近:剩余差值大于步長時固定步進(jìn),接近目標(biāo)時精確到達(dá) */
    if (s_current < s_target) {
        uint8_t d = s_target - s_current;
        s_current += (d > FADE_STEP) ? FADE_STEP : d; // 最后一步精確對齊
    } else {
        uint8_t d = s_current - s_target;
        s_current -= (d > FADE_STEP) ? FADE_STEP : d;
    }

    /* 將當(dāng)前亮度值寫入LEDC外設(shè) */
    ledc_set_duty(LEDC_LOW_SPEED_MODE, s_channel, s_current);
    ledc_update_duty(LEDC_LOW_SPEED_MODE, s_channel);
}

總漸變時間從0~100%約960ms完成全程

系統(tǒng)流程圖

wKgZO2nzFjqAJ_10AAtdsLayjxA433.png

調(diào)光控制依賴庫

esp_ble_mesh_generic_model_api 定義了BLE Mesh Generic Model的全部服務(wù)端(Server)和客戶端(Client)API

// 服務(wù)端回調(diào)注冊函數(shù)
esp_err_t esp_ble_mesh_register_generic_server_callback(
    esp_ble_mesh_generic_server_cb_t callback);

// 服務(wù)端回調(diào)參數(shù)中的狀態(tài)變化聯(lián)合體
typedef union {
    struct { uint8_t onoff; }    onoff_set;   // OnOff結(jié)果
    struct { int16_t level; }    level_set;   // Level絕對值結(jié)果
    struct { int16_t level; }    delta_set;   // Delta應(yīng)用后的結(jié)果
    struct { int16_t level; }    move_set;    // Move應(yīng)用后的結(jié)果
} esp_ble_mesh_server_state_change_t;

BLE Mesh Generic Level模型的三種Set消息

Generic Level Set:設(shè)置絕對Level值,適用于已知目標(biāo)亮度的精確控制場景

Generic Level Delta Set:相對當(dāng)前Level值進(jìn)行偏移,適用于增減調(diào)節(jié)場景(旋鈕、+/-按鈕);同一手勢的多次消息會疊加(累積Delta),協(xié)議棧自動維護(hù)基準(zhǔn)值

三、項目結(jié)果演示

3.1 操作流程

(1)編譯與燒錄

①打開 main/project_config.h,將 #define NODE_ID0修改為對應(yīng)設(shè)備編號(0~4)

wKgZPGnzFjeAN12TABOyvCkKRsc770.png

②設(shè)置目標(biāo)芯片,點擊底部任務(wù)欄"Set Espressif Device Target"設(shè)置IDF_TARGET芯片為ESP32

wKgZO2nzFjWANkugABOyvMiMc90509.png

③燒錄并打開串口監(jiān)視器,通過日志和操作數(shù)據(jù)進(jìn)行調(diào)試

wKgZPGnzFjOAce_4ABOyvORs-JE547.png

(2)手機(jī)配網(wǎng)

①打開nRF Mesh App → Network → 右上角“+”掃描

通過UUID第三字節(jié)(00,01,02,03,04)識別節(jié)點,依次配網(wǎng)(選擇No OOB)

②配網(wǎng)成功后,節(jié)點LED閃爍三次,OLED顯示變?yōu)橐雅渚W(wǎng)狀態(tài),為每個節(jié)點的OnOff Server和Level Server綁定App Key 1

wKgZO2nzFjGATjEYABGKnLp8PaA14.jpeg

?

(3)創(chuàng)建分組與訂閱

在Groups界面創(chuàng)建Node 0,1、Node 2,3、Node 4、Node 0~4四個分組,為每個節(jié)點的OnOff Server和Level Server訂閱相應(yīng)分組

(4)功能控制

單燈控制:在Network中選擇節(jié)點,使用ON/OFF和Level滑塊;分組控制:在Groups中選擇分組,使用ON/OFF和+/-按鈕

3.3 Android系統(tǒng)配網(wǎng)說明

由于 nRF Mesh 官方版本主要通過 Google Play 分發(fā),部分國內(nèi)或無代理環(huán)境的Android設(shè)備無法下載安裝,因此本教程提供兩種安裝方式:

方式一:APK直裝(推薦)
https://pan.baidu.com/s/1aLj1wjDjVDlJmRzwJ0b21Q?pwd=qtc5

下載APK到手機(jī)→打開“允許安裝未知應(yīng)用”→安裝完成

方式二:GooglePlay下載

打開GooglePlay→搜索nRFMesh→安裝NordicSemiconductor官方版本

nRFMeshApp(iOS/Android)不會自動與節(jié)點重建Proxy連接。因此用戶需要在App中手動觸
發(fā)重新連接執(zhí)行一次Reprovision操作才能恢復(fù)控制

3.2 視頻演示

?https://live.csdn.net/v/524280?spm=1001.2014.3001.5501

本視頻演示了基于零知ESP32的五節(jié)點BLE Mesh智能照明系統(tǒng)的完整操作流程,包括:五臺ESP32設(shè)備的固件燒錄、nRF Mesh Android App的配網(wǎng)全過程(從掃描發(fā)現(xiàn)到AppKey綁定)、創(chuàng)建三個自定義分組并為各節(jié)點配置訂閱、分組控制下的LED同步開關(guān)與PWM漸變調(diào)光效果,以及OLED顯示屏實時狀態(tài)反饋

四、ESP-BLE-MESH技術(shù)講解

BLE Mesh構(gòu)建了一個無中心多跳自組網(wǎng),一條消息可以通過多跳跨越很遠(yuǎn)的距離,即使個別節(jié)點離線,消息也能找到替代路徑到達(dá)目標(biāo)

4.1 協(xié)議棧架構(gòu)

Mesh Networking 功能的實現(xiàn)是基于層級結(jié)構(gòu),每一層功能框架如圖,

wKgZO2nzFjCAHaJmAAFBRmLK1HM317.png

4.2 組播訂閱與分組控制

組播地址由 nRF Mesh App 分配并寫入節(jié)點模型的 Subscription List,節(jié)點收到發(fā)往已訂閱組播地址的消息后觸發(fā) mesh_generic_server_cb

wKgZPGnzFi-AC6EqAAFEo_9QA4Y457.png

4.3 Relay多跳轉(zhuǎn)發(fā)

對應(yīng) Networking 層的 Relay Feature:Flooding 泛洪機(jī)制、TTL 逐跳遞減、消息緩存去重

wKgZO2nzFi-AMnF9AADNHjmn7uU299.png

本項目配置 default_ttl=7、relay_retransmit=TRANSMIT(2,20)

五、常見問題解答(FAQ)

Q1:多臺設(shè)備如何區(qū)分?UUID有什么規(guī)律?

A:本項目Device UUID格式為 DD:DD:XX:00:00:...,第三字節(jié)XX即為 NODE_ID(0~4的十六進(jìn)制值)。節(jié)點0的UUID為 DD:DD:00:...,節(jié)點1為 DD:DD:01:...,以此類推,在nRF Mesh App掃描界面可以直接看到UUID從而區(qū)分設(shè)備

Q2:手機(jī)App無法掃描到設(shè)備?

A:①確認(rèn)ESP32已上電且串口日志顯示 Open nRF Mesh App -> Scanner -> find ESP-BLE-MESH;②iOS需要在系統(tǒng)設(shè)置中開啟nRF Mesh的藍(lán)牙權(quán)限;③若該設(shè)備已被配網(wǎng),需要先在App中將其重置(Reset Node)才能重新掃描到。

項目資源整合

ESP-BLE-MESH 架構(gòu): ble-mesh-architecture

BLE Mesh API: bluetooth/esp-ble-mesh

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 組網(wǎng)
    +關(guān)注

    關(guān)注

    1

    文章

    454

    瀏覽量

    23404
  • BLE
    BLE
    +關(guān)注

    關(guān)注

    13

    文章

    813

    瀏覽量

    66593
  • ESP32
    +關(guān)注

    關(guān)注

    27

    文章

    1226

    瀏覽量

    22430
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    ——基于ESP32BLE Mesh藍(lán)牙組網(wǎng)系統(tǒng)iOS/Android APP控制

    視頻演示https://live.csdn.net/v/524280?spm=1001.2014.3001.5501本視頻演示了基于ESP32的五節(jié)點BLE
    發(fā)表于 04-30 17:08

    -ESP32 BLE Mesh藍(lán)牙組網(wǎng)紅外燈控系統(tǒng)演示

    藍(lán)牙
    PCB56242069
    發(fā)布于 :2026年04月14日 10:08:25

    Mesh?到無線視頻,ESP32-E22?的場景落地指南,飛??萍紭扶未砩?/a>

    Wi-Fi 6E 正在從旗艦走向普及。樂鑫 ESP32-E22 以協(xié)處理器為定位,支持三頻 Wi-Fi 6E、峰值速率 2.4 Gbps,同時集成藍(lán)牙 5.4 雙模。本文聚焦 Mesh 路由器與無線
    的頭像 發(fā)表于 04-13 14:59 ?1358次閱讀
    從 <b class='flag-5'>Mesh</b>?到無線視頻,<b class='flag-5'>ESP32</b>-E22?的場景落地指南,飛??萍紭扶未砩? />    </a>
</div>                              <div   id=

    ——ESP32?S3 基于 ESP32-CAM 驅(qū)動 OV3660 攝像頭模塊開發(fā)

    數(shù)量 備注 主控板 ESP32-S3 1 核心控制器,自帶WiFi和藍(lán)牙 OV3660模塊
    發(fā)表于 04-02 11:01

    BLE藍(lán)牙Mesh網(wǎng)絡(luò)筑基:全屋智能家居怎樣同時省電又連片可控?

    )?為終端提供節(jié)能的無線鏈路,是設(shè)備側(cè)「能連、能待機(jī)」的基礎(chǔ); 藍(lán)牙Mesh ? 由藍(lán)牙技術(shù)聯(lián)盟(Bluetooth SIG)標(biāo)準(zhǔn)化(規(guī)范文檔中常用英文名 Bluetooth Mesh
    的頭像 發(fā)表于 03-25 16:15 ?2214次閱讀

    跨平臺兼容智能家居藍(lán)牙Mesh組網(wǎng)方案

    藍(lán)牙Mesh是一種基于藍(lán)牙低功耗技術(shù)的網(wǎng)絡(luò)通信協(xié)議,支持設(shè)備間的自組網(wǎng)與多跳中繼通信。其核心機(jī)制包括: 自組網(wǎng)能力:設(shè)備間可自動建立網(wǎng)絡(luò)連接
    的頭像 發(fā)表于 03-25 14:44 ?958次閱讀
    跨平臺兼容智能家居<b class='flag-5'>藍(lán)牙</b><b class='flag-5'>Mesh</b><b class='flag-5'>組網(wǎng)</b>方案

    藍(lán)牙Mesh會不會和ble功能有沖突

    藍(lán)牙 MeshBLE Mesh) 與 傳統(tǒng) BLE(Bluetooth Low Energy)功能 在技術(shù)上是基于同一底層物理層(2.4G
    發(fā)表于 01-30 20:11

    ESP32和STM32哪個更容易學(xué)?

    ,尤其是當(dāng)你腦子里冒出一些需要聯(lián)網(wǎng)或藍(lán)牙交互的點子時。它自帶Wi-Fi和BLE,固件和開發(fā)框架相對集成,很多時候你不需要從構(gòu)建一切,而是可以站在現(xiàn)有生態(tài)系統(tǒng)上快速實
    的頭像 發(fā)表于 01-15 15:53 ?476次閱讀
    <b class='flag-5'>ESP32</b>和STM32哪個更容易學(xué)?

    ESP32 Wi-Fi 控制 LED 燈的原理

    在智能家居、物聯(lián)網(wǎng)設(shè)備中,用手機(jī)通過Wi-Fi控制燈光、風(fēng)扇或插座,已經(jīng)非常普遍。而在嵌入式開發(fā)中,ESP32是最常用的Wi-Fi模塊之一。本文將帶你系統(tǒng)理解:ESP32是如何通過Wi
    的頭像 發(fā)表于 01-09 19:04 ?614次閱讀
    <b class='flag-5'>ESP32</b> Wi-Fi <b class='flag-5'>控制</b> LED 燈的原理

    ESP32藍(lán)牙驅(qū)動MAX98357對音頻音樂播放

    本文介紹了MAX98357音頻模塊的基本特性,并利用ESP32藍(lán)牙功能程序驅(qū)動此模塊,最后用手機(jī)藍(lán)牙連接ESP32播放手機(jī)音樂
    的頭像 發(fā)表于 12-19 19:55 ?3300次閱讀
    <b class='flag-5'>ESP32</b><b class='flag-5'>藍(lán)牙</b>驅(qū)動MAX98357對音頻音樂播放

    IDE——基于ESP32與DRV8833的穩(wěn)定電機(jī)測速系統(tǒng)實現(xiàn)教程

    格黑白碼盤1安裝于電機(jī)軸接線方案表DRV8833采用5V供電確保電機(jī)驅(qū)動能力[td] ESP32 引腳連接器件器件引腳功能說明 12(MOTOR_AIN1)DRV8833AIN1電機(jī) PWM
    發(fā)表于 12-15 16:41

    關(guān)于BLE藍(lán)牙芯片的BLE Mesh無線組網(wǎng)方案分享

    在物聯(lián)網(wǎng)設(shè)備爆發(fā)式增長的背景下,穩(wěn)定、靈活且易于部署的無線組網(wǎng)技術(shù)成為關(guān)鍵。BLE藍(lán)牙芯片憑借其低功耗、高兼容性和成熟的生態(tài),成為許多智能設(shè)備的首選通信方案。而BLE
    的頭像 發(fā)表于 11-19 15:33 ?742次閱讀

    JDY-24M模塊基本使用說明(主從透傳、MESH組網(wǎng)、BLE等數(shù)據(jù)傳輸)

    本文介紹了JDY-24M藍(lán)牙模塊的基本特性,如何使用其串口藍(lán)牙數(shù)據(jù)透傳功能,藍(lán)牙MESH組網(wǎng)數(shù)據(jù)傳輸。
    的頭像 發(fā)表于 07-22 13:22 ?2516次閱讀
    JDY-24M模塊基本使用說明(主從透傳、<b class='flag-5'>MESH</b><b class='flag-5'>組網(wǎng)</b>、<b class='flag-5'>BLE</b>等數(shù)據(jù)傳輸)

    想要做低功耗藍(lán)牙組網(wǎng),除了藍(lán)牙MESH之外,還有什么更好的方式嗎

    做低功耗藍(lán)牙的開發(fā)應(yīng)用,如果涉及到的節(jié)點比較多,對傳輸?shù)姆秶途嚯x比較遠(yuǎn)的話,大家可能會首先想到藍(lán)牙mesh,藍(lán)牙mesh能夠接的節(jié)點是非常
    發(fā)表于 06-30 12:53

    ESP32用作經(jīng)典藍(lán)牙串口透傳模塊與手機(jī)進(jìn)行串口通信

    本文介紹了如何把ESP32用作一個藍(lán)牙串口透傳設(shè)備使用,其功能和常用的HC-05/06串口藍(lán)牙設(shè)備一樣。并與手機(jī)藍(lán)牙串口APP進(jìn)行雙向
    的頭像 發(fā)表于 06-20 17:45 ?3450次閱讀
    <b class='flag-5'>ESP32</b>用作經(jīng)典<b class='flag-5'>藍(lán)牙</b>串口透傳模塊與手機(jī)進(jìn)行串口通信
    福清市| 肃宁县| 太仆寺旗| 章丘市| 裕民县| 栾川县| 桑植县| 道真| 三都| 奉新县| 隆林| 湟中县| 宝兴县| 龙江县| 侯马市| 宁都县| 萝北县| 雷波县| 乌兰察布市| 宿松县| 承德市| 台安县| 玉屏| 河西区| 固始县| 新建县| 安徽省| 孟村| 永清县| 安仁县| 保德县| 孙吴县| 益阳市| 基隆市| 新津县| 江门市| 韶山市| 女性| 博罗县| 普定县| 睢宁县|