打造船用GPS定时通风系统:基于PIC16F628A的继电器控制风扇
构建可靠的GPS控制风扇,排除船舱湿气。系统采用PIC16F628A单片机、继电器、12V电池和LCD显示。
狭小潮湿空间必须通风。缺乏气流会导致湿气积聚,滋生霉菌真菌。我的船木质表面较多,因此设计了一个简单有效的方案:按固定时间表运行的继电器控制风扇,由汽车电池供电,GPS模块提供精准计时。
为何需要受控通风
小空间内空气停滞导致冷凝。长期潮湿促进霉菌生长,损坏木材并降低空气质量。定期清洁虽能缓解,但自动化通风提供更持久、低维护的方案。
系统概览
风扇需满足:
- 高效循环空气
- 按固定时间表自动运行
- 12V汽车电池供电
- 风扇关闭时通过专用充电器给电池充电
- LCD显示当前时间和状态
关键元件:
- 12V 4.5A风扇
- PIC16F628A单片机
- 12V电池及充电器
- 两个继电器(风扇控制、充电器控制)
- GPS模块(Skylab SKM53系列)
- LCD显示屏
- 保险丝(12V, 8A)
- 各类电阻、电容、连接器
风扇每小时运行5分钟——固化在固件中。风扇运行时充电器继电器断电防止过充;风扇停止时充电器继电器重新通电,维持电池满电。
Skylab SKM53 GPS计时
SKM53每秒通过UART输出NMEA语句。我使用RMC语句提取UTC时间。示例:
$GPRMC,075747.000,A,2233.89990,N,11405.3368,E,3.9,357.8,260210,,,A*6A前六位数字(075747)表示07:57:47。状态字段(第3个逗号后的字母)指示定位有效("A")或无效("V")。固件在使用时间戳前检查此标志。
为可靠串口通信,数据手册建议RXD和TXD各接10 kΩ上拉电阻,并配去耦电容(10 µF电解+0.1 µF陶瓷)。我面包板上仅用单个0.1 µF陶瓷电容,未观察到不稳定。
Skylab数据手册截图(PDF)。
框图
将系统可视化为离散模块,简化故障排查和原理图设计。

硬件设计
原理图遵循框图,展示各元件连接。

为简化选用LM7805线性稳压器,并增加额外滤波电容防振荡。虽现代开关稳压器效率更高,但LM7805可靠性好且手头有现货,是务实选择。
所有元件安装在坚固PCB上,风扇和充电电路各配12V 8A保险丝保安全。

固件结构
C源码注释详尽,结构清晰:
- 包含库文件、设置配置位
- 定义常量(晶振频率、端口分配)
- 声明全局变量
- 原型函数
- 实现函数含行内注释
- 进入主循环:读取GPS数据、管理定时器、切换继电器
示例:UART初始化。
// UART端口初始化函数
void uart_init(void) {
TXSTAbits.BRGH = 0; // 关闭高波特率
TXSTAbits.SYNC = 0; // 异步模式
TXSTAbits.TX9 = 0; // 8位传输
RCSTAbits.CREN = 1; // 连续接收使能
/*
* 波特率计算(16 MHz晶振,9600 bps):
* SPBRG = (16 MHz / 9600) / 64 - 1 = 25
*/
SPBRG = 25;
PIE1bits.RCIE = 1; // 使能UART接收中断
RCSTAbits.SPEN = 1; // 使能串口
TXSTAbits.TXEN = 1; // 使能发送
}
完整源码下载:jc_lettheairflow.c.zip。
结论
集成GPS模块精准计时、继电器电源管理、12V电池便携供电,该系统保持船舱干燥无霉。设计模块化,易扩展显示日期或集成更多传感器。
图片

亲自尝试该项目!下载BOM和代码。
工业设备