ESP32-C5-WIFI6-KIT-N16R4
|
| ||||||||||||||||||||
| ||||||||||||||||||||
说明
产品简介
ESP32-C5-WIFI6-KIT 是微雪电子基于 ESP32-C5-WROOM-1 模组设计的一款面向双频 Wi-Fi 与多协议物联网网关场景的开发板。ESP32-C5 为乐鑫支持 Wi-Fi 6 双频 (2.4GHz 与 5GHz) RISC-V 的单核芯片,还同时集成 BLE 5、Zigbee 和 Thread 协议,可灵活作为智能家居中枢或跨协议通信网关使用。硬件方面配备 240MHz RISC-V 处理器、384KB SRAM、16MB Flash,4MB 或 8MB PSRAM (版本可选),能够稳定处理多协议栈并发任务及中等负载应用。开发者可借助 ESP-IDF 或 Arduino 等成熟开发框架,快速进行原型验证与产品实现,适用于智能网关、多协议设备接入等实际物联网场景。
产品特性
- 采用 ESP32-C5-WROOM-1 系列模组,搭载 RISC-V 32 位处理器,主频高达 240MHz
- 集成 384KB SRAM、320KB ROM 和 16MB Flash,并提供 4MB 或 8MB PSRAM 的可选版本
- 集成 2.4GHz 与 5GHz 双频 Wi-Fi、Bluetooth 5 (LE) 以及 IEEE 802.15.4 (支持 Zigbee 3.0 和 Thread) 无线通信,具备出色的射频性能
- 板载电池充电管理模块,预留 3.7V MX1.25 锂电池接口,可外接电池进行供电
- 采用正反可插拔的 USB Type-C 接口
- 引出丰富的外设接口,邮票孔设计,方便焊接集成到用户自主设计的底板上
- 支持多种低功耗工作状态,可灵活调节通信距离、数据率和功耗之间的平衡,以满足各种应用场景的功耗需求
功能框图
资源接口
引脚分布
产品尺寸
开发环境配置
- 以下开发系统默认为Windows
ESP-IDF
- 推荐使用VSC插件进行开发
使用VSCode插件开发
安装VSCode
- 打开VSCode官网的下载页面,选择对应系统和系统位数进行下载

