tqcq 84341c5b31
Build Firmware / build (esp32-c3-devkitm-1) (push) Successful in 2m17s
Build Firmware / build (esp32dev) (push) Successful in 2m28s
ci: install esptool in venv for merge-bin step
2026-07-12 00:52:54 +08:00

ClockWave - 电波表信号发射器

基于 ESP32/ESP32-C3 的多功能低频电波时钟信号发射器。

这个项目可以把你的 ESP32 开发板变成一座小型长波授电台,让身边的电波表、电波钟自动对时。支持的信号覆盖日本、美国、德国、台湾、英国和中国河南的多套标准。

支持信号

信号 频率 地区
JJY-E 40 kHz 日本
JJY-W 60 kHz 日本
WWVB 60 kHz 美国
DCF77 77.5 kHz 德国
BSF 77.5 kHz 台湾
MSF 60 kHz 英国
BPC 68.5 kHz 中国河南

ESP32 接线

功能 GPIO 引脚
天线 GPIO26
蜂鸣器 GPIO27
LED GPIO25

ESP32-C3 接线

功能 GPIO 引脚
天线 GPIO3
蜂鸣器 GPIO4
LED GPIO5

天线说明

使用约 30cm 的环形天线,串联电阻限流。具体参数可参考 nisejjy 的设计。天线方向会影响电波表接收效果,建议在使用过程中适当调整角度和位置。

编译方法

本项目使用 PlatformIO 构建。

编译 ESP32 经典版:

pio run -e esp32dev

编译 ESP32-C3

pio run -e esp32-c3-devkitm-1

烧录方法

方法一:PlatformIO 烧录

pio run -t upload

方法二:esptool 命令行烧录

Gitea Actions 页面下载 firmware.bin,然后:

pip install esptool
esptool.py write_flash 0x0 firmware.bin

方法三:浏览器刷写(零安装)

无需安装任何工具,直接在浏览器中刷写:

  1. 用 USB 数据线连接开发板
  2. 打开 esptool-js 网页
  3. 选择波特率 460800,连接设备
  4. 加载下载的 firmware.bin,写入地址 0x0
  5. 点击 Flash 开始烧录

需要使用 Chrome 或 Edge 等支持 Web Serial API 的浏览器。

方法四:TinyUF2 拖拽刷写(U 盘模式)

注意:TinyUF2 目前仅支持 ESP32-S2 / ESP32-S3,不支持 ESP32-C3。 ESP32-C3 用户请使用上面三种方法。

刷入 TinyUF2 bootloader 后,可以将 ESP32-S2/S3 开发板当作 U 盘,直接拖拽 .uf2 文件完成固件更新。

TinyUF2 releases 下载对应板型的固件,首次用 esptool 刷入后,以后双击 RESET 即可进入 U 盘模式拖刷。

首次配置

上电后,ClockWave 会进入 AP 模式。用手机或电脑连接:

项目 默认值
WiFi 名称 RadioStation_XXXXXX
密码 12345678
配置页面 http://192.168.4.1

连接成功后打开浏览器访问 192.168.4.1,即可配置目标时区、信号台站以及 WiFi 连接信息。

NTP 服务器

固件通过以下服务器获取标准时间:

服务器 说明
ntp.aliyun.com 阿里云 NTP 服务器
pool.ntp.org 全球公共 NTP 池

网关地址会通过 WiFi.gatewayIP() 动态获取。通常情况下,你的路由器会自动作为兜底 NTP 服务器使用。

台站调度

支持在 Web 界面中设置要发射的台站。当多个台站的发射时间重叠时,系统会每 5 分钟自动轮换,避免冲突。

持续集成

本项目使用 Gitea Actions 自动构建。每次推送代码到 master 分支后,Actions 会自动运行编译流程。你可以在 Actions 页面下载编译好的 .bin 固件文件。

致谢

这些项目为 ClockWave 提供了核心思路和参考实现。

S
Description
No description provided
Readme 59 KiB
Languages
C++ 100%