亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

高精度 LED 矩阵时钟:DS3231 RTC + BME280 环境监测 + BH1750 光敏自适应亮度 + ESP-01 NTP 对时

核心元件

Arduino Nano R3×1
DS3231M RTC 模块 (需拔除充电电阻防电池爆炸)×1
BME280 大气传感器 (温湿度+气压)×1
BH1750 光强传感器 (自动调节屏幕亮度/熄屏)×1
MAX7219 32x8 LED 点阵模块 (4 个 8x8 级联)×1
ESP-01 模块 (可选,用于 NTP 网络校时)×1
LM3940IT-3.3 (3.3V LDO 供电 ESP-01)×1
电平转换板 (5V↔3.3V, ESP-01 必需)×1
10μF 电容 ×2、轻触按键 ×4各若干

项目亮点

基于 Nick 的 Mini LED Word Clock (https://123led.wordpress.com/mini-led-clock/) 二次开发,主要增强:

接线速查

I2C 总线 (A4=SDA, A5=SCL, 3.3V) : DS3231, BME280, BH1750
LED 矩阵 (SPI) : CLK=D11, CS=D10, DIN=D12, VCC=5V
按键 : D2=Menu, D3=Date/+, D4=Temp/-, D5=Display
ESP-01 (软串口) : TX→D7, RX→D6 (需电平转换), CH_PD→3.3V, RST→D8

关键可配参数 (均可通过菜单修改并存入 EEPROM)

// 显示设置
byte intensity = 2;          // [200] 默认亮度 0-15
bool auto_intensity = 1;     // [209] 启用光敏自动调光
byte display_mode = 5;       // [202] 熄屏模式 0=常亮 1=常灭 2-5=按小时熄屏
byte hour_off_1 = 21, hour_off_2 = 22, hour_off_3 = 23; // 可选熄屏小时

// 字体设置
byte font_style = 2;         // [203] 大字体风格 0-5
byte font_offset = 1;        // [204] 字体偏移
byte font_cols = 6;          // [205] 字体列数

// 时制与网络
bool ampm = 0;               // [208] 0=24h 1=12h
bool dst_mode = 1;           // [210] 启用夏令时
bool ntp_mode = 1;           // [211] 启用 NTP
byte ntp_adjust = 1;         // NTP 时间补偿秒数
int8_t utc_offset = 0;       // [213] UTC 时区偏移
byte ntp_dst_hour = 2;       // 每日 NTP/DST 同步时刻 (建议 2 点)
byte ntp_max_retry = 3;      // NTP 重试次数
byte ntp_timeout = 45;       // 超时基数 (秒) * 重试次数

// WiFi 凭据 (编译期常量, 总长 ≤72 字节)
const byte ssid_len = 8;  const char ssid[] = "YourSSID";
const byte pass_len = 12; const char pass[] = "YourPassword";

运行日志示例 (串口监视器)

Arduino : Sent NTP request to ESP01
ESP01   : NTP request received from Arduino [attempt 1 of 3]
ESP01   : Connecting to SSID: TheInternets....connected
ESP01   : SSID: TheInternets, IP: 192.168.0.135, RSSI: -42 dBm
ESP01   : Sending NTP packet to 195.195.221.100 [attempt 1]
ESP01   : Sending NTP packet to 195.195.221.100 [attempt 2]
ESP01   : UNIX1562848457
ESP01   : Disabling WiFi....ok

代码仓库

完整源码 (含 Arduino 主程序、ESP-01 固件、字模数据) 托管于 GitHub:
https://github.com/Ratti3/miniclock

  • LEDClock32x8.ino - 主程序
  • ProgmemData.h - 字模/字符串存 PROGMEM
  • ESP-01_NTP.ino - ESP-01 端 NTP 客户端固件
  • LEDClock32x8_ESP01-NTP.ino - 合并版 (单 Nano 通过软串口驱动 ESP-01)

原理图

高精度 LED 矩阵时钟:DS3231 RTC + BME280 环境监测 + BH1750 光敏自适应亮度 + ESP-01 NTP 对时
注:原理图中未画出 BH1750,其 I2C 接线与 BME280 相同 (SDA→A4, SCL→A5, 3.3V)

成品图集

(此处放置多张组装过程与成品照片,展示 PCB 布局、外壳设计、菜单界面等)

制造工艺

  1. 自制 Arduino 伊斯兰祷告时间实时时钟
  2. Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
  3. 模拟指针风格 POV 时钟:Arduino Nano + 17 LED + 霍尔传感器
  4. DIY 热熔胶棒 LED 矩阵灯 — 打造多彩显示屏
  5. Windows 10 Cortana 蓝牙控制 Arduino LED:UWP 应用开发全流程
  6. Arduino 8×8 LED 矩阵翻页时钟 - DIY 实时时钟项目
  7. Arduino Uno驱动MAX7219级联8×8 LED矩阵:从入门到动画显示
  8. GPS 授时时钟:低成本高精度的 Arduino 卫星校时方案
  9. 蓝牙控制 8×8 LED 点阵滚动显示:Arduino Nano + MAX7219
  10. 用 Arduino Mega 与 MAX72XX LED 矩阵复刻经典《小行星》游戏
  11. 使用 Arduino 制作简易辉光管时钟——分步指南
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