2021-06-25 11:28:10

Видео наблюдение на ЖД макете

Хобби H0 1:87 3D Raspberry Pi

Рабочий из набора Preiser 10105 у камеры

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


Камера

Купив первую камеру для теста, стало понятно, что ее угла зрения в 120° более чем достаточно не только для наблюдения за макетом, но и за всей комнатой, где он стоит. Можно было даже подумать о покупке более дешевого аналога, с углом зрения 90°.

Камера покупалась на али и никаких проблем с доставкой или таможней или нарушением чего-либо не возникло, как в той старой истории, когда фермер купил GPS-трекер для своей коровы и получил уголовное дело за ввоз "специальных технических средств" для шпионажа. Сейчас ситуация другая.

В постановлении №3-П Конституционный суд указывает, что к специальным техническим средствам, предназначенным для негласного получения информации, относятся технические средства, которые закамуфлированы под предметы (приборы) другого функционального назначения, в том числе бытовые, обнаружение которых возможно только при помощи специальных устройств.

Поэтому камеры в явном виде, т.е. не замаскированные в шариковые ручки и прочие, не имеющие отношения к камерам приборы, приобретать вполне можно. Проверил на собственном опыте.

В процессе работы камера ощутимо греется, для отвода тепла пришлось организовать радиатор 14х14х8 мм., который крепится на специальный термо-скотч.

Модель держателя камеры

Для размещения камеры на макете пришлось создать специальный держатель, который позволял небольшие корректировки положения. Модель держателя можно скачать в формате FreeCAD.

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

Камера на макете

Держатель распечатал из темно-серого пластика, близкого по цвету к камню. Вдоль горы к нему ведет дорожка, которая в будущем будет кончаться приставной лестницей к держателю. А к концу стройки появятся еще миниатюрная бригада монтажников телекоммуникационных сетей, проводящая работы с камерой :)

Первые кадры с камеры

Для теста подключил камеру к телефону и понаблюдал за процессом стройки макета с другой стороны. Как оказалось, угол зрения камеры 120° более чем достаточен для наблюдения за макетом, для моих целей хватило бы и более дешевой модели с углом 90°. Помимо макета получилась система наблюдения за комнатой.

Подключение к малине и вещание картинки в сеть

Спустя примерно 2 года после монтажа камеры дело дошло до ее подключения к малине. Само подключение крайне банально - просто воткнуть USB-разъем, а вот с вещанием картинки в сеть все не так просто.

Для начла берем гайд и проверяем, что можем получать картинки с камеры с помощью fswebcam. Затем можно пойти простым путем и поставить motion, но он совсем не для наблюдения за макетом, да и производительность его на малине оставляет желать лучшего.

Поэтому идем сложным путем, будем использовать MJPG-streamer. Его придется клонировать из репозитория и собрать:

sudo apt-get install cmake libjpeg-dev
git clone https://github.com/jacksonliam/mjpg-streamer.git
cd mjpg-streamer/mjpg-streamer-experimental/
make
sudo make install

Справедливости ради, стоит отметить, что на момент установки у меня уже был установлен motion, который затянул кучу зависимостей вместе с собой, возможно, часть из них сгодилась при сборке mjpg-streamer.

После успешной установки можно поковыряться с настройками или просто запускаем:

mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720" -o "output_http.so"

и наслаждаемся живой картинкой с макета прямо в браузере по адресу http://<ip малины>:8080/?action=stream

Изображение с камеры в MJPG streamer

Так же можно создать файл /var/www/mjpg-streamer/index.html следующего содержания:

<html>
    <head>
        <title>MJPG-streamer</title>
    </head>
    <body align="center">
        <h1>MJPG-streamer</h1>
        <p>
            <a href="?action=stream">stream</a>
            &bull;
            <a href="?action=snapshot">snapshot</a>
        </p>
        <p>
            <img src="?action=snapshot">
        </p>
        <hr>
        <address>
            &copy;2023
            <a target="_blank" href="http://aleksandr.ru">aleksandr.ru</a>
        </address>
    </body>
</html>

и запускать вещание командой mjpg_streamer -i "input_uvc.so -d /dev/video0 -r 1280x720" -o "output_http.so -w  /var/www/mjpg-streamer" чтоб при входе на http://<ip малины>:8080 вас приветствовала страничка со ссылкой на стрим и картинкой с камеры.

Для начала этого вполне достаточно. Далее предстоит научиться включать-выключать вещание с кнопки на пульте управления.