EN

RV Monitor

Фокус
Full-stack / IoT
Год
2023-2026
Стек
Next.js · TypeScript · PostgreSQL · Raspberry Pi · BLE · Docker

Инженерная задача

Объединить разнородное оборудование и живую телеметрию в одном надёжном продукте, который работает при нестабильном интернете и неидеальных соединениях с устройствами.

Моя роль

Full-stack / Product Engineer. Я разработал фронтенд, интеграцию с бэкендом, модель данных, взаимодействие с оборудованием и развёртывание системы в автомобиле.

Система

BLE- и последовательные устройства · Raspberry Pi · локальные сервисы · PostgreSQL · слой API · фронтенд на Next.js · синхронизация с облаком

Результат

Рабочая локальная и удалённая среда мониторинга, использующая реальные данные автомобиля вместо идеализированной тестовой телеметрии.

RV Monitor — работающая система, которую я построил для экспедиционного автодома, а не макет панели управления. Она объединяет электропитание и солнечную систему, воду, датчики среды, диагностику модема, GPS, камеры и управляемые устройства вокруг Raspberry Pi. Ключевое инженерное ограничение: система должна оставаться понятной и полезной, когда устройства отключаются, телеметрия устаревает или пропадает мобильный интернет.

От оборудования к унифицированной телеметрии

Данные приходят из очень разных источников: контроллеров батареи и солнечной системы, датчиков воды и среды, ESP32-узлов, BLE-устройств, последовательного GPS-приёмника, диагностики модема и видеопотоков. Сервисы на Raspberry Pi собирают эти источники и приводят их к общей модели, с которой может стабильно работать остальная система.

Raspberry Pi работает как постоянно включённый компьютер внутри автомобиля. Особенности конкретного оборудования скрыты за границами сервисов, поэтому веб-приложение работает со стабильными состояниями и измерениями и не зависит напрямую от протокола каждого устройства.

Локальная архитектура и состояния отказа

Система изначально ориентирована на локальную работу. Данные сохраняются и обслуживаются внутри автомобиля, а удалённый доступ и синхронизация с облаком являются дополнительным каналом, а не условием работы панели.

Поэтому значение не бывает просто «есть» или «нет». Интерфейс различает актуальные, устаревшие, отключённые, недоступные и восстанавливающиеся состояния. Повторное подключение устройств и отсутствие интернета — нормальные рабочие ситуации, а не редкие исключения.

Фронтенд поверх данных автомобиля

Интерфейс на Next.js/React объединяет текущее состояние, исторические графики, GPS и маршруты, диагностику модема, камеры и прямое управление. Переиспользуемые карточки и шаблоны визуализации используют общую семантику состояний, хотя интеграции под ними сильно отличаются.

Развёртывание в движущемся автомобиле

Стек приложения развёрнут на Raspberry Pi с Docker и Nginx и поддерживает как локальный доступ внутри автодома, так и удалённый просмотр при наличии связи. Работа с установленным оборудованием выявляет задержки, переподключения и поведение устаревших данных, которые не проявились бы на обычной панели с тестовыми данными.

В результате получился программный слой самого автомобиля: единый интерфейс для текущего состояния, истории, управления поддерживаемыми устройствами и удалённой проверки системы, когда находишься вне автодома.