9

История проекта уличных камер для Frigate

Хочу поделиться историей своего проекта.

У меня была простая и понятная идея:

  • Сделать камеру для Frigate (прикольное приложение для обнаружения движений в кадре).

  • Максимально локально: никаких облаков, «китайских приложений», левых соединений наружу. Т.к. дома у родителей интернет от модема с симкой - скорость и качество соединения низкое.

  • Управление из Home Assistant. Потому что часть дома живет уже там и не хочется "плодить" приложения, да и отцу будет проще разобраться в чем-то одном.

В идеале — чтобы камера вообще могла жить без интернета (а на роутере можно было спокойно запретить ей выход наружу), и при этом всё управление оставалось внутри локальной сети.

То есть, с одной стороны — обычная IP-камера с RTSP. С другой — чтобы можно было в приложении поменять параметры и не лазить каждый раз в консоль. Почему не купил готовую? Можно было. Но мне нравится самому собирать, паять, прошивать.

Первая попытка: ESP32

Начинал с классики — ESP32-CAM и ESP32-S3 + OV2640.

ESP32 уже использовал в других проектах, платы мне знакомы и в целом близки.

Базовые штуки они делают неплохо:

  • картинку получить можно;

  • фотки в Telegram уходят отлично (даже с плохим интернетом);

Но как камера «для наблюдения» — боль:

  • стрим у меня был только MJPEG, а значит доп. нагрузка на сеть вайфая и миник, который собирал и перекодировал этот поток в h.264;

  • качество "видео"… мягко говоря, грустное;

  • Частые отвалы от Frigate. Да и фпс низкий и не очень стабильный.

Так я понял, что хочу H.264/H.265 с камеры и нормальный видеопайплайн, а это уже не про ESP32.

Находка: Luckfox — и первое разочарование

На Али наткнулся на платы Luckfox Pico на Rockchip RV1106. Почитал вики — выглядит как то, что нужно: аппаратное кодирование, нормальные сенсоры (камеры 4k и 1080р), есть готовые примеры. Да и цена приемлимая, в тот момент, когда покупал - вышло как сильно бюджетная камера.

Заказал, получил, попробовал… и разочаровался.

Встроенный RTSP-сервер (стандартный `rkipc`) у меня запускался и по Wi‑Fi (Luckfox Pico Ultra W), и по Ethernet (Pico Pro/Max). В помещении всё выглядело нормально. Радости не было придела!

Но стоило вынести камеру на улицу в солнечную погоду — картинка превратилась в белый экран. Я несколько дней ковырял настройки, пробовал разные профили — не победил.

Причем нейронки не смогли даже примерно подсказать в какую сторону "копать", где и что исправлять. В wiki тоже ничего не нашел. А на самом популярном репозитории на Github - плату использовали для разблокировки плойки.

Проект был заброшен в долгий ящик.

Возвращение: нейросети, грабли и маленькие победы

Примерно через полгода вернулся к идее — и начал методично разбирать, как это всё должно работать.

Параллельно мучил всё, что мучается: GPT/DeepSeek/Claude (без фанатизма, но иногда они хорошо помогают подсветить, где искать, о чем стоит задуматься и какие настройки вообще существуют).

В итоге, на базе примеров Luckfox и с кучей итераций получилось собрать свою реализацию, которая в реальной жизни ведёт себя предсказуемо и стабильно.

Вот что получилось реализовать в проекте:

Видео и потоки

  • Основной RTSP-стрим: H.264, в «родном» профиле сенсора (2K или 1080p, зависит от модуля).

  • Второй RTSP-стрим (sub/detect) для Frigate: уменьшенное видео (по умолчанию 640×360), "родное" разрешение детектора.

Управление из умного дома

  • Управление параметрами через MQTT.

  • Камера умеет Home Assistant MQTT Discovery — то есть появляется в HA как устройство автоматически, с сущностями/ползунками/переключателями.

  • Настройки сохраняются (переживают перезагрузку).

Что можно менять без перезапуска камеры (в HA)

  • FPS и битрейт потока.

  • Поворот/зеркало (mirror/flip).

  • Яркость/контраст/насыщенность/оттенок, резкость.

  • Режимы «день/ночь». Хотя по факту сейчас использую режим только "день".

  • Баланс белого: авто и пресеты.

Сейчас эксперементирую с корпусами, к одной камере напечатал корпус на 3D‑принтере.

Что ещё хочу сделать

Планы стараюсь держать реалистичными, но времени все-равно не хватает.

  • Детекция на самой камере (NPU 0.5/1 TOPS): платы это позволяют, хочется хотя бы MVP (человек/движение) и события в MQTT.

  • Разобраться с качеством в темное время суток, как по мне - чересчур много ряби и так быть не должно.

  • RTSP-авторизация: чтобы поток был не «всем в локалке открыт», а с логином/паролем.

  • Навести порядок в телеметрии MQTT: добавить полезные показатели и убрать тестовые, сейчас, как по мне - много лишнего.

  • Корпус: нормальный вариант под улицу, в идеале с сервой для поворота.

  • Звук: сейчас он есть в экспериментальном виде и ещё требует проверок по качеству.

P.S. Если будет интересно - дальше расскажу подробнее о стоимости, сборке и поделюсь кодом (на Github), а также покажу фото с камер, настройки Frigate и т.п.

Вот такие камеры сейчас установлены. У второй - пока корпус из банки, но главное ведь что внутри :D

Умный дом

238 постов2.5K подписчик

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества