本帖最后由 无垠的广袤 于 2025-9-27 10:19 编辑
【FireBeetle 2 ESP32-C5】 介绍、固件上传、工程测试
本文介绍了 FireBeetle 2 ESP32-C5 IO 套装的相关信息,包括参数特点、资源分布、原理图及产品应用等,并结合固件上传流程实现 MicroPython 开发,通过一系列工程测试展示了该开发板的强大性能和多场景应用。
介绍
FireBeetle 2 ESP32-C5 IO套装包括两部分:Firebeetle 2 ESP32-C5 开发板和其专用的IO扩展底板。 IO扩展板方便快速连接各种传感器外设,让Firebeetle 2 ESP32-C5开发板到手即用,无需焊接。 FireBeetle 2 ESP32-C5 是一款搭载乐鑫 ESP32-C5 模组的低功耗 IoT 开发板,面向智能家居和广泛物联网场景,集高性能计算、多协议支持与智能电源管理于一体,为各种部署需求提供高可靠性、高灵活性与长续航的解决方案。提供 双频 Wi-Fi 6 连接(2.4 和 5 GHz) 以及蓝牙 5、Thread 和 Zigbee,便于无缝集成到智能家居平台 Home Assistant 等开源系统。 FireBeetle 2 ESP32-C5 IO 扩展套件是一个先进的开发平台,将强大的 FireBeetle 2 ESP32-C5 与专用的 IO 扩展扩展板相结合。它专为下一代物联网应用而设计,提供尖端的无线性能、全面的协议支持和强大的电源灵活性。 该开发套件具有太阳能充电功能的智能电源管理系统和 23 μA 的超低深度睡眠电流。 可定制 Home Assistant 传感器节点、通过 MQTT 报告的太阳能户外显示器,甚至是多协议 Zigbee/Thread 网关。
外观参数处理器:RISC-V单核处理器 时钟频率:240 MHz 内存:384 KB 电子模块: 320 KB 闪存:4 MB LP SRAM:16 KB
资源板载资源分布扩展板分布
引脚功能应用Matter 智能设备 离网气象站 多协议物联网网关 原型互动艺术和可穿戴设备
主控
ESP32-C5 是行业首款支持 2.4&5 GHz 双频 Wi-Fi 6、Bluetooth 5 (LE) 和 IEEE 802.15.4 (Zigbee, Thread) 连接性能的 RISC-V MCU,专为需要高效无线传输的物联网应用设计。 芯片搭载 RISC-V 32 位单核处理器,主频高达 240 MHz,内置 384 KB SRAM、320 KB ROM。它拥有 29 个可编程 GPIO,支持所有常用外围设备,并保证高连接可靠性和优越的安全功能。
原理图供电主控电池管理DC-DC引脚固件上传
这里介绍使用 MicroPython 开发的方式,需上传 ESP32-C5 对应的二进制 *.bin 固件至开发板;
使用命令行烧录固件
电脑安装 Python 软件,终端命令行输入指令 pip3 install esptool==4.9.dev3 安装 esptool 烧录工具; 终端打开固件所在文件夹,执行指令 esptool --chip esp32c5 -b 921600 --before default_reset --after hard_reset write_flash 0x2000 FireBeetle_2_ESP32-C5.bin
工程测试
包括 GPIO、UART、IIC、SPI、WiFi、Bluetooth 等基本功能测试。
BlinkThonny IDE 新建文件,添加如下代码并运行
- import time
- from machine import Pin
-
- led=Pin(15,Pin.OUT)
-
- while True:
-
- led.value(1)
- time.sleep(0.2)
- led.value(0)
- time.sleep(0.2)
复制代码
板载 LED 闪烁; UART 串口这里通过串口连接雷达模块,实现串口接收雷达数据并终端打印的效果。 硬件连接[td]
ESP32-C5 | Radar module | Note | 3.3V | VCC | Power | GND | GND | Ground | TXD | RXD | Transmit data | RXD | TXD | Receive data |
Thonny IDE 新建文件,添加如下代码并运行
- from machine import UART, Pin
- import time
-
- uart = UART(1, baudrate=115200, tx=Pin(11), rx=Pin(12))
-
- print("Serial Monitor Started")
-
- while True:
- if uart.any():
- data = uart.readline()
- if data:
- text = data.decode('utf-8')
- print(text, end='')
-
- time.sleep_ms(10)
复制代码
终端打印 UART 串口接收到的雷达距离数据; IIC 通信
这里通过驱动 IIC 协议 OLED 显示进行 IIC 测试。
硬件连接[td]
ESP32-C5 | OLED | Note | GND | GND | Ground | 3.3V | VCC | Power | SCL (Pin10) | SCL | Serial clock | SDA (Pin9) | SDA | Serial data |
Thonny IDE 新建文件,添加如下代码并运行
- from machine import Pin, I2C
- from ssd1306 import SSD1306_I2C
-
- i2c = I2C(0,sda=Pin(9), scl=Pin(10), freq=400000)
-
- devices = i2c.scan()
- try:
- oled = SSD1306_I2C(128, 64, i2c,addr=devices[0])
- oled.text("hello world", 0, 0)
- oled.show()
- except Exception as err:
- print(f"Unable to initialize oled: {err}")
复制代码
OLED 显示文字信息 SPI 通信
这里通过驱动 SPI 协议 OLED 显示进行 SPI 测试。
硬件连接[td]
ESP32-C5 | SPI OLED | Note | GND | GND | Ground | 3.3V | VCC | Power | SCK (Pin23) | SCK | Serial Clock | MOSI (Pin24) | MOSI | Master Output Slave Input | RES (Pin3) | RES | Reset | DC (Pin2) | DC | Data | CS (Pin4) | CS | Chip Select |
Thonny IDE 新建文件,添加如下代码并运行
- from machine import Pin, SPI
- import ssd1306 # 导入OLED驱动模块
- import time
-
- # 初始化SPI接口
- spi = SPI(1, baudrate=10000000, polarity=0, phase=0, sck=Pin(23), mosi=Pin(24), miso=None)
- # 初始化控制引脚
- dc = Pin(2, Pin.OUT)
- res = Pin(3, Pin.OUT)
- cs = Pin(4, Pin.OUT)
-
- # 初始化OLED对象
- oled = ssd1306.SSD1306_SPI(128, 64, spi, dc, res, cs)
-
- # 显示内容
- oled.text("Hello, World!", 0, 0, 1)
- oled.text("RP2350", 0, 16, 1)
- oled.show()
复制代码
显示效果 WiFi 连接
Thonny IDE 新建文件,添加如下代码并运行
- import network
- import time
-
- SSID = 'xxx'
- PASSWORD = 'xxx'
-
- def connect_wifi():
- wlan = network.WLAN(network.STA_IF)
- wlan.active(True)
- if not wlan.isconnected():
- print('正在连接WiFi...', end='')
- wlan.connect(SSID, PASSWORD)
- while not wlan.isconnected():
- print('.', end='')
- time.sleep(1)
- print('\n网络信息:', wlan.ifconfig())
-
- connect_wifi()
复制代码
终端打印 WiFi 连接信息以及获取到的 ip 地址; 蓝牙连接
Thonny IDE 新建文件,添加如下代码并运行
- from machine import Pin
- import bluetooth, struct
-
- _IRQ_CENTRAL_CONNECT = 1
- _IRQ_CENTRAL_DISCONNECT = 2
- _IRQ_GATTS_WRITE = 3
-
- UART_UUID = bluetooth.UUID("6E400001-B5A3-F393-E0A9-E50E24DCCA9E")
- UART_TX = bluetooth.UUID("6E400003-B5A3-F393-E0A9-E50E24DCCA9E")
- UART_RX = bluetooth.UUID("6E400002-B5A3-F393-E0A9-E50E24DCCA9E")
-
- ble = bluetooth.BLE()
- ble.active(True)
-
- def bt_irq(event, data):
- if event == _IRQ_CENTRAL_CONNECT:
- print("BT connected")
- elif event == _IRQ_CENTRAL_DISCONNECT:
- print("BT disconnected")
- _advertise()
- elif event == _IRQ_GATTS_WRITE:
- _, attr_handle = data
- msg = ble.gatts_read(attr_handle)
- print("recv:", msg)
-
- def _advertise():
- ble.gap_advertise(100, adv_data=_adv_payload())
-
- def _adv_payload():
- # payload
- name = b"ESP32-C5 BLE"
- return bytearray((2, 0x01, 0x06, 1 + len(name), 0x09)) + name
-
- ble.irq(bt_irq)
- ble.gatts_register_services(((UART_UUID, ((UART_TX, bluetooth.FLAG_NOTIFY),
- (UART_RX, bluetooth.FLAG_WRITE)),),))
- _advertise()
复制代码
打开手机蓝牙,扫描周围设备,发现并连接 ESP32-C5 BLE 设备; 离线运行
要使 MicroPython 脚本脱离电脑也可以运行,需要将 MicroPython 脚本保存到 MicroPython 设备,并命名为main.py ,复位即可自动运行程序;
总结
本文介绍了 FireBeetle 2 ESP32-C5 IO 套装的相关信息,包括参数特点、资源分布、原理图及产品应用等,并结合固件上传流程实现 MicroPython 开发,通过一系列工程测试展示了该开发板的强大性能和多场景应用,为相关产品的开发设计和快速应用提供了参考。
|