Камеры для Frigate
2 поста
2 поста
В прошлый раз я рассказал об идее и о том, как проект добрался до стабильной работы. Теперь — железная часть: из чего всё состоит, сколько потратил и сколько это стоит сейчас.
Сразу оговорюсь: цены на платы Luckfox взлетели раза эдак в два и, кажется, продолжают расти. С чем связано — честно, не знаю. Но для меня цена уже перестала быть гуманной, так что потихоньку ищу альтернативы. Одну плату по нынешним ценам я всё-таки купил — взамен сгоревшей во время экспериментов (об этом чуть позже).
Итак, что нам понадобится для сборки
Главный компонент. Вариантов несколько, опишу все, но с нюансами. Перечисленные ниже платы поддерживают оба модуля камеры (про них дальше) и гарантированно работают с моим приложением.
Luckfox Pico Pro — чип RV1106G2, NPU 0.5 TOPS, 128 MB DDR3L, Ethernet 10/100. Самая минимальная рабочая. NPU не самый мощный, так что, когда доберусь до детекции на самой плате, здесь, скорее всего, будет чуть урезанный вариант. В остальном — всё, что нужно, есть.
Luckfox Pico Max — RV1106G3, NPU 1 TOPS, 256 MB DDR3L, Ethernet 10/100. Отличный вариант. Потянет всё, что можно придумать под эти камеры.
Luckfox Pico Ultra BW — RV1106G2, NPU 0.5 TOPS, 128 MB DDR3L, Ethernet, eMMC 8 GB, Wi‑Fi 6 и Bluetooth. Ключевые фишки — встроенная память и Wi‑Fi 6. NPU слабый. К USB можно подключить, например, модем с симкой — в теории должно работать, но, скорее всего, придётся перебирать систему (в планах проверить). Из Bluetooth можно попробовать сделать прокси или передавать данные с датчиков по Wi‑Fi в умный дом. Есть DPI‑интерфейс — можно подключить экран (тоже от Luckfox). Думаю из этого получился бы неплохой дверной глазок, потому что показывать видео с камеры на локальном экране иначе просто некуда.
Luckfox Pico Ultra W — RV1106G3, NPU 1 TOPS, 256 MB DDR3L, Ethernet, eMMC 8 GB, Wi‑Fi 6 и Bluetooth. А это уже «максималка»: есть всё, что у Ultra BW, плюс полноценный NPU и больше памяти — с заделом на будущую детекцию прямо на камере.
Важно: следующие две платы работают на другом процессоре (RV1103) и поддерживают только младший модуль камеры. С моим приложением я их не проверял, но в теории — должны.
Luckfox Pico Plus — RV1103, NPU 0.5 TOPS, 64 MB DDR2, Ethernet. Если оперативной памяти не хватит, можно выкрутиться swap на SD‑карте.
Luckfox Pico Mini B — RV1103, NPU 0.5 TOPS, 64 MB DDR2. Очень интересный вариант своим размером, но без Ethernet и Wi‑Fi. Есть SPI NAND Flash на 128 MB — теоретически туда можно поставить систему и запустить приложение (правда, для детекции памяти точно не хватит, а swap взять неоткуда). В слот SD‑карты можно вставить модуль Wi‑Fi. А если к USB подключить хаб с Ethernet, тогда и SD останется под swap. Надеюсь, дойдут руки протестировать.
Тут всё проще. Два варианта:
SC3336 — 3 Мп, 2304×1296.
MIS5001 — 5 Мп, 2592×1944.
Пользуюсь обоими. Днём снимают отлично, ночью — пока чернота. Очень надеюсь, что это ошибки настроек и картинку ещё можно выкрутить. Сейчас ночью камеры видят только машины с фарами и людей с фонариком. Но у нас начинаются белые ночи — так что скоро всё будет видно! :D
Два пути. Если USB (есть на всех платах Luckfox) не используется, как у меня, — берёте любой блок питания на 5V и кабель USB‑C. Хочется попаять — берите модуль AC/DC 220V → 5V. По мощности: проверял блоки на 750 мА, но сейчас камеры подключены к 1 А — с запасом для зарядки UPS.
MicroSD на хватит 4–32 ГБ. Берите любую, какая есть или подешевле, но не самую медленную и убитую: с неё будет работать система. Внимание: для Luckfox Pico Ultra (BW и W) карта не нужна — там используется встроенная eMMC, слота под SD нет.
Как упоминал ранее, можно прикрутить UPS. Я взял на Али модуль 5V под два аккумулятора 18650 — отличная штука. По моим замерам камера работает на них 5–7 часов (аккумуляторы 3000 мА·ч, уже познавшие жизнь). Бывают модули и под один 18650. Другой вариант: литий-ионная батарейка на 3V и модуль TP4056 со встроенной регулировкой выходного напряжения — тогда можно получить стабильные 5V. Правда, в последний раз такой вариант меня подвёл и спалил плату Luckfox :(
Ещё можно добавить подсветку — круговую, хоть IR, хоть LED. Но тут надо быть внимательным: большинство IR-подсветок рассчитано на 12V, а те, что на 5V, просят чуть ли не 2А (зависит от размера). Хорошего и при этом дешёвого варианта для себя пока не нашёл.
Итого:
Мой комплект стоил: Pico Ultra, 5 МП и UPS: 1950+1178+115+156+596 = 3 995 ₽
Сейчас минимально: Pico Max, 3 МП, microSD и питание AC/DC: 2638 + 700 + 156 + 109 = 3 603 ₽
Сейчас мой комплект: ULTRA WB, UPS, 5 МП камерой и UPS: 3206 + 876 + 109 + 159 + 237 = 4 587 ₽
Отдельно придется все для пайки (если использовать не готовый блок питания с кабелем usb-type c)
В следующий раз покажу фото с камер, расскажу о настройках Frigate и где он у меня запущен.
Код для камер на GitHub можно посмотреть тут: тык
Хочу поделиться историей своего проекта.
У меня была простая и понятная идея:
Сделать камеру для Frigate (прикольное приложение для обнаружения движений в кадре).
Максимально локально: никаких облаков, «китайских приложений», левых соединений наружу. Т.к. дома у родителей интернет от модема с симкой - скорость и качество соединения низкое.
Управление из Home Assistant. Потому что часть дома живет уже там и не хочется "плодить" приложения, да и отцу будет проще разобраться в чем-то одном.
В идеале — чтобы камера вообще могла жить без интернета (а на роутере можно было спокойно запретить ей выход наружу), и при этом всё управление оставалось внутри локальной сети.
То есть, с одной стороны — обычная IP-камера с RTSP. С другой — чтобы можно было в приложении поменять параметры и не лазить каждый раз в консоль. Почему не купил готовую? Можно было. Но мне нравится самому собирать, паять, прошивать.
Начинал с классики — ESP32-CAM и ESP32-S3 + OV2640.
ESP32 уже использовал в других проектах, платы мне знакомы и в целом близки.
Базовые штуки они делают неплохо:
картинку получить можно;
фотки в Telegram уходят отлично (даже с плохим интернетом);
Но как камера «для наблюдения» — боль:
стрим у меня был только MJPEG, а значит доп. нагрузка на сеть вайфая и миник, который собирал и перекодировал этот поток в h.264;
качество "видео"… мягко говоря, грустное;
Частые отвалы от Frigate. Да и фпс низкий и не очень стабильный.
Так я понял, что хочу H.264/H.265 с камеры и нормальный видеопайплайн, а это уже не про ESP32.
На Али наткнулся на платы 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
