История проекта уличных камер для Frigate часть 2
В прошлый раз я рассказал об идее и о том, как проект добрался до стабильной работы. Теперь — железная часть: из чего всё состоит, сколько потратил и сколько это стоит сейчас.
Сразу оговорюсь: цены на платы Luckfox взлетели раза эдак в два и, кажется, продолжают расти. С чем связано — честно, не знаю. Но для меня цена уже перестала быть гуманной, так что потихоньку ищу альтернативы. Одну плату по нынешним ценам я всё-таки купил — взамен сгоревшей во время экспериментов (об этом чуть позже).
Итак, что нам понадобится для сборки
1. Мозги
Главный компонент. Вариантов несколько, опишу все, но с нюансами. Перечисленные ниже платы поддерживают оба модуля камеры (про них дальше) и гарантированно работают с моим приложением.
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. Надеюсь, дойдут руки протестировать.
2. Камеры
Тут всё проще. Два варианта:
SC3336 — 3 Мп, 2304×1296.
MIS5001 — 5 Мп, 2592×1944.
Пользуюсь обоими. Днём снимают отлично, ночью — пока чернота. Очень надеюсь, что это ошибки настроек и картинку ещё можно выкрутить. Сейчас ночью камеры видят только машины с фарами и людей с фонариком. Но у нас начинаются белые ночи — так что скоро всё будет видно! :D
3. Питание
Два пути. Если USB (есть на всех платах Luckfox) не используется, как у меня, — берёте любой блок питания на 5V и кабель USB‑C. Хочется попаять — берите модуль AC/DC 220V → 5V. По мощности: проверял блоки на 750 мА, но сейчас камеры подключены к 1 А — с запасом для зарядки UPS.
4. Карта памяти
MicroSD на хватит 4–32 ГБ. Берите любую, какая есть или подешевле, но не самую медленную и убитую: с неё будет работать система. Внимание: для Luckfox Pico Ultra (BW и W) карта не нужна — там используется встроенная eMMC, слота под SD нет.
5. Допики
Как упоминал ранее, можно прикрутить 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 можно посмотреть тут: тык
Как я умный шумомер создал
А начать надо с предыстории. Прошлым летом сидим с другом в беседке во дворе отеля на Красной Поляне и думаем, а как можно нейронку в работе применить вообще, ну чтобы польза была реальная. Потыкались, позадавал вопросы по своему профилю. Утвердили, что прикольно и надо думать. Ну и продолжили пиво декусьтировать.
Собственно, тогда же летом и там же познакомился с девушкой. Она работает в управляющей компании, сдают в аренду апарты и дома на Поляне. И рассказывает она мне как-то перед Новым годом, что у них там движуха, гости буйные, соседи недовольные, полиция злая, а ей спать хочется вообще-то.
А ещё через пару недель кидает ссылку на прибор и говорит: «Где такое купить?» Посмотрел. Шумомер для арендаторов специальный, с уведомлениями, даже Airbnb рекомендует. Погуглил. Вообще ничего нет, её ссылка — единственная, что ищется. Потом ещё пару раз этот запрос всплывал. Я и ляпнул, говорю: «Давай соберём сами».
Полез в «Дипсик», с которым к тому времени уже успел изрядно подружиться, и говорю ему, мол, так и так. Надо сделать. Умная машина пожужжала, как в том анекдоте про лесопилку, подумала и говорит: «Брат, нет проблем, ща всё сделаем».
А я, на секундочку, кроме идеи и представления, как оное должно работать по моему мнению, ничего не умел. Ну вот ващпе. Че-то программировать, какой-то код. Ужас какой.
И вот наступили новогодние праздники. Я скачиваю Arduino IDE, получаю в маркетплейсе какую-то платку с микрофоном и начинаю эксперимент. Проект, созданный с нуля, полностью с помощью бесплатного ИИ. Было ли легко? Не было. Сколько раз сидел и думал: на кой ляд я вообще в это ввязался? Особенно когда нейронка начинала галлюцинировать и заниматься лютой самодеятельностью. Довёл однажды настолько, что робот материться стал сам. Но каждый раз успокаивался и продолжал, потому что, зараза, интересно. И не могу остановиться по сей день. Вроде только доведу до ума — всё, вроде работает. Потом думаю: «А чё, если ещё вот такое прикрутить?». Да и подруга подстёгивает — мол, а давай ещё вот так, а можно вот такое сделать? Первые версии тестировал в офисе на коллегах, шеф раньше всех приходит на работу. Смотрел, сможет ли прибор распознать его появление в офисе.
По итогу на сегодняшний день три реальных прибора работают на Поляне, а я всё не могу остановиться и регулярно что-то допиливаю.
Я не знаю, зачем я это пишу.
Наверное, хочется поделиться личной небольшой победой, потому что всё это для меня раньше был совсем тёмный лес, а сейчас чуть светлее.
Наверное, ещё и потому, что такого прибора до сих пор в России нет, и вроде как тоже ачивка.
Если будет отклик, то буду ещё писать, как страдал, пока рождалась эта штука. С чего начал и до чего оно доехало сейчас. Не будет отклика — значит, будет у меня на «Пикабу» два поста за почти семь лет. А, ну и с пивом поаккуратнее. А то вон до чего доводит.
Самописный умный дом :)
Сегодня пришли датчики протечки и я их сразу добавил.
Красота.
Итого: два термометра с датчиком влажности, уличный метеодатчик с давлением, датчик движения и по мелочи :)
typeScript+PixiJS
PRINTER = '0xE1FB', // SNZB-02
ROOM = '0x1B72', //SNZB-02P
BUTTON = '0x5F2E', // "ModelId":"WB01"
MOVEMENT = '0x50F8', // SNZB-06P
DOOR = '0xC40F', // SNZB-04
METEO = '0x2289', // Aqara WSDCGQ11LM
WATER_DETECTOR_1 = '0xA5D0', // ZG-222Z HOBEIAN"
WATER_DETECTOR_2 = '0x21F3'
Жду датчики влажности почвы... Цветооочки...
Умный дом. Часть 4. Smart level 75%-
Итак, часть последняя. Что действительно мне зашло в "удобном доме". И это именно что удобный, не умный.
1. Дистанционный контроль и возможность обесточить основную часть потребителей. Кроме неотключаемой линии конечно. До кучи контроль высокого энергопотребления в нестандартное время и автоматическая на это реакция. Кошки мне уже один раз включили плиту ночью. Теперь это не проблема.
2. Скрипты освещения. Нет, не сцены. Именно последовательность действий.
2.1. Ночник. От первой попытки интеграции у меня остался мешочек клавишников 433МГц, самое время пустить его в дело.
Вот такая железка позволяет подключить до 16ти кнопок. 4 устройства по 4 кнопки, но 3+1 тоже прекрасно работает. Используем трехклавишник от диммера, получаем 3 кнопки-прерывания (с точки зрения программиста это именно прерывания). Вторая и третья кнопки просто включают диммер люстры на 50 и 98% (не сто, это позже). А первая переключает ночник. Так как он точно выключен. И гасит весь оставшийся свет. Дальше срабатывает второй скрипт и включает диммер на минимум в подпор неонкам. Второе нажатие гасит и ночник, и диммер. Да, это управление уже не прямое, ночник я могу включить с родного клавишника не выключая все остальное. Но если я в кроватке, то именно такой набор действий мне и нужен. Второй пульт лежит у компа, там немного другая последовательность. Одна кнопка делает то, на что я раньше тратил время.
2.2. Неочевидные триггеры. Я впринципе не люблю яркий свет, диммер с лампами накаливания 4*60Вт для меня предел комфорта. Но иногда надо поярче. Для этого есть 4 светодиодных лампы по 36вт (очень ярко!). Их можно включить двумя кнопками. Выкручиваем диммер на максимум, два клика по выключателю - итого 3 действия. Неудобно. Окей, делаем триггер - диммер выкручен на 100% (поэтому на прошлой автоматизации было 98%). При срабатывании условия диммер=100% автоматически подключаются лампы. Чуть убавил диммер - лампы погасли. Удобно.
2.3. Без сцен конечно не обойтись. Но тут другой прикол - окна у меня на юго-восток. Тоесть как только солнце встало - свет дома не нужен вообще. Только дежурка коридора. А встаю я рано, зимой до рассвета. Совмещаем будильник и время восхода солнца и получаем подъём со светлой комнатой. Летом от солнца, зимой от ламп. Еще доработать с учетом облачности и вообще красота будет. Да, это решается датчиком освещенности, но зачем ставить лишнюю железку, если можно подумать?
3. Моменты, где железная автоматизация лучше или автоматизация не нужна вообще.
3.1. Кнопка свет коридор на входной двери. Приклеена так, что входя/выходя из квартиры нажать ее можно не думая. Особенности расположения квартиры и наличие живности требуют двойную дверь. Поэтому в коридоре обычно темно. А геолокация у нас работает как хочет. Кнопка рулит. Даже без дополнительной автоматизации.
3.2. Вентиляция санузла отдельным реле так же меня полностью устроила. При наличии внутри кнопки 'Ээээ' можно включить принудительно. Даже если я пошел посрать без телефона. Менять на скрипты смысла нет вообще. Хотя порты есть.
Голосовое управление. Вроде как выглядит удобно, но не стоит оно того. В простейшем варианте сам ХА и его AI что-то могут. Голос распознаётся, скрипт-команды отрабатывают. Но... Включи люстра сработает, включи люстру уже нет. Но голос я и не сильно хотел. Вапервых даже с облачными сервисами это лаги. Скрипт от кнопки срабатывает мгновенно. Вавтарых интеграция своего AI на свой сервер это много ресурсов и электричества. Очень много. Ради одной фразы? Не стоит оно того. Просто обвешать квартиру микрофонными модулями будет стоить х2 к цене всех железок. Мне проще разложить кучку кнопок по углам.
Что точно надо и будет сделано. Отдельная железка под вебморду умного дома. На самом ходовом месте. Включенная 24/7.
Некоторое количество датчиков присутствия. Для извращенной логики - если работает плита, но на кухне никого нет - раз в 5 минут выдавать алармы.
Вообще весь смысл умного дома это именно скрипты. Забыли выключить утюг? Умный дом напомнит. Когда вы уходите из дома. Слишком долго работает плита в 3 часа ночи? Выключить принудительно. И вот ради такой автоматизации я и заморачиваюсь.
З.Ы. WiFi vs ZigBee. Да, я читал, что WiFi отваливается. И я готов перейти на mesh, как только микрот увидит хоть один вылет. Пока все стабильно.
З.З.Ы. Я понимаю, что некоторым интеграциям нужен интернет. И они могут упасть. К этому я готов, 2 канала интернета по 500мбит и тот же микрот, умеющий в агрегацию, решают проблему. Работает? Используем. Упало? Думаем как обойти.
Киберпанк, который мы заслужили
Живет у нас в подъезде один деятель - Пашка. Парень вроде толковый, но с дикой причудой: помешан на "умных домах". Решил он модернизировать наш общий тамбур на три квартиры. Мол, негоже в наше время пальцами по выключателю тыкать, когда можно всё автоматизировать. Целую неделю он нас промурыжил: то стены сверлил, то провода развешивал.
Мы с соседями терпели, ждали чуда техники. В итоге наступил день запуска. Пашка гордо объявил: теперь свет реагирует на голос и даже узнает жильцов по походке. Первая серьезная оказия случилась в пятницу. Возвращаюсь с работы, открываю общую дверь, а в коридоре темень. Только слышно, как под потолком что-то щелкает и тихонько играет восьмибитная мелодия из старой приставки. Стою, боюсь пошевелиться. Тут лампы начинают мигать, словно на дискотеке девяностых, а голос из динамика вежливо просит предъявить пропуск. Выскочил Пашка, начал кочевряжиться, дескать, нейросеть еще не обучилась, и вообще я слишком быстро зашел.
Полез он что-то подкручивать в коробке над дверью. В этот момент из своей квартиры выходит баба Соня. Женщина она суровая, старой закалки. Видит: в темноте под потолком кто-то копошится, музыка орет, лампы моргают. Она, недолго думая, зашлындала обратно в квартиру, достала швабру и одним точным ударом ухайдокала Пашкин главный контроллер. Свет сразу загорелся ровно и спокойно. Музыка заглохла навсегда. Баба Соня только хмыкнула, сказала про бесовщину в доме и пошла за хлебом.
Пашка после этого случая притих. Железки свои снял, дырки зашпаклевал. Теперь у нас снова старый добрый выключатель. Зато работает без сбоев. И баба Соня довольна. А мы поняли: против швабры любая автоматизация бессильна.
Умный дом. Часть 3. Smart level 50-75%
Итак, продолжаем. Но сначала подытог того, что я получил, и чего это стоило. Не считая всякого поиграть, основные модули, которые закрыли мои хотелки, это два 4х канальных реле, одно реле в щит (хватит и 1U варианта) и диммер. 5к рублей + кнопки (200-500 руб за одну). Ваще копейки.
Что я получил? Удаленное управление светом. Мониторинг потребления и состояния включателей. Сцены, которые нафик не нужны, ибо активировать долго. На этом можно было и закончить, но впереди маячил HomeAssistant. Про который я знаю, видел в работе и в планах он был. Так что ставим. Только вот куда?
Вариант первый. Купить малинку. Слово купить мне не нравится больше всего, дома итак компьютеров больше, чем кошек, собак, людей и тараканов вместе взятых. Так что будем смотреть, что у меня есть.
Для тестов ХА был поставлен на виртуалку. Сервер мощный, зион 16 ядер, 128гб памяти, ему такая мелочь пофигу. Вот только есть большое но - сервер конечно задумывался 24/7, но бывает, что он выключен. Включить и выключить я его могу удаленно (IPMI наше все). Все будет работать и без сервера ХА, но идея ниочень. Копаем склад дальше.
Нашлась пара апельсинок, но там совсем слабое железо. Итого в остатке - легендарная ЕЕЕпись на Атоме, неттоп на целероне и неттоп на i3 4200. Подумав пару дней, я решил, что голос я сейчас ге хочу, но могу и захотеть. Поэтому в дело пошел неттоп на i3. К слову, на авито можно найти отличные HP, по цене как малинка. Смысл переплачивать, если корка в разы мощнее? Кушает много? Это так кажется.
Вот такое чудовище прекрасно работает от блока питания 12 вольт 1,5 ампера. Малинке нужно 5 вольт 3 ампера. 18 ватт против 12. В холостом режиме вообще 6-7 ватт кушоц. И никакого перегрева! Вот вообще. Плюс нормальный корпус. Плюс нормальный SSD и возможность добавить памяти. Смысл брать малинку для умного дома я не вижу. Вообще никаких плюсов.
Дальше все просто. Накатил, прикрутил Tuya Local, добавил все устройства, выматерился и пошел править косяки.
Модуль 4реле+датчики выдал первый прикол. Оно оказывается термостат и просто показать температуру мы не умеем. Ладно, создаем хелпер, дергаем в него переменную температуры, живем. Так же влажность. Два реле, которые на din-рейку. Помните, я писал - одно выдает квт*ч, второе квт? Таки вот, ХА переваривает оба варианта, квт*ч как основа, квт опционально и впринципе не нужно. Так что привет хелперы. Один интегральный, второй дифференциальный. Благо это все настраивается не влезая в код. И вообще, сейчас у меня стадия, на которой я вот прям совсем не хочу лесть в код. Я это умею, программирую я столько же, сколько сисадминю, но это потом. Сейчас я хотел посмотреть, что может ХА в режиме для чайников.
Из полезного по сравнению с Tuya сразу добавилось:
1. Виджет погоды. Красивое...
2. Сцены. Вот тут они применимы. У меня есть люстра на 8 рожков. Старая, монолитная. Мне нравится. В ней вкручено 4 неонки (свеча на ветру). Они очень слабые, даже для ночника их мало. Но красиво мерцают. Если к ним включить диммером оставшиеся лампы (60вт накаливания) на минимальной яркости - получается и красиво, и света для ночника достаточно. Поэтому в ХА я сделал автоматизацию - включение неонок автоматически включает диммер на минимум. Выключил неонки - погас диммер.
3. Геолокация и действия по входу/выходу из зоны. Прикольно, если бы работало. Вспоминаем суперпозицию москвича. В итоге плюнул, добавил watchdog по ip на оба телефона. Пока открываю дверь, они вцепляются в домашний WiFi и впринципе норм. Аналогично на выход из дома. Вроде работает, про невыключенный свет можно забыть.
4. Виджеты всех реле стали единообразны и состояния видны нормально.
5. Ваще на изи добавил любимое реалити-шоу "Вподъезде". ХА запускается быстрее, чем ivms, уже приятно.
Итого на сейчас. Стало удобнее, факт. Но не прям критично. Но это еще не все, дальше будем делать лучше.
Умный дом. Часть 2. Smart level 25-50%
Итак, продолжим. Следующая стадия централизованное управление все, чего мы натыкали. Тут я уже немножко изучил вопрос и заказал вот такие девайсы. Решил все переделать на экосистему Tuya, подключение по WiFi. В моем случае WiFi проще, дома стоит очень мощный Mikrotik 4011 с mesh-сеткой и своим мониторингом (Dude).
Четвертый был взял попробовать 2,4ггц управление, но пульт уже 2й месяц едет. Прикольное в нем - мосфет вместо реле. Тоесть тихое и плавное включение света. Пока лежит.
Начнем с первых двух. На первый взгляд разницы нет, просто первый с датчиком. Оказалось все не так просто. Прилагаю скрин с Tuya - виджеты этих блоков.
На втором мы можем включить отдельный канал одним кликом. На первом нужно зайти в виджет, подождать пока оно прогрузится, потом тыкать каналы. Чтобы управлять всеми линиями быстро в приложении можно создать кнопки вкл/выкл (две кнопки, ага). К диммеру претензий нет. С четырьмя лампами по 60вт он работает именно так, как я хочу.
Дальше добавляем мониторинг. Два штука.
Тут обошлось без сюрпризов (ага, щаз, подумала Мисака-Мисака, но вылезли косяки потом). Виджеты этих модулей.
Модуль на 2U. Дифавтомат+РКН с настройками всего. Считает потребляемую энергию (в киловатт-часах, не мощность! но это сейчас не видно, зато потом вылезет). В моем случае это мастер-выключатель всего, кроме бесперебойника (на нем серверы и холодильник).
Модуль на 1U. Ограничение тока и напряжения. Мониторит мощность (ватты, но не киловатт-часы, это так же вылезет потом).
В этот момент я решил попробовать голосовое управление. Самое простое было прикрутить Гугл. И вот тут вылезли проблемы.
Диммер - управляется как надо. Вкл/выкл/яркость. Все работает.
4 линии с датчиком. Все 4 линии как были обозваны в Tuya, так и перенеслись в Гугл. Все управляется.
А вот 4линейник попроще (который 4-433) для Гугла выглядит как первый канал плюс один общий выключатель. Названия остальных каналов не перенеслись.
Настроенные автоматизации Гугл подхватить не смог. В итоге голосовое управление конечно работает, но частично.
Итого на часть 2. Я могу управлять всеми выключателями. Я могу мониторить температуру (влажность чот не нравятся показания) и энергопотребление. Я могу создавать примитивные автоматзации и сцены (нахрен не нужны). Местами работает голос. Хотя голос мне нужен в последнюю очередь.
З.Ы. В комметариях были интересные мысли. Я все читаю и по некоторым вопросам даже задумался.



























