示例16:RTC时钟(系统NTP)
大约 3 分钟
示例16:RTC时钟(系统NTP)
实验概述
ESP32 内部没有独立的 RTC 时钟芯片(断电丢失),但通过 WiFi 连接后可使用 NTP(网络时间协议)自动同步网络时间。FastBee 在联网后自动进行 NTP 时间同步,可用于定时任务和时间显示。
硬件接线
本实验无需额外硬件,利用 ESP32 的 WiFi 联网能力获取 NTP 时间。
如需断电保持时间,请参考实验17(DS1302外部RTC)。
JSON 配置示例
时间相关功能通过外设执行的定时触发器使用:
{
"peripherals": [
{
"id": "tm1637_clock",
"name": "时钟显示",
"type": 47,
"enabled": false,
"pins": [18, 19],
"params": { "brightness": 4 }
}
]
}外设执行联动
场景1:每秒更新时间显示(定时触发)
功能:每秒更新数码管显示当前系统时间(带冒号闪烁)
Web界面配置步骤
步骤1:确保已配置TM1637数码管
- 外设ID:
tm1637_clock - 类型:数码管显示
步骤2:创建规则
- 点击左侧菜单 外设配置 → 切换到 外设执行管理 标签
- 点击 新增规则 按钮
- 填写基础配置:
- 规则名称:
时钟显示 - 上报数据:✅ 启用
- 启用:✅ 启用
- 规则名称:
步骤3:配置触发器
点击 添加触发 按钮
填写触发器配置:
字段 填写内容 说明 触发类型 选择 定时触发 定时更新 定时模式 选择 固定间隔 按毫秒间隔 间隔时间 10001秒更新一次
步骤4:配置动作
点击 添加动作 按钮
填写:
- 动作类型:选择 显示时间
- 目标外设:选择
tm1637_clock - 显示冒号:✅ 启用
点击 保存 按钮
场景2:每天6点自动开灯(Cron定时)
功能:每天早上6点自动开启LED灯
Web界面配置步骤
- 创建规则,名称:
每天6点开灯 - 触发器配置:
- 触发类型:选择 定时触发
- 定时模式:选择 Cron表达式
- Cron表达式:
0 6 * * *(每天6:00)
- 动作配置:
- 动作类型:选择 低电平(共阳LED)
- 目标外设:选择
led_d1
- 点击 保存
Cron表达式示例
| Cron表达式 | 说明 | 执行时间 |
|---|---|---|
0 6 * * * | 每天6:00 | 每天早上6点 |
0 18 * * * | 每天18:00 | 每天傍晚6点 |
*/5 * * * * | 每5分钟 | 每隔5分钟 |
0 */2 * * * | 每2小时 | 每隔2小时整点 |
注意事项
- NTP 依赖网络:首次启动需联网获取时间,离线模式下时间从上次同步继续计时
- 精度:NTP 同步精度约 ±50ms,本地晶振漂移约 ±2ppm
- 断电丢失:ESP32 断电后 RTC 时间清零,重新上电需再次 NTP 同步
- Cron 表达式:支持标准5字段格式:分 时 日 月 周
- 时区:系统默认 UTC+8,可在设备配置中修改
