大夏龙雀DX-WF25(ESP32C2)蓝牙WIFI模块试用体验(Arduino)
模块尺寸跟引脚兼容常见的ESP8266 12-E/F模块,可以直接用现成的8266转接板,除了GPIO口名称不一样,其他特殊引脚,如电源,URAT,BOOT等是一致的。
使用非常简单,vcc接3.3v,gnd接地,rx连接ch340的tx,tx连接ch340的rx即可。
如果需要通过urat下载程序,只需要把io9(上图8266转接板的GPIO0引脚)的引脚接地就行(下载完程序记得断开io9跟gnd的连接,否则程序无法运行)。
芯片用的是ESP32C2-H2(ESP8684 2MB),很遗憾这颗芯片比较新又比较冷门,所以资料不多,ESP官方有为其配备Arudino的开发库,但不知道为何没有开放,属于隐藏状态,需要自己开启。
同时也有CircuitPython支持,不过遗憾的是官方是为ESP8684-DevKitC-2-N4这个模组设计的,是4MB的Flash,直接烧录进去,会导致文件系统初始化失败。
Arduino官方:
1.增加esp官方支持,管理地址加入:https://espressif.github.io/arduino-esp32/package_esp32_index.json,然后arduino就会自动下载esp官方的包(该过程会比较慢,比较依赖网络),我这里已经下载过所以没有下载按钮
2.不出意外的话,开发板管理是无法找到ESP32C2的,因为官方并没有默认开放这个支持
3.按照官方的说明,手动编译ESP32C2的库支持并放入到Arduino目录
注:自己编译太麻烦了,这里可以用编译好的库文件,然后按照下面的教程放到Arduino里:esp32c2-arduino-libs.7z
Library Builder - - — Arduino ESP32 latest documentation
但是构建起来还是比较麻烦的,首先需要在Linux系统下,并且一堆依赖需要安装,python版本不对也容易编译失败,好在官方给出了通过docker编译的方式。
如果你觉得在自己的电脑上装docker也麻烦(更多的情况是由于和谐的原因导致在国内很难通过docker pull),那么可以利用微软github的CodeSpace云虚拟机来编译,非常方便。
随便找个github项目,然后通过这个路径进入到微软提供的CodeSpace云虚拟机 。
在CodeSpace里的终端下,执行以下命令:
docker run -it --rm -v $PWD:/arduino-esp32 -e TERM=xterm-256color espressif/esp32-arduino-lib-builder
然后就会进入ESP官方提供的图形界面编译工具
首先设置下编译的目标:Settings
目标我们选ESP32C2,把其他的都取消掉,然后勾上Copy to那一行(默认应该会勾上),编译后会将目标文件导出到我们的文件夹下,然后点保存。
点Cancel返回上一级,选Compile Static Librayies,就会开始构建ESP32C2的Arduino库,这个过程会比较漫长,可能需要半小时以上。
编译好后,会在你当前执行docker命令所在的文件夹下,生成一个tool/eps32c2的目录,比如我就是在esp32c2目录下执行的docker命令,那么编译后的文件夹结构就如下
其中tool/esp32c2这个目录,就是我们要的目标文件夹,把它拷贝到Arduino里就行了。
因为我们还在CodeSpace虚拟机里,所以得先弄出来,先把文件夹压缩成一个文件:
tar -czvf esp32c2.tar.gz tools/esp32c2/
然后把压缩好后的压缩包右键,下载到自己的电脑。
接下来在自己的电脑上,解压缩,把esp32c2文件夹拷贝到Aruino的目录,一般是:
C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\tools\esp32-arduino-libs\idf-release_vxxx版本不同这里可能不太一样
例如我的就是这样:
然后打开esp的板配置文件,将隐藏的esp32c2打开,路径一般也是:
C:\Users\你的用户名\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.x版本不同这里可能不同\boards.txt
在这个文件里找到 esp32c2.hide=true 这一行,把它注释掉或者删掉:
然后重启Arduino,就可以在开发板里找到esp32c2了
3.跑个闪灯demo看看:
// WF25上的led灯连接在GPIO8上 #define LED_BUILTIN 8 void setup() { pinMode(LED_BUILTIN, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); delay(100); digitalWrite(LED_BUILTIN, LOW); delay(100); }
烧录时显示Connetcing....的时候,板子上的io9引脚要接下地,才能进入urat下载模式
烧录完后断开io9与gnd的连接,没错的话就能看到灯在闪烁了。
Platformio:
参考:使用platformio平台Arduino开发ESP32-C2_platformio arduino-CSDN博客
Micropython / CircuitPython:
现找到的支持ESP32-C2 Python的固件有:
CircuitPython官方: NodeMCU ESP32-C2
CircuitPython官方: ESP8684-DevKitC-2-N4
米思齐MiciroPython: Mixly 3.0 rc0 For Python ESP32-C2
基本都能烧录进去固件并启动Python的Repl,但问题就是,上面的固件都是ESP32-C2-H4的,4MB的Flash版本,强行烧进去,会导致无法正常初始化文件系统,启动后无法正常操作。
所以需要手动修改为2MB的版本并编译,这里提供用CircuitPython官方的ESP8684-DevKitC-2-N4修改方法:
这里有已经编译好的版本:adafruit-circuitpython-espressif_esp8684_devkitc_02_n2-en_US-9.2.4.bin
工程路径:https://github.com/adafruit/circuitpython 推荐用github的CodeSpace编译,不用拉到本地 安装子模块: git submodule update --init lib/* git submodule update --init tools/* git submodule update --init extmod/* ports目录下是各种芯片厂商的文件夹,需要使用哪个芯片的就拉取哪个,不用全部下载,这里以esp的为例 git submodule update --init ports/espressif/* 安装依赖: pip install minify_html pip install jsmin sudo apt-get install ninja-build 安装乐鑫ESP-IDF: https://docs.espressif.com/projects/esp-idf/zh_CN/latest/esp32/get-started/linux-macos-setup.html 依赖:sudo apt-get install git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 开发工具:.../circuitpython/ports/espressif/esp-idf (f388200aba) $ ./install.sh esp32c2 设置工具环境变量: .../circuitpython/ports/espressif/esp-idf (f388200aba) $ . ./export.sh 注:该方式是临时的,退出shell后要重新export一次,否则下面make的时候找不到对应的gcc 修改配置: ports>espressif>boards>espressif_esp8684_devkitc_02_n4>mpconfigboard.mk CIRCUITPY_ESP_FLASH_SIZE = 4MB -> 2MB 编译: ../circuitpython/ports/espressif (main) $ make BOARD=espressif_esp8684_devkitc_02_n4 注:重新改了固件尺寸后,要把固件编译后生成的目录(../circuitpython/ports/espressif/build-espressif_esp8684_devkitc_02_n4)删了重头来一次。 使用make clean也不行,编译会奇奇怪怪的失败,可能是make clean也没有重新修改分区表 编译成功: Memory region Used Size Region Size %age Used iram0_0_seg: 60 KB 191344 B 32.11% iram0_2_seg: 1021726 B 4194272 B 24.36% dram0_0_seg: 113120 B 191344 B 59.12% drom0_0_seg: 1236395 B 4194272 B 29.48% esptool.py v4.8.1 Creating esp32c2 image... Merged 1 ELF section Successfully created esp32c2 image. 1256528 bytes used, 185264 bytes free in flash firmware space out of 1441792 bytes (1408.0kB). 0 bytes used, 16384 bytes free in 'Internal SRAM 0' out of 16384 bytes (16.0kB). 113120 bytes used, 149024 bytes free in 'Internal SRAM 1' out of 262144 bytes (256.0kB). 固件路径: ../circuitpython/ports/espressif/build-espressif_esp8684_devkitc_02_n4/firmware.bin 查看固件信息是否正确: esptool image_info .\firmware.bin esptool.py v4.8.1 File size: 1322064 (bytes) Detected image type: ESP32-C2 Image version: 1 Entry point: 403acb70 3 segments Segment 1: len 0x00120 load 0x3fcd5c80 file_offs 0x00000018 [DRAM,BYTE_ACCESSIBLE] Segment 2: len 0x008dc load 0x403acb70 file_offs 0x00000140 [IRAM] Segment 3: len 0x01c28 load 0x403aeb70 file_offs 0x00000a24 [IRAM] Checksum: 10 (valid) Validation Hash: 65a392f7b3bf01a0b75d4d3405d5f18cc24fad5eec47b9fe58b1e26ca044b76f (valid)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET10 - 预览版1新功能体验(一)
2016-01-20 使用Cocos2d-x实现微信“天天爱消除”炫耀button特效