引⾔
⽉初,收到了DFRobot的新产品 FireBeetle2-ESP32-C5 开发板,ESP32系列在开发者社区中有着⼴泛的应⽤,这是⼀款基于ESP32-
C5芯⽚的⾼性能物联⽹开发板,可玩性极⾼,本⽂将探讨在MicroPython环境下的智能配⽹实现,在此抛砖引⽟。
☺️ 开箱啦

这块板⼦延续DFRobot的设计⻛格,很是精美,还配套了扩展IO板。


参数信息:
1.主频⾼达240MHz的RISC-V单核处理器
2.384KB SRAM + 320KB ROM + 4MB Flash
3.⽀持2.4GHz和5GHz双频Wi-Fi 6,乐鑫⾸款双频Wi-Fi 6芯⽚,速率最⾼可达150Mbps
4.⽀持Type-C、5V DC及太阳能充电,集成电池电量监测和3.3V可控电源输出、低功耗
5.蓝⽛协议:Bluetooth 5、Bluetooth mesh,速率最⾼可达2 Mbps
IO资源:
1.数字I/O x18
2.LED PWM 控制器 6个通道
3.SPI x1
4.UART x3 (LP UART x1)
5.I2C x2 (LP I2Cx1)
6.I2S x1
7.红外收发器:发送通道 x5、接收通道 x5
8.1x 12 位 SAR ADC, 7个通道
9.DMA 控制器,3个接收通道和3个发送通道
详细参数可以查看官⽅WIKI: https://wiki.dfrobot.com.cn/SKU_DFR1236_Firebeetle_2_ESP32_C5_Development_Board_IO_Expansion_Kit
💻 环境搭建
使⽤官⽅ esptool ⼯具,该⼯具基于 Python 开发,需要具备 Python 开发环境。
尤其需要注意的是本次评测的开发板ECO1,正式量产版本的是ECO2,因此烧录⼯具版本号最⼤⽀持esptool.py
# 创建项目路径
mkdir suroy/wifi_manager
# 创建虚拟环境 (python版本需要>=3.7)
python3 -m venv venv
# 激活环境
source venv/bin/activate
# 安装依赖项
pip install
# 擦出flash
esptool.py erase_flash
# 烧录固件(记得修改设备名和文件路径)
# 串口设备名: /dev/cu.usbmodem101
# 固件文件路径: firmware_eco1.bin
esptool.py --chip esp32c5 -p /dev/cu.usbmodem101 -b 460800 --before default_reset --after hard_reset write_flash --flash_mode dio --flash_size 4MB --flash_freq 80m --erase-all 0x2000 firmware_eco1.bin
💡 WI-FI配⽹实现
设计思路
传统的物联⽹设备WiFi配⽹通常有以下⼏种⽅式:
1.硬编码配⽹:直接在代码中写⼊WiFi信息
2.Serial配⽹:通过串⼝命令⾏配置
3.SmartConfig:通过⼿机APP发送WiFi信息
4.AP配⽹:设备创建热点,⽤户连接后配置
我选择实现AP配⽹⽅案,因为它⽤户体验好,不需要额外APP,且代码实现相对简单。
主要⼯作流程

⼀键配⽹流程
1.⾸次使⽤:设备⾃动进⼊AP模式
2.⼿机连接:连接到 SOUROY_AP 热点(密码:88888888)
3.访问配置⻚:浏览器访问 http://192.168.4.1
4.选择WiFi:从下拉列表选择要连接的⽹络
5.输⼊密码:输⼊WiFi密码
6.完成配⽹:设备⾃动保存配置并连接
注:若⽆响应,建议直接 reset 重试

🕹️ 快速应⽤到项⽬
开源地址: https://github.com/zsuroy/smartlink-mp
获取并上传驱动
# 克隆仓库
git clone https://github.com/zsuroy/smartlink-mp
# 上传仓库中的 wifi_manager.py 文件到 esp32
2. 编写入口
import time
from machine import Pin
# ====WI-FI 配网====
from wifi_manager import WiFiManager
wm = WiFiManager("SUROY_AP", "88888888") # 初始Wi-Fi热点配置
if not wm.connect():
led.off()
print("配网完成...")
# ====WI-FI 配网====
while True:
led.on()
time.sleep(0.5)
led.off()
time.sleep(0.5)
💭 总结
智能配⽹⽅案常⻅于Arduino和基于IDF开发的版本,⽽本⽂基于MicroPython实现了⼀套轻量级易于集成的⽅案,解决了IoT开发中的⼀⼤痛点,但说实话,这只是打开了第⼀道⻔,后续还可以有许多的改进⽅⾯,在此抛砖引⽟,给各位⼤佬⾜够的发挥空间。
博客同步更新: https://suroy.cn/embeded/firebeetle2esp32c5-uses-micropython-for-wifi-distribution-network.html
评论