ESP32-C6-DevKitC-1 开发板 — 代码例程
例程 1:Arduino — Wi-Fi 6 连接 + 网络质量检测
#include <WiFi.h>
const char* ssid = "YOUR_WIFI6_SSID";
const char* password = "YOUR_PASSWORD";
void setup() {
Serial.begin(115200);
delay(1000);
Serial.println("\n=== ESP32-C6 Wi-Fi 6 Test ===");
WiFi.setMode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\n✅ Connected!");
Serial.printf("SSID: %s\n", WiFi.SSID().c_str());
Serial.printf("RSSI: %d dBm\n", WiFi.RSSI());
Serial.printf("Channel: %d\n", WiFi.channel());
wifi_ap_record_t ap_info;
esp_wifi_sta_get_ap_info(&ap_info);
if (ap_info.phy_11ax) {
Serial.println("📡 Connected via Wi-Fi 6 (802.11ax)!");
} else {
Serial.println("Connected via legacy Wi-Fi");
}
Serial.printf("Local IP: %s\n", WiFi.localIP().toString().c_str());
}
void loop() {
static unsigned long lastCheck = 0;
if (millis() - lastCheck > 5000) {
lastCheck = millis();
Serial.printf("RSSI: %d dBm | Status: %d\n", WiFi.RSSI(), WiFi.status());
}
}
例程 2:MicroPython — GPIO + PWM 全测试
from machine import Pin, PWM, ADC
import time
# --- 输出测试:闪烁 LED ---
led = Pin(2, Pin.OUT)
for i in range(5):
led.toggle()
time.sleep(0.3)
# --- PWM 呼吸灯 ---
pwm = PWM(Pin(2), freq=1000, duty=0)
print("PWM breathing LED...")
for duty in range(0, 1024, 8):
pwm.duty(duty)
time.sleep(0.005)
for duty in range(1023, -1, -8):
pwm.duty(duty)
time.sleep(0.005)
# --- 按钮输入 + 中断 ---
button = Pin(9, Pin.IN, Pin.PULL_UP)
press_count = 0
def button_handler(pin):
global press_count
press_count += 1
print(f"Button pressed! Count: {press_count}")
button.irq(trigger=Pin.IRQ_FALLING, handler=button_handler)
# --- ADC 读取 ---
adc = ADC(Pin(0))
adc.atten(ADC.ATTN_11DB)
print("Reading ADC (GPIO0)... Press Ctrl+C to stop.")
try:
while True:
val = adc.read()
voltage = val * 3.3 / 4095
print(f"ADC: {val:4d} | Voltage: {voltage:.2f}V | Button: {press_count}")
time.sleep(0.5)
except KeyboardInterrupt:
print("Done!")
pwm.deinit()
例程 3:Arduino — BLE 5.3 传感器外设
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEServer.h>
#include <BLE2902.h>
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b"
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8"
BLECharacteristic *pCharacteristic;
bool deviceConnected = false;
class MyServerCallbacks : public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
Serial.println("BLE Client connected!");
}
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
Serial.println("BLE Client disconnected. Restarting advertising...");
pServer->startAdvertising();
}
};
void setup() {
Serial.begin(115200);
Serial.println("=== ESP32-C6 BLE 5.3 Server ===");
BLEDevice::init("ESP32-C6-Sensor");
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
BLEService *pService = pServer->createService(SERVICE_UUID);
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic::PROPERTY_READ |
BLECharacteristic::PROPERTY_NOTIFY
);
pCharacteristic->addDescriptor(new BLE2902());
pCharacteristic->setValue("Hello from ESP32-C6!");
pService->start();
BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();
pAdvertising->addServiceUUID(SERVICE_UUID);
pAdvertising->setScanResponse(true);
pAdvertising->setMinPreferred(0x06);
BLEDevice::startAdvertising();
Serial.println("BLE advertising started!");
}
void loop() {
if (deviceConnected) {
char buf[32];
snprintf(buf, sizeof(buf), "Uptime: %lu s", millis() / 1000);
pCharacteristic->setValue(buf);
pCharacteristic->notify();
delay(2000);
}
delay(10);
}
例程 4:MicroPython — 802.15.4 / Zigbee 简单广播(实验性)
# 注意:ESP32-C6 的 MicroPython 802.15.4 支持可能受限
# 生产环境推荐使用 ESP-IDF 的 OpenThread/Matter SDK
import network
import time
# Wi-Fi 作为 Matter Bridge
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
print("Wi-Fi 6 / BLE 5.3 / 802.15.4 capable chip ready")
print(f"MAC: {':'.join('%02X' % b for b in wlan.config('mac'))}")
# BLE 初始化
import bluetooth
ble = bluetooth.BLE()
ble.active(True)
print(f"BLE Active: {ble.active()}")
print("ESP32-C6 三模无线 (Wi-Fi 6 + BLE 5.3 + 802.15.4) 已就绪")
例程 5:ESP-IDF — Matter 灯控设备(概念示例)
#include "esp_matter.h"
#include "esp_matter_console.h"
static void app_event_cb(const ChipDeviceEvent *event, intptr_t arg) {
}
extern "C" void app_main() {
esp_matter::node_t *node = esp_matter::node::create(
nullptr, app_event_cb, nullptr
);
esp_matter::endpoint::on_off_light::config_t light_cfg;
esp_matter::endpoint::on_off_light::create(node, &light_cfg,
esp_matter::ENDPOINT_FLAG_NONE, nullptr);
esp_matter::start();
ESP_LOGI("Main", "Matter Lighting node started on ESP32-C6");
}