ESP32-DIV 的完整开发指南
ESP32-DIV 最初是一个个人工具,是我为了解决一个设备同时支持 WiFi、蓝牙、Sub-GHz、红外线、RFID 和 GPS 的需求而开发的。ESP32-DIV 是一款基于 ESP32-S3 构建的开源多频段无线工具包,支持 Wi-Fi、BLE、2.4GHz、Sub-GHz、红外线、RFID/NFC 和 GPS 等多种通信协议。它集成在一款紧凑的手持设备中,并配有触摸屏用户界面。无论您是分析无线网络流量、测试信号抗干扰能力,还是开发自己的射频工具,ESP32-DIV 都能为您提供一个统一的平台,轻松完成所有操作。
硬件
ESP32-DIV 有三种配置。v1 是最初的版本,小巧一体化设计,是入门级的理想选择。v2 是目前的主板型号,布局更优,连接更可靠,并支持扩展板扩展系统。本指南中我将使用的是 v2 版本。CYD 便宜的黄色显示屏是一款预装触摸屏的 ESP32 开发板。如果你想在不自行制作硬件的情况下尝试固件,CYD 是最简单且最经济的选择。
主板
核心是ESP32-S3双核处理器,拥有充足的闪存空间,并原生支持WiFi和蓝牙。此外:
•ILI9341 TFT 液晶屏搭配 XPT2046 触摸显示与触摸控制器
•IP5306 电池充电与保护
•CP2102 USB转串口,用于刷机和调试
•PCF8574 用于物理按钮的 I/O 扩展器
•WS2812 NeoPixels 状态指示灯
•外部天线连接器和蜂鸣器
盾牌
屏蔽罩安装在主板下方,并增加了射频硬件:
•3个NRF24L01模块 2.4GHz 扫描与伪造
•CC1101 子GHz捕获、回放和干扰
•红外收发器捕获并重放遥控信号
•PN532 RFID 和 NFC(新增于新硬件版本)
•NEO-6M GPS 模块(全新)
•多天线设计,实现更远的覆盖范围
新的防护罩设计有两种版本。第一种是直接将模块焊接固定,相关文件已上传至 GitHub。第二种更为复杂,目前仍在开发中,但为未来引入许多新功能打开了大门。
刷写固件
三种获取板载固件的方法。
Web Flasher(推荐)
在 Chrome 或 Edge 浏览器中访问 cifertech.github.io/ESP32-DIV。选择你的板卡版本,通过 USB 数据线连接(不要使用仅用于充电的线缆,这是最常见的问题),点击“Flash”,选择串口,然后查看进度条。大约 30 到 60 秒后即可完成。无需驱动程序、无需 IDE、无需终端。如果端口列表中没有显示任何内容:先尝试更换其他数据线,然后为你的操作系统安装 CH340 或 CP2102 驱动程序。
DIV Flasher 桌面应用程序
专为本项目开发的 Windows 图形界面应用程序。从仓库下载后运行 ESP32-DIV-Flasher.bat 文件,选择您的 COM 端口和板型预设,点击“工具箱”标签页下的“刷新列表”,选择固件版本,然后点击“下载发布版”。程序会直接从 GitHub 下载 .bin 文件,并自动填写路径。首次安装前请先确认清除全部闪存,再点击“刷入固件”。操作日志将实时显示所有信息。按 Ctrl+Enter 进行刷机。
Arduino IDE
简要版本:安装 Arduino IDE,特别在 v2.0.10 版本中添加 ESP32 板件包,将 platform.txt 替换为仓库中 Flash File 文件夹内的文件,并将仓库中的 Libraries 文件夹复制到你的 Arduino 库文件目录中。不要使用 Library Manager 的版本,它们与 DIV 不兼容。选择 ESP32 S3 开发模块,分区方案:Minimal SPIFFS,上传速度 921600。如果设备未自动进入下载模式,请按住 BOOT 键并按下 RESET 键。
导航
菜单按协议分类:WiFi、蓝牙、2.4GHz、Sub-GHz、红外线、RFID、GPS、系统。顶部状态栏显示WiFi状态、BLE状态、SD卡是否存在以及电池电量。
Wi-Fi
Packet Monitor 实时瀑布图显示所有14个信道的无线流量。WiFi Scanner 列出附近网络,包括SSID、信号强度、加密类型和信道。Beacon Spammer 通过虚假的SSID向空气中发送大量广播信号。可从SD加载自定义列表,或随机选择。Deauth Attack 发送断开连接帧,强制客户端离开网络。广播模式影响所有客户端,定向模式则针对单个设备。此外还有Deauth Detector,可检测并提醒你附近有人正在执行Deauth攻击。Captive Portal 拷贝网络名称,并向任何连接者提供伪造的登录页面。Probe Flood 使用探测请求对接入点进行猛烈攻击。
蓝牙
BLE扫描器可发现您周围隐藏和可见的BLE设备。BLE嗅探器可追踪MAC地址、RSSI值以及数据包数量随时间的变化。BLE欺骗器会广播虚假的BLE广告。Sour Apple会向苹果设备发送类似AirDrop的弹窗提示。BLE干扰器可同时干扰BLE和传统蓝牙信号。BLE橡胶鸭子板可作为蓝牙键盘使用,从SD卡中输入脚本并自动执行。使用DELAY、STRING、ENTER、GUI语法编写一个.txt脚本,将其放入SD卡的/ducky文件夹,从菜单中选择即可运行。
2.4GHz
频谱分析仪实时监测全部128个通道,涵盖WiFi、Zigbee、自定义射频等。Protokill可根据需要干扰Zigbee、WiFi及其他2.4GHz协议。
Sub-GHz
CC1101 模块可处理 2.4GHz 以下频段的车库门、钥匙扣、射频遥控器和报警传感器等设备。Replay Attack 可捕获原始信号并进行回放,只需将遥控器对准设备,即可完成捕获、回放,操作简单快捷。Sub-GHz Jammer 能在有效范围内干扰 Sub-GHz 通信信号。保存的配置文件可将捕获到的信号存储并管理在 SD 卡中。
IR
将遥控器对准面板上的红外信号点,捕捉信号,实时显示在屏幕上,保存为配置文件,之后可随时回放。支持从SD卡浏览并加载已保存的遥控器配置。内置通用红外控制器,兼容品牌预设配置,支持SD卡导入,并配备遥控器风格界面。只需指向电视即可关闭,经典实用,每次都能正常工作。
RFID / NFC
PN532 可处理所有卡片操作。支持的类型包括:Mifare Classic、Mifare Ultralight、NTAG 和 ISO14443A。读卡器可读取 UID 和标签数据,并在屏幕上显示。卡片克隆功能可复制支持写入的标签。Dump 模式可在有密钥时读取整个扇区的数据。Decode Access 模式可解析卡片 Dump 中的访问位。Erase 模式可清除可写标签。Jam Reader 模式可干扰附近的 RFID 读卡器。Tag Disrupt / Disrupt Emulate 模式可实现高级干扰流程,用于物理安全测试。
GPS
NEO-6M 支持 GPS。将其连接到电路板上的 GPS 头部接口。Wardriver 会将 GPS 位置与 WiFi 和 BLE 观测数据以兼容 Wigle 的 CSV 格式记录到 SD 卡中。可导入 Wigle.net 或 Google 地图,以便在地图上查看您的观测结果。卫星扫描器可显示当前可视的卫星、各卫星信号强度以及定位诊断信息。冷启动建议:在户外放置 60 至 90 秒,并确保天空视野清晰。
系统工具
串行监视器可直接在TFT上镜像串行输出,无需笔记本电脑即可在现场进行调试。SD文件管理器可从设备访问并管理SD卡中的文件。触控校准功能可在触摸目标感觉异常时重新校准触摸屏。设置包括亮度、亮色与暗色主题、NeoPixel行为以及背景扫描选项。
SD卡
格式为FAT32,最大32GB。固件期望此结构:
如果没有SD卡,所有功能仍然可以使用,但每次会话之间不会保存任何内容。
从源码构建
克隆仓库并打开示例代码。功能模块按协议分别组织在不同的.cpp文件中。根目录下的BoardConfig.h定义了v1、v2和CYD的引脚分配。要添加新功能:在相应的协议文件夹中创建.cpp和.h文件,在主示例代码中添加菜单条目,并使用BoardConfig.h来引用硬件特定的引脚。保持模块化,每个文件对应一个功能。完整的编译说明和arduino-cli命令请参见Wiki。
故障排除
未检测到设备,请先更换数据线。然后安装CH340或CP2102驱动程序。显示屏无法启动,可能是平台错误、txt文件缺失或库文件替换问题。请严格按照Wiki的设置操作。NRF24无法工作时,请检查SPI接线,并确认电源为3.3V而非5V。假冒模块较为常见。GPS无信号时,请外出等待90秒,确保上方天空清晰。SD卡未挂载时,请格式化为FAT32,重新插入卡片,尝试其他品牌。OTA更新失败时,请靠近路由器并重试。开机循环时,使用esptool.py --chip esp32s3 erase_flash清除闪存,然后重新刷写。
请使用您的板卡版本、固件版本以及串口监视器输出信息提交漏洞报告。在编写新功能代码之前,请先开启讨论。在提交拉取请求(PR)前,务必在真实硬件上进行测试,仅靠编译检查是不够的。每个PR只包含一个功能,保持专注。所有贡献者的名字都会在代码仓库中列出。如果您的代码被合并,您的名字就会出现在其中。
由NextPCB赞助
感谢 NextPCB 支持本项目。如果您要自行制作 ESP32-DIV,请上传仓库中的 Gerber 文件并直接下单。
最终思考
ESP32-DIV 是目前该项目最完整的版本。WiFi、蓝牙、2.4GHz、Sub-GHz、红外线、RFID、NFC、GPS,全部集成于一块板上,所有功能均为开源,通过浏览器在不到一分钟内即可完成刷写。硬件将持续进化。新的扩展板版本仍在开发中,一旦发布将带来诸多新功能。固件拥有活跃的贡献者社区,新提交的补丁会定期到来。如果你制作了设备,请分享;如果发现错误,请创建问题报告;如果你想添加新功能,请先发起讨论。以上就是本期内容。
本文编译自hackster.io





