Создание GPS-таймированной системы вентиляции для лодки: вентилятор с реле на PIC16F628A
Постройте надежный вентилятор с GPS-управлением для удаления влаги из каюты лодки. Система использует микроконтроллер PIC16F628A, реле, 12-вольтовую батарею и ЖК-дисплей.
Вентиляция критична в тесных, влажных помещениях. Без надёжного воздушного обмена влага скапливается, создавая идеальную среду для плесени и грибка. В моей лодке, где много деревянных поверхностей, я спроектировал простое, но эффективное решение: релейно-управляемый вентилятор, работающий по жёсткому расписанию, питаемый автомобильной батареей и синхронизированный GPS-модулем для точного тайминга.
Почему важна контролируемая вентиляция
В маленьких комнатах застой воздуха ведёт к конденсации. Со временем влажность способствует росту плесени, которая портит дерево и ухудшает качество воздуха. Регулярная уборка помогает, но автоматизация вентиляции даёт более стабильный, не требующий внимания подход.
Обзор системы
Вентилятор должен:
- Эффективно циркулировать воздухом.
- Работать автоматически по постоянному расписанию.
- Питаться от 12-вольтовой автомобильной батареи.
- Заряжать батарею от выделенного зарядного устройства, когда вентилятор выключен.
- Показывать текущее время и статус на ЖК-дисплее.
Ключевые компоненты:
- Вентилятор 12 В, 4,5 А
- Микроконтроллер PIC16F628A
- 12-вольтовая батарея и зарядное устройство
- Два реле (управление вентилятором и зарядным устройством)
- GPS-модуль (серия Skylab SKM53)
- ЖК-дисплей
- Предохранители (12 В, 8 А)
- Разные резисторы, конденсаторы, разъёмы
Вентилятор работает 5 минут каждый час — это значение зашито в прошивке. Когда вентилятор активен, реле зарядки обесточивается, чтобы избежать перезарядки. Когда вентилятор останавливается, реле зарядки снова включается, поддерживая батарею в заряженном состоянии.
GPS-тайминг с Skylab SKM53
SKM53 выдаёт NMEA-предложения по UART каждую секунду. Я использую предложение RMC для извлечения текущего UTC-времени. Пример:
$GPRMC,075747.000,A,2233.89990,N,11405.3368,E,3.9,357.8,260210,,,A*6AПервые шесть цифр (075747) означают 07:57:47. Поле статуса (буква после третьей запятой) показывает валидный фикс («A») или невалидный («V»). Прошивка проверяет этот флаг перед использованием временной метки.
Для надёжного последовательного обмена даташит рекомендует 10 кОм pull-up на RXD и TXD и развязывающие конденсаторы (10 мкФ электролитический + 0,1 мкФ керамический). Я использовал только 0,1 мкФ керамический на макетной плате и не заметил нестабильности.
Скриншот из даташита Skylab (PDF).
Блок-схема
Визуализация системы как набора дискретных блоков упрощает отладку и создание принципиальной схемы.

Аппаратная часть
Принципиальная схема следует блок-диаграмме и показывает соединения каждого компонента.

Я выбрал линейный стабилизатор LM7805 для простоты, добавив дополнительные сглаживающие конденсаторы для предотвращения генерации. Современный импульсный стабилизатор дал бы более высокий КПД, но надёжность LM7805 и наличие компонентов на руках сделали его практичным выбором.
Все компоненты установлены на прочную печатную плату, с предохранителями 12 В 8 А на цепях вентилятора и зарядки для безопасности.

Структура прошивки
Исходный код на C хорошо прокомментирован и имеет чёткую структуру:
- Подключение библиотек и настройка конфигурационных битов.
- Определение констант (частота кварца, назначение портов).
- Объявление глобальных переменных.
- Прототипы функций.
- Реализация функций с inline-комментариями.
- Главный цикл: чтение GPS-данных, управление таймерами, переключение реле.
Пример: инициализация UART.
// ФУНКЦИЯ ИНИЦИАЛИЗАЦИИ UART ПОРТА
void uart_init(void) {
TXSTAbits.BRGH = 0; // Высокая скорость боーレйт отключена
TXSTAbits.SYNC = 0; // Асинхронный режим
TXSTAbits.TX9 = 0; // 8-битная передача
RCSTAbits.CREN = 1; // Разрешение непрерывного приёма
/* Расчёт боーレйт (кварц 16 МГц, 9600 бод):
* SPBRG = (16 МГц / 9600) / 64 - 1 = 25 */
SPBRG = 25;
PIE1bits.RCIE = 1; // Разрешение прерывания приёма UART
RCSTAbits.SPEN = 1; // Включение последовательного порта
TXSTAbits.TXEN = 1; // Включение передачи
}
Полный исходный код можно скачать здесь: jc_lettheairflow.c.zip.
Заключение
Интегрируя GPS-модуль для точного тайминга, реле для управления питанием и 12-вольтовую батарею для автономности, эта система держит каюту лодки сухой и свободной от плесени. Проект модулен — легко расширяем для отображения даты или подключения дополнительных датчиков.
Изображения

Попробуйте собрать этот проект сами! Скачайте спецификацию (BOM) и код.
Промышленное оборудование
- Полное руководство по производству стекловолокна
- Создайте выигрывающий прототип: Пошаговое руководство для быстрой разработки продукта
- Повышение эффективности систем воздушных компрессоров: проверенные советы и стратегии
- Как работают воздухосушители: поддержание сжатого воздуха чистым и эффективным
- Подробное руководство по удалению загрязнителей из сжатого воздуха
- Пошаговое руководство по замене гидравлического шланга на тяжелом оборудовании
- Профессиональное руководство по изготовлению зажима для металлотокарного станка
- Тепло сжатия в осушителях: обеспечивание сухого, высококачественного сжатого воздуха
- Понимание роторно-зубчатого компрессора: как он работает
- Обновите свою систему сжатого воздуха: обязательство Нового года к безопасности и эффективности