ESP32-C6物联网开发实战:基于Wi-Fi 6与BLE 5.2的智能家居节点设计
文章目录 摘要 一、项目概述 1.1 智能家居节点需求分析 1.2 ESP32-C6核心优势 二、开发环境配置 2.1 硬件准备 2.2 软件环境配置 三、Wi-Fi 6通信实现 3.1 STA模式连接代码 3.2 TWT节能配置 四、BLE 5.2功能开发 4.1 BLE服务构建 4.2 2M PHY高速模式 五、系统集成 5.1 传感器数据采集 5.2 继电器控制代码 六、云端交互 6.1 M…

文章目录 摘要 一、项目概述 1.1 智能家居节点需求分析 1.2 ESP32-C6核心优势 二、开发环境配置 2.1 硬件准备 2.2 软件环境配置 三、Wi-Fi 6通信实现 3.1 STA模式连接代码 3.2 TWT节能配置 四、BLE 5.2功能开发 4.1 BLE服务构建 4.2 2M PHY高速模式 五、系统集成 5.1 传感器数据采集 5.2 继电器控制代码 六、云端交互 6.1 M…

本文详细讲解如何利用ESP32-C6芯片构建支持Wi-Fi 6和BLE 5.2协议的智能家居节点,涵盖环境搭建、双模通信实现、传感器集成及云端交互全流程,提供完整可落地的开发方案。
现代智能家居系统需要支持高并发设备连接、低延迟控制和节能运行。传统Wi-Fi 4节点在20+设备场景下会出现明显延迟,而ESP32-C6的Wi-Fi 6支持OFDMA和TWT技术,可提升多设备协同效率。
ESP32-C6
Wi-Fi 6
BLE 5.2
OFDMA多设备接入
TWT节能机制
2M PHY高速传输
广播扩展
| 组件 | 型号 | 数量 |
|---|---|---|
| 主控板 | ESP32-C6-DevKitM-1 | 1 |
| 温湿度传感器 | SHT30 | 1 |
| 光敏电阻 | GL5528 | 1 |
| 继电器模块 | 5V单路 | 1 |
| 杜邦线 | 20cm | 若干 |
步骤:
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json安装库:
arduino-cli lib install 'WiFiClientSecure' arduino-cli lib install 'BLE' arduino-cli lib install 'Adafruit_SHT31'
创建文件:wifi_connector.ino
#include<WiFi.h>constchar* ssid ="Your_WiFi6_SSID";constchar* password ="Your_Password";voidsetup(){ Serial.begin(115200);// 启用Wi-Fi 6模式 WiFi.mode(WIFI_STA);esp_wifi_set_protocol(WIFI_IF_STA, WIFI_PROTOCOL_11AX | WIFI_PROTOCOL_11N); WiFi.begin(ssid, password);while(WiFi.status()!= WL_CONNECTED){delay(500); Serial.print(".");} Serial.println("\nConnected to Wi-Fi 6 Network!"); Serial.print("IP Address: "); Serial.println(WiFi.localIP());}voidloop(){// 维持连接心跳if(WiFi.status()!= WL_CONNECTED){ WiFi.reconnect();}delay(30000);}
// 在setup()中添加esp_wifi_config_80211ax_twti(true,2000);// 启用TWT,2000ms间隔
创建文件:ble_service.ino
#include<BLEDevice.h>#include<BLEUtils.h>#include<BLEServer.h>#defineSERVICE_UUID"4fafc201-1fb5-459e-8fcc-c5c9c331914b"#defineCHARACTERISTIC_UUID"beb5483e-36e1-4688-b7f5-ea07361b26a8" BLECharacteristic *pCharacteristic;voidsetup(){BLEDevice::init("SmartHome_Node"); BLEServer *pServer =BLEDevice::createServer(); BLEService *pService = pServer->createService(SERVICE_UUID); pCharacteristic = pService->createCharacteristic( CHARACTERISTIC_UUID, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE ); pCharacteristic->setValue("Node Ready"); pService->start(); BLEAdvertising *pAdvertising = pServer->getAdvertising(); pAdvertising->setMinPreferred(0x06);// 优化连接间隔 pAdvertising->start();}voidloop(){// BLE事件处理delay(2000);}
// 在setup()中添加esp_ble_gap_set_prefer_phy(BLE_ADDR_TYPE_PUBLIC, ESP_BLE_GAP_PHY_2M, ESP_BLE_GAP_PHY_2M);
I2C
ADC
Wi-Fi
BLE
SHT30传感器
ESP32-C6
光敏电阻
MQTT Broker
手机APP
#defineRELAY_PIN12voidcontrolRelay(bool state){digitalWrite(RELAY_PIN, state ? HIGH : LOW);// 状态同步更新 pCharacteristic->setValue(state ?"ON":"OFF");}
#include<PubSubClient.h> WiFiClient espClient; PubSubClient client(espClient);voidmqttConnect(){ client.setServer("mqtt.broker.com",1883);while(!client.connected()){if(client.connect("ESP32C6_Node")){ client.subscribe("home/livingroom/light");}}}voidcallback(char* topic, byte* payload,unsignedint length){if(strcmp(topic,"home/livingroom/light")==0){controlRelay(payload[0]=='1');}}
// 进入睡眠模式esp_sleep_enable_timer_wakeup(60*1000000);// 60秒唤醒esp_deep_sleep_start();
ESP32-C6
天线区域
电源电路
传感器接口
执行器驱动
| 测试项 | 结果 |
|---|---|
| Wi-Fi吞吐量 | 98Mbps @5GHz |
| BLE传输距离 | 82m(空旷环境) |
| 工作电流 | 18mA(活跃)/120μA(睡眠) |
| 温度精度 | ±0.2℃ |
场景测试:
ESP32-C6
Communication
Wi-Fi 6
OFDMA
TWT
BLE 5.2
2M PHY
广播扩展
Sensors
SHT30
GL5528
Control
继电器
PWM调光
Cloud
MQTT
HTTP API
Power
深度睡眠
动态调频

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online