- 运行安装包后,其余均可以默认安装,但这里为了后续的体验建议,建议在此处勾选框中的1、2、3项
- 第一二项开启后,可以直接通过鼠标右键文件或者目录打开VSCode,可以提高后续的使用体验.
- 第三项开启后,选择打开方式时,可以直接选择VSCode
安装Espressif IDF插件
- 注:当前插件最新版本为V1.6.4,为体验一致,用户可以选择与我们一样的版本
- 打开VSCode,使用快捷键 Shift+Ctrl+X ,进入插件管理器
- 在搜索栏中,输入 Espressif IDF ,选择对应的插件点击 install即可
- 使用快捷键 F1 ,输入
esp-idf: configure esp-idf extension
- 选择express(此教程针对第一次安装的用户,故只讲述初次的通用安装教程)
- 选择下载服务器,我们推荐国内用户使用Espressif作为你的下载服务器
- 选择想要现在的ESP-IDF版本,我们选择最新的V5.1.1(注意ESP-IDF从V5.1版本后才开始支持ESP32-C6)
- 下面两个分别为ESP-IDF容器安装地址和ESP-IDF所需的工具安装地址,
- 注意:如果之前有安装过ESP-IDF,或者失败过的,请务必彻底删除文件或者创建全新的无中文路径
- 配置完成后,点击 install 进行下载
- 进入下载页面,其会自动安装对应工具与环境,稍等片刻即可
- 安装完成后,会进入以下界面,说明安装完成
示例演示
示例程序 示例效果 01_Hello world 实现串口打印“hello world”效果 02_RGB 实现 RGB 灯每秒循环亮灭的效果 03_UART 实现短接GPIO4与GPIO5情况下进行 UART 的数据自收发 04_IIC 实现通过0.96inch_OLED_(B)页面显示“hello waveshare”效果 | 05_WIFI 实现通过 WiFi 从 心知天气 API 获取数据的功能 | 06_WIFI_AP 实现开发板开启 WiFi 热点并支持手机端连接的功能 07_BLE 实现手机端连接蓝牙 BLE 信标并接收广播数据的功能 08_ZIGBEE 实现两块开发板之间通过 ZIGBEE 协议经按键控制 RGB 灯亮灭的效果
01_Hello world
【程序说明】
02_RGB
【程序说明】
03_UART
ESP32-C5 ESP32-C5(同一块) GPIO4 GPIO5
【程序说明】
04_IIC
0.96inch OLED (B) ESP32-C5 VCC 3V3 GND GND DIN GPIO3 CLK GPIO4 CS GND D/C GND RES GPIO9
【程序说明】
- 官方示例路径:peripherals -> lcd -> i2c_oled
- 示例效果:点亮 0.96inch OLED (B),显示一段字符
【代码分析】
- 适配0.96inch OLED (B),定义 RES 引脚为 GPIO9
05_WIFI
【程序说明】
示例效果:实现 ESP32-C5 连接 WIFI 获取心知天气 API 数据的功能
【硬件连接】
将开发板连接电脑
【代码分析】
需根据心知天气官网 心知天气 API 的实际天气状况,修改相关 API 配置(如服务器地址、请求路径等)。
![]()
需根据心知天气官网 心知天气 API,应将原有过频繁的 API 调用频率调整为每 30 分钟获取一次天气数据。
![]()
因调用了 WiFi 示例连接,需在 menuconfig 中完成 WiFi 相关参数的配置。
![]()
1:在终端中输入命令 idf.py menuconfig
![]()
2:选中红框所选,并按下回车
![]()
3:在配置界面中,准确填写个人 WiFi 的名称(SSID)与密码,按下 s 键保存配置,再按下 q 键退出配置界面,即可完成 WiFi 配置。
![]()
06_WIFI_AP
【程序说明】
07_BLE
【程序说明】
08_ZIGBEE
【程序说明】
官方示例 1 路径:Zigbee -> light_sample -> HA_on_off_switch
官方示例 2 路径:Zigbee -> light_sample -> HA_on_off_light
示例效果:两块 ESP32-C5,使用其中一块 (烧录 HA_on_off_switch 程序) 的 BOOT 按键控制另一块的 RGB 灯珠的亮灭
注:请先往一块烧录 HA_on_off_switch 程序,再往另一块烧录 HA_on_off_light 程序
【硬件连接】
1:准备两块 ESP32 - C5 - N16R4 开发板,确保它们供电正常且处于可烧录程序的状态。
2:将第一块开发板与电脑连接,使用烧录工具往该开发板烧录 HA_on_off_light 程序(此程序用于控制 RGB 灯),烧录完成后保持开发板上电状态。
3:将第二块开发板与电脑连接,使用烧录工具往该开发板烧录 HA_on_off_switch 程序(此程序用于通过 BOOT 按键实现控制功能),烧录完成后保持开发板上电状态。
【代码分析】
开发板 1:需将 RGB 引脚配置为 gpio27,并将 RGB 灯珠数量设置为 1
![]()
开发板 2:需将按键控制引脚配置为 gpio28
![]()
若一直处于以下未连接的情况,则可能是由于这个设备有残留的其他网络信息,可以 擦除设备信息,再重新组网。
![]()
【运行效果】
说明 Zigbee 网络已成功 “开放”,且允许其他设备在 180 秒内加入组网。
![]()
两块 ESP32-C5 开发板通过 ZIGBEE 协议,使用其中一块 (烧录 HA_on_off_switch 程序) 的 BOOT 按键控制另一块的 RGB 灯珠的亮灭
Arduino
安装Arduino IDE
- 打开官网软件下载页面,选择对应的系统和系统位数下载

- 可以选择直接下载,也可以选择捐赠并下载

- 运行安装程序,全部默认安装即可
在线安装arduino-esp32
- 打开首选项

- 添加对应的板管理链接,点击该按键

- 在第一个空白处,添加下文
https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

- 保存设置
- 打开板管理器并搜索输入ESP32

- 等待下载

- arduino-esp32下载完成

离线安装arduino-esp32(国内推荐)
- 离线包(提取码:1r4i)
- 提取码:1r4i
- 将压缩包解压缩

- 将解压文件放在对应用户的arduino器件包目录
C:\Users\{用户名}\AppData\Local\Arduino15\packages\以用户名为waveshare为例C:\Users\waveshare\AppData\Local\Arduino15\packages\
- 关闭全部arduino窗口,确保arduino关闭
- 打开arduino,并打开板管理器,看到esp32-arduino已经安装即可

使用Arduino例程
示例程序 示例效果 01_GPIO 实现控制指定的左右共 20 个 GPIO 引脚依次循环进行高低电平切换,并串口打印每个引脚的电平变化状态 02_BlinkRGB 实现控制 RGB呈流水灯动态效果 03_GetchipID 实现每隔三秒获取并打印 ESP32-c5芯片的硬件信息,包括芯片型号、版本、核心数量以及芯片ID 04_WIFI_AP 实现通过ESP32-C5-N16R4开发板设置为AP热点(2.4G),允许其他WiFi设备接入联网 05_WIFI_STA 实现连接指定 WiFi 并打印连接信息,每 5 分钟调用 心知天气 API 获取数据后格式化打印响应,且支持 WiFi 断线自动重连。 | 06_WIFI_DHCP 实现通过ESP32-C5-N16R4开发板使用WIFI连接,DHCP分配IP地址 07_WIFI_StaticIP 实现通过ESP32-C5-N16R4开发板使用WIFI连接,静态分配IP地址 08_lvgl8.4.0_demo | 实现通过2.4inch LCD Module实现文本效果 | 09_lvgl9.2.2_demo | 实现通过2.4inch LCD Module实现文本效果 |
- 示例中使用到的ESP32-C5-N16R4 库文件说明
库名称 说明 版本 库安装要求 lvgl lvgl图形库 v8.4.0或v9.2.2 “在线”安装 GFX_Library_for_Arduino GFX图形化库 v1.6.0 “在线”安装 SensorLib 传感器库 v0.3.1 “在线”安装 esp32 by Espressif Systems esp32库 3.3.1-cn “在线”安装
- 在ardunio中安装库方法:
1:打开 Arduino IDE,点击顶部菜单栏的「工具」,选择「管理库…」选项(也可使用快捷键 Ctrl+Shift+I)
![]()
2:进入库管理器界面后,在左侧搜索栏输入所需库的名称(这里以lvgl9.2.2版本进行示例)进行搜索;下方会列出可下载的库版本,安装完成后会提示 “安装成功”。

