SERENA:基于 Arduino Mega 2560 与 TFT 触摸屏的多级密码报警系统
项目概述
SERENA 是一款运行在 Arduino Mega 2560 上的自制安防报警控制面板,配备 3.2 英寸 TFT 电阻触摸屏(UTFT/URTouch 库驱动),提供图形化交互界面。系统实现三级密码体系、自动布防倒计时、选项菜单(修改密码/自动布防延时/时间日期预留)、蜂鸣器按键音与状态指示,代码模块化、注释详尽,适合作为嵌入式人机界面教学案例。
核心功能
三级密码机制
- 4 位密码:手动布防(ARM)
- 5 位密码:部分撤防(DISARM,进入自动布防倒计时)
- 6 位密码:完全撤防(返回主菜单,解除所有防区)
- 默认密码分别为
1234、12345、111111,均可在选项菜单修改
自动布防倒计时
输入 5 位密码部分撤防后,启动倒计时(默认 40 秒,可在选项菜单修改),倒计时结束自动重新布防。适合“出门易忘布防”场景。倒计时实时显示于屏幕。
选项菜单 (三级页面)
- 页面 1:设置手动布防密码 (4 位)、设置自动布防密码 (5 位)
- 页面 2:设置完全撤防密码 (6 位)、设置自动布防延时 (1-9999 秒)
- 页面 3:预留设置时间/日期(代码框架已就绪,待后续完善)
每项修改均需“旧密码验证 → 新密码输入 → 确认 (YES/NO)”,防误操作。
界面与交互
- 主界面:标题栏“SERENA ALARM SYSTEM v1.01”,三大圆角按钮 [OPTIONS] [ARM] [DISARM]
- 密码输入界面:屏幕下方虚拟数字键盘 (0-9, CLEAR, OK/BACK/YES/NO/NEXT)
- 触摸坐标通过
URTouch库读取,按钮命中测试采用坐标范围判断 - 蜂鸣器 (D8) 每次按键发声 50 ms,增强手感
- 系统布防输出 (D9)、SERENA 状态指示 (D10)、外部按钮输入 (D13) 预留扩展