一、前言
随着物联网技术的普及,利用无线网络实现设备远程控制已成为智能家居领域的基石。Beetle ESP32-C6作为一款迷你型物联网开发板,因其对Wi-Fi 6等新协议的支持而备受关注。本项目旨在通过实践,探索基于DFR1117开发板的Wi-Fi远程控制技术,实现通过手机或电脑浏览器控制板载LED灯的亮灭,为后续更复杂的物联网应用奠定基础。
二、简介
硬件介绍
DFR1117(又称Beetle ESP32-C6)是一款基于乐鑫ESP32-C6芯片设计的超小型Arduino开发板。
- 核心参数:搭载RISC-V 32位单核处理器,主频高达160 MHz,配备4MB Flash,拥有仅为25×20.5mm的硬币大小体积。
- 无线功能:支持现代物联网通信协议,包括Wi-Fi 6 (802.11ax)、蓝牙5.0、Zigbee 3.0及Thread,使其在低功耗和网络容量方面具有显著优势。
- 板载资源:板载一颗蓝色LED指示灯,连接至GPIO15(Arduino映射为D13),并集成了锂电池充电管理电路,适用于可穿戴项目。
功能介绍
本项目将利用开发板的Wi-Fi STA(工作站)模式,使其连接到本地路由器。通过在Arduino中编写代码,在开发板上建立一个简单的Web服务器。用户在同局域网下通过手机或电脑访问服务器分配的IP地址,点击网页上的按钮,即可发送HTTP请求,开发板接收指令后解析并对GPIO15进行写操作,从而实现板载LED的远程开关控制。
三、项目配置
1. 开发环境搭建
本项目使用Arduino IDE进行编程 。
- 添加开发板包:在Arduino IDE中打开“文件”->“首选项”,在“附加开发板管理器网址”中添加 https://espressif.github.io/arduino-esp32/package_esp32_dev_index.json(需使用3.0.0以上版本才支持ESP32-C6) 。
- 安装开发板:打开“工具”->“开发板”->“开发板管理器”,搜索“ESP32”,安装 ESP32 by Espressif Systems 版本3.x 。
- 选择开发板:在工具菜单中选择 “DFRobot Beetle ESP32-C6”,并正确选择对应的COM端口 。
2. 核心代码实现
代码主要包含Wi-Fi连接与Web服务器功能。根据硬件资料,板载LED连接至引脚 15 。
#include <WiFi.h>
#include <WebServer.h>
// 配置Wi-Fi凭证
const char* ssid = "TPLINK_35"; // 替换为你的Wi-Fi名称
const char* password = "Your_PASSWORD"; // 替换为你的Wi-Fi密码
// 定义LED引脚 (Beetle ESP32-C6板载LED为IO15)
const int ledPin = 15;
bool ledStatus = LOW;
// 创建Web服务器对象,监听80端口
WebServer server(80);
// 根目录处理函数:生成控制页面
void handleRoot() {
String html = "<!DOCTYPE html><html>";
html += "<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">";
html += "<style> .button { padding:15px 30px; font-size:20px; margin:10px; } </style></head>";
html += "<body><h2>ESP32-C6 LED Control</h2>";
html += "<p>LED State: ";
html += ledStatus ? "ON" : "OFF";
html += "</p>";
html += "<a href=\"/on\"><button class=\"button\">Turn ON</button></a>";
html += "<a href=\"/off\"><button class=\"button\">Turn OFF</button></a>";
html += "</body></html>";
server.send(200, "text/html", html);
}
// 开灯处理函数
void handleOn() {
digitalWrite(ledPin, HIGH);
ledStatus = HIGH;
server.sendHeader("Location", "/");
server.send(303);
}
// 关灯处理函数
void handleOff() {
digitalWrite(ledPin, LOW);
ledStatus = LOW;
server.sendHeader("Location", "/");
server.send(303);
}
void setup() {
Serial.begin(115200);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
// 连接Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.print("Connected! IP address: ");
Serial.println(WiFi.localIP());
// 启动Web服务
server.on("/", handleRoot);
server.on("/on", handleOn);
server.on("/off", handleOff);
server.begin();
}
void loop() {
server.handleClient();
}
四、功能展示
1. 系统启动
代码烧录成功后,打开串口监视器(波特率115200),可看到开发板尝试连接路由器,并最终打印出分配的IP地址(如 192.168.1.100) 。
2. 远程访问
确保手机/电脑与开发板处于同一局域网下,打开浏览器,输入串口打印的IP地址。
3. 控制效果
加载出HTML控制页面后,页面实时显示当前LED状态。点击 “Turn ON” 按钮,页面重定向刷新,板载蓝色LED即刻点亮;点击 “Turn OFF” 按钮,LED熄灭。响应迅速,无明显延迟,实现了预期的远程控制功能。

五、总结
本项目基于DFR1117 (Beetle ESP32-C6)开发板,利用其内置的Wi-Fi功能,成功构建了一个微型Web远程控制系统。项目验证了ESP32-C6在Arduino环境下的易用性以及Wi-Fi通信的稳定性 。板载LED连接至IO15的硬件细节在实验中被准确应用 。
通过此次实践,不仅掌握了基础的环境配置和网络编程方法,也认识到Beetle ESP32-C6在超小体积下集成的强大无线性能。未来可基于此框架,接入各类传感器,实现真正的物联网数据采集与远程控制应用。