01_GPIO
【程序说明】
该程序实现对左右共 20 个指定 GPIO 引脚的电平控制:左侧 11 个引脚依次循环执行 “高电平→低电平” 切换,右侧 9 个引脚依次循环执行 “低电平→高电平” 切换;每个电平状态持续 300 毫秒,且通过串口实时打印各引脚的电平变化状态。
【硬件连接】
将开发板连接电脑
【代码分析】
setup () 函数 :完成初始化工作,为 GPIO 控制提供基础
- 初始化串口:通过
Serial.begin(115200)配置串口波特率为 115200,用于打印 GPIO 状态信息。 - 配置左侧 GPIO:遍历包含 11 个引脚(0、1、2、3、6、7、8、9、10、25、26)的数组,将每个引脚设为输出模式,默认输出低电平,并打印初始化状态。
- 配置右侧 GPIO:遍历包含 9 个引脚(24、23、15、27、5、4、28、14、13)的数组,将每个引脚设为输出模式,默认输出高电平,并打印初始化状态。
loop () 函数 :循环执行 GPIO 电平动态切换,实现可见的控制效果
- 左侧 GPIO 控制:逐个将引脚从低电平切换为高电平,打印状态后延迟 300ms;再切换回低电平,打印状态后延迟 300ms。
- 右侧 GPIO 控制:逐个将引脚从高电平切换为低电平,打印状态后延迟 300ms;再切换回高电平,打印状态后延迟 300ms。
02_BlinkRGB
【程序说明】
官方示例路径:示例 -> ESP32 -> GPIO -> BlinkRGB
示例效果:实现控制 RGB 灯呈流水灯动态效果
【硬件连接】
将开发板连接电脑
【代码分析】
setup () 函数 :无需对 RGB LED 做额外初始化操作,因为 RGB 灯的控制可通过后续digitalWrite或rgbLedWrite直接驱动。
loop () 函数 :循环实现 RGB 灯的多色切换与亮灭控制
- 通过 digitalWrite(RGB_BUILTIN, HIGH) 点亮 RGB 灯为白色,延迟 1 秒后,用 digitalWrite(RGB_BUILTIN, LOW) 熄灭 RGB 灯,再延迟 1 秒;
- 调用 rgbLedWrite 函数依次单独点亮红色、绿色、蓝色,每种颜色保持 1 秒;
- 最后用 rgbLedWrite(RGB_BUILTIN, 0, 0, 0) 熄灭 RGB 灯,延迟 1 秒后重复整个循环。
【运行效果】
实现控制 RGB 灯呈流水灯动态效果
03_GetchipID
【程序说明】
官方示例路径:示例 -> ESP32 -> chipID -> GetchipID
示例效果:实现每隔三秒获取并打印 ESP32 芯片的硬件信息,包括芯片型号、版本、核心数量以及芯片 ID
【硬件连接】
将开发板连接电脑
【代码分析】
setup () 函数 :初始化串口通信通过 Serial.begin(115200) 配置串口波特率为 115200,为后续打印芯片信息提供输出通道。
loop () 函数 :计算并打印 ESP32 芯片相关信息,周期性执行
- 打印芯片信息:调用
ESP.getChipModel()、ESP.getChipRevision()、ESP.getChipCores()分别获取并打印芯片型号、版本、核心数;再打印计算得到的chipId。 - 周期性执行:通过
delay(3000)延迟 3 秒,重复上述芯片 ID 计算与信息打印流程。
04_WIFI_AP
【程序说明】
- 实现 ESP32-C5-N16R4 开发板创建名为 “ESP32-C5-N16R4”、密码为 “waveshare” 的 WiFi 热点,监控设备的连接 / 断开状态,并通过串口打印设备的 MAC 地址及分配的 IP 地址。
【硬件连接】
- 将开发板连接电脑
【代码分析】
setup () 函数 :完成 WiFi 接入点的初始化与事件监控配置
- 初始化串口:通过
Serial.begin(115200)开启串口通信,用于打印调试信息。 - 启动 WiFi 接入点:调用
WiFi.softAP(ssid, password),将设备设置为 AP 模式(SSID 为"ESP32-C5-N16R4",密码为"waveshare")。 - 注册事件处理器:通过
WiFi.onEvent(WiFiEvent)注册自定义事件处理函数,监控客户端连接 / 断开、IP 分配等 WiFi 事件。 - 打印初始化状态:延迟 1 秒后,向串口打印 AP 的 SSID、密码及 “初始化成功” 提示。
loop () 函数 :仅通过 delay(1000) 执行 1 秒延迟,减少 CPU 不必要的资源消耗。
05_WIFI_STA
【程序说明】
- 实现 ESP32-C5-N16R4 开发板可连接指定 WiFi(SSID:waveshare,密码:12345678)并打印连接信息,调用心知天气 API 获取数据后格式化输出响应,同时支持 WiFi 断线自动重连,每 5 分钟自动请求一次 API。
【硬件连接】
- 将开发板连接电脑
【代码分析】
setup () 函数 :完成串口初始化与 WiFi 连接配置,为后续获取天气数据提供网络基础
- 初始化串口:通过
Serial.begin(115200)开启串口通信,等待串口连接就绪。 - 连接 WiFi:调用
WiFi.begin(ssid, password)连接指定 WiFi(SSID:"waveshare",密码:"12345678"),通过循环等待连接成功(期间打印.提示)。 - 打印连接信息:连接成功后,向串口输出 WiFi 连接详情,包括连接的 SSID、密码及设备分配的 IP 地址,用分隔线格式化显示。
loop () 函数 :循环执行 WiFi 状态检查与天气数据获取逻辑,实现定时更新功能
- WiFi 状态维护:检查 WiFi 连接状态,若断开则调用
WiFi.reconnect()重新连接,避免因网络中断导致功能失效。 - 连接 API 服务器:通过
client.connect(host, httpsPort)连接 Seniverse API 服务器(api.seniverse.com,端口 443),跳过证书验证(client.setInsecure())用于测试。 - 发送与接收请求:通过
client.print(request)发送天气数据请求,等待响应(设置 5 秒超时),读取并按行打印响应内容。 - 定时循环:关闭连接后,通过
delay(300000)等待 5 分钟,再重复执行上述流程,实现定时获取天气数据的效果。
06_WIFI_DHCP
【程序说明】
07_WIFI_StaticIP
【程序说明】
08_lvgl8.4.0_demo
2.4inch LCD Module ESP32-C5-N16R4 VCC 3V3 GND GND DIN GPIO2 CLK GPIO1 CS GPIO5 D/C GPIO3 RST GPIO4 BL GPIO6
【程序说明】
- 该程序实现了通过lvgl_v8.4.0以及GFX_Library_for_Arduino(GFX图形化库)和SensorLib(传感器库)实现文本显示效果
【代码分析】
- 1:引脚宏定义:通过宏定义指定屏幕与 ESP32-C5 连接的各类功能引脚,为硬件通信建立引脚映射关系。
- 2:硬件 SPI 总线初始化(第 29 行):创建 Arduino_HWSPI 类型的总线对象 bus,指定 SPI 通信所需的 DC、CS、SCK、DIN 引脚,封装硬件 SPI 通信的底层细节。
- 3:ILI9341 屏幕驱动初始化(第 30-32 行):创建 Arduino_ILI9341 类型的屏幕驱动对象 gfx,传入 SPI 总线对象 bus、复位引脚 LCD_RST、屏幕旋转角度(0)、是否为 IPS 屏(false),完成屏幕驱动的实例化,后续可通过 gfx 控制屏幕初始化、绘图等操作。
- .ino文件中更多功能演示,请前往lvgl_cong.h开启对应宏定义
- lv_conf.h文件
09_lvgl9.2.2_demo
2.4inch LCD Module ESP32-C5-N16R4 VCC 3V3 GND GND DIN GPIO2 CLK GPIO1 CS GPIO5 D/C GPIO3 RST GPIO4 BL GPIO6
【程序说明】
Flash固件的烧录与擦除
资料
原理图
程序
软件
Arduino
CH343
串口
数据手册
ESP32-C5
CH343
官方文档
ESP32官方文档
- ESP32-C5-DevKitC-1 乐鑫官方开发板用户指南(中文)
- 乐鑫官方开发板用户指南(英文)
- ESP32-C5 硬件设计指南(中文)
- ESP32-C5 硬件设计指南(英文)
- ESP32-Arduino官方文档
- ESP-IDF官方文档(中文)
- ESP-IDF官方文档(英文)
FAQ
检查USB口的供电电压是否小于5V,一般情况下USB口的供电电压在4.9V以上,模块的两路USB口均可正常使用,若低于4.9V,则有可能出现供电不足,usb口掉线的情况,此种情况须更换足电压的USB口使用。
可长按BOOT按键,同时按下RESET,然后松开RESET,再松开BOOT按键,此时模块可进入下载模式,可解决大部分无法下载的问题。



















