基于 Arduino Mega 与 Nextion 显示屏的交互式气象站
项目背景
想用绚丽图形做项目,却受限于 Arduino 存储空间?Nextion 智能屏将图形渲染内置于屏端,仅通过串口通信,大幅降低主控资源占用。本项目利用 Arduino Mega 2560 与 2.4 英寸 Nextion 屏,结合多种传感器与 433MHz 无线接收,打造功能丰富、界面美观的气象站:实时显示温湿度、气压、时间,支持历史曲线、天气预报背景切换、SD 卡数据记录、外部看门狗防死机。
核心硬件
| 模块 | 数量 | 备注 |
|---|---|---|
| Arduino Mega 2560 | 1 | 主控,多串口优势明显 |
| Nextion HMI 2.4" | 1 | 智能串口屏,内置 UI 与图片资源 |
| Mega Proto Shield | 1 | 扩展板,便于焊接固定 |
| DHT22 温湿度传感器 | 1 | 室内基准测量 |
| BME280 大气传感器 | 1 | 温湿度+气压,I2C 接口 |
| DS3231 RTC 模块 | 1 | 高精度实时时钟 |
| RXB6 433MHz 超外差接收机 | 1 | 接收 Oregon THGN123N 等无线传感器 |
| SD 卡读卡器 | 1 | 数据记录存储 |
| NE555 定时器 + 电阻 | 各 1 | 外部看门狗复位电路 |
| 5V 交直流电源模块 | 1 | 系统供电 |
软件工具
- Arduino IDE
- Nextion Editor(设计 UI、导入背景图、定义控件)
系统架构与 UI 设计
1. 天气预报背景切换策略
Nextion 不支持透明图片,故采用“全屏背景+控件背景同步切换”方案。根据气压趋势判断晴/多云/雨(雪),结合日/夜(RTC 判断),共需 8 套全屏界面:晴天白天/夜晚、多云白天/夜晚、雨天白天/夜晚、雪天白天/夜晚。所有界面共用相同控件名称(温度、湿度、气压文本框),主控先切换页面再写入数值。
2. 主界面布局
- 顶栏:室内温湿度、大气压、时间日期(室内外气压一致)
- 左半屏:主外部传感器温湿度(ID 可在设置页选定,启动约 2 分钟自动搜索)
- 右半屏:轮播显示所有传感器(内部 ID=0,外部最多 4 个)的 ID、温度、湿度

3. 扩展界面
- 日出/日落/月相页面(点击主界面日期进入)
- 系统设置页面(点击时间进入):主传感器 ID、早/晚亮度切换时刻、背光亮度
- 历史数据页面(点击温度/气压进入):1 天/8 天两种时间跨度,左侧选传感器 ID,顶部选温度/湿度/气压曲线

关键技术点
外部看门狗防死机
利用 NE555 组成约 2-3 分钟复位定时器,连接 Arduino A2 引脚。主程序定期翻转 A2 电平“喂狗”,若程序跑飞无法喂狗,NE555 触发复位,保证长期稳定运行(已连续稳定半年以上)。

无线传感器协议解析
代码中实现了对 Oregon 协议(如 THGN123N)的解码,自动识别传感器 ID 并校验 CRC,支持多通道共存。
代码与原理图获取
总结
本项目展示了“智能屏+强主控+外部看门狗”架构在嵌入式图形交互中的优势:主控专注数据采集与协议处理,UI 渲染完全下放屏端,资源占用极低且界面华丽。适合作为家庭气象站、温室监测、教学演示等场景的进阶参考。
制造工艺
- 用 Arduino UNO 和 OLED 显示屏制作经典 Pong 游戏:分步教程
- 智能存钱罐:Arduino Nano 控制硬币识别器实现余额显示
- Arduino Due 驱动 3.2″ TFT 实现温度监测与实时时钟
- Arduino + HC-05 蓝牙控制 LED:MIT App Inventor 手机 App 开发全攻略
- Arduino Mega 2560 接 NEO-6M GPS 模块完整教程
- Arduino DIY 电压表:Nokia 5110 屏幕显示,手把手教学
- BME280 环境数据实时显示于 Nextion 触摸屏——Visuino 图形化开发
- Arduino Mega 2560 综合实训平台 - 传感器/电机/显示/PCB 一体化开发板
- 使用 Nextion 显示屏构建 Fridgeye 应用:分步指南
- Arduino UNO + 以太网盾板实现低成本太阳辐射测量仪(热电堆原理)
- Arduino GPS与TFT触摸屏扩展板:实时定位显示项目
- 高级智能电池充电器:多路复用与数字显示