Видеорегистратор на raspberry pi 3


Raspberry Pi. Передача видео для дистанционного управления / Хабрахабр

Передача видео для дистанционного управления может использоваться во многих проектах связанных с управление различными устройствами. То есть это можно прикрутить к колесной базе, к квадрокоптеру, к телу гуманоидного робота и тд. Raspberry Pi(далее малина) в данном смысле удобна тем что позволяет использовать для этого не какие то специализированные устройства типа FPV, а обычные устройства которые у многих уже имеются в наличии, а так же упрощает и схемы их включения и сложность написания программ для них, не говоря уже о стоимости проектов.

Удаленный контроль
Недавно заполучил малину, в Питере их уже в магазинах продают так что ни ждать, ни заказывать не надо, хотя чуть дороже получается. Поскольку монитора с HDMI у меня нет, а роутер есть, то как вариант управления был выбран remote controle через ssh порт. Это позволяет с любого компа, включенного в локальную сеть (как вариант, но более сложный — глобальную) управлять малиной.

Примечание. На компьютере, с которого я управляют малиной, стоит Ubuntu. Хотя для Windows’а все это также остается в силе.

Наладить подключение достаточно просто. В Debian образе, скачиваемом с офсайта, эта функция по умолчанию включена. И единственное что остается — узнать ip адрес и ввести команду подключения. Для того, что бы узнать адрес, можно либо зайти в настройки роутера(обычно ip 192.168.0.1), либо в консоли вести команду$ nmap -p 22 --open -sV 192.168.0.1/24 которая выдаст кучу текста, среди которой будут указанны адреса подключенных в сеть устройств и состояния их SSH порта. Далее для открытия удаленного доступа$ ssh -p 22 [email protected] где pi — это имя учетной записи, а после @ адрес малины.

Потом попросят ввести пароль и если он правильный то консоль начнет общаться с вами от лица малины.

Более подробно о настройке удаленного доступа можно почитать на http://www.penguintutor.com/linux/raspberrypi-headlesshttp://www.penguintutor.com/linux/tightvnc

На второй ссылке описывается как получить удаленный доступ к графическому интерфейсу. Это выглядит интересно — на экране своего монитора видишь рабочий стол малины. Но из-за того что сигнал идет по сетке то появляется задержка и мышка и прочее управление идет с запаздыванием. Так что в предустановленную там «змейку» не поиграть.

Как имхо, малину в качестве десктопа использовать и нет смысла, все её плюсы теряются. Маловероятно, что у кого то настолько маленькая комната что в ней рядом с монитором некуда поставить системный блок, напряжения в розетке хватает только что бы заряжать сотовый телефон или денег не хватает даже на подержанный персональный компьютер. А минусы наоборот становятся очевидными — малая относительно настольных компьютеров производительность и недружелюбная операционная система.

Подключение Веб камеры и передача картинки
Используемая камера Logitech c270 встала без проблем. Однако дальше ждало разочарование так как заявленное на малине аппаратное ускорения кодирования видео отсутствовало. То есть оно есть, но кодеки для него отсутствует. А без него, программно, сжатие идет со скорость 2-5 fps и дает 100% загрузку машины. В итоге без подвешивания системы идет только необработанный(raw) поток. То есть для записи (по прикидкам) при разрешение 640х480 на одну минуту уйдут 100-200 мб. Но пропускной способности локальной сети и wi-fi хватает так что пока что можно и так его гнать, надеясь что в ближайшее время кодеки все таки появятся. Так что идем дальше.

Долгих экспериментов и поиска нужных заклинаний описывать не буду. В итоге все свелось к использованию gstreamer’а. Вкратце, это мультимедийный фреймворк с интерфейсом в виде командной строки. Так же есть библиотека которая дает возможность программно использовать его компоненты, что можно использовать в дальнейшем для интеграции в собственные программы.

Для его установки на малине надо ввести$sudo apt-get install gstreamer0.10-plugins-base gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-tools

(если их не будет, возможно номер версии сменился или другое, то удобно воспользоваться командой «$apt-cache search gstreamer» и установить что-то с похожими именами)

Далее на малине вводится $sudo gst-launch-0.10 v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=640,height=480, framerate=20/1'! ffmpegcolorspace ! rtpvrawpay ! udpsink host=192.168.0.50 port=4000 sync=false

где device=/dev/video0 — источник картинки 'video/x-raw-yuv,width=640,height=480, framerate=20/1' — формат udpsink host=192.168.0.50 port=4000 sync=false — адрес куда посылаем

Видео передается по протоколу rtp. Этот протокол работает на транспортном уровне и используется при передачи трафика реального времени. Он может использовать как TCP, так и UDP, но так как TCP повторяет не дошедшие сообщения, которые уже не нужны то в данном случае используется UDP. На стороне приемника надо ввести$ gst-launch udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)RAW, sampling=(string)YCbCr-4:2:0, depth=(string)8, width=(string)640, height=(string)480, ssrc=(uint)1825678493, payload=(int)96, clock-base=(uint)4068866987, seqnum-base=(uint)24582" port=4000 ! queue ! rtpvrawdepay ! queue ! ffmpegcolorspace ! autovideosink

В итоге на стороне приемника появится картинка. Для любителей рекурсии: эта скриншот рабочего стола нетбука, который принимает картинку от малины, которая берет её от веб камеры, которая направлена на малину лежащею на нетбуке на экране которого …

Картинка, полученная таким образом, по качеству идентична полученной напрямую без сети от веб камеры, так как никаких сжатий или трансформаций не применялось. На следующем скриншоте показана загрузка канала, слева при передачи картинки 640х480, затем пауза и 320х240. Однако, поскольку картинка идет не напрямую, а через сеть, то появляется задержка сигнала. Далее была проведена серия нехитрых экспериментов, по которым можно оценить задержку сигнала.

Для конфигурации малина->LAN кабель->роутер Dlink-300->wi-fi->нетбук задержки составили для разрешения 640х480 0.5 секунд для разрешения 320х240 0.2 секунды

Много это или мало зависит от целей использования. Для прямого управления квадракоптера (без дополнительной стабилизации) или других систем испытывающих какие то возмущения выводящие их из равновесия — это много. Но тем не менее многие вещами при такой задержки управлять можно, как пример — луноходы, которые управлялись вообще с 2х минутной задержкой.

UPD 09.10.2012 В комментариях к данному посту было предложено воспользоваться встроенным в саму камеру аппаратным сжатием и передавть картинку в формате mjpeg. После некоторого поиска нужных заклинаний, команда на малине выглядитgst-launch-0.10 v4l2src device=/dev/video0 ! 'image/jpeg,width=320,height=240, framerate=10/1' ! rtpjpegpay ! udpsink host=192.168.0.50 port=4000 sync=false

а на компьютере принимающем картинкуgst-launch udpsrc caps="application/x-rtp, media=(string)video, clock-rate=(int)90000, encoding-name=(string)JPEG, ssrc=(guint)469657143, payload=(int)96, clock-base=(guint)2841649723, seqnum-base=(guint)39869" port=4000 ! rtpjpegdepay ! jpegdec ! autovideosink

В результате при разрешении 640х480 трафик составил порядка 300 — 800 кбайт/сек, а задержка 0.2-0.3 секунды.

Подключение wi-fi адаптера
Адаптер TP-Link WN722N. В целом установка адаптера не представляет ничего сложного, процесс хорошо описан здесьhttp://elinux.org/RPi_Peripherals за маленьким исключением исключение, что бы найти которое ушло некоторое время. Пароль надо вводить в уже зашифрованном виде. Спасибо Ubuntu http://help.ubuntu.ru/wiki/настройка_сети_вручную Для этого надо ввести$ wpa_passphrase <имя_точки_доступа> <ascii_ключ>

В итоге после всех выяснений файл /etc/network/interfaces у меня сейчас выглядит так. Эти настройки верны wpa-psk, если использовать wpa2 то настройки будут другие, описание которых можно найти в ссылке на Ubuntu. auto lo

iface lo inet loopback iface eth0 inet dhcp

# The wireless interface iface wlan0 inet static

address 192.168.0.40 gateway 192.168.0.1 netmask 255.255.255.0 wpa-ap-scan 1 wpa-proto WPA wpa-pairwise TKIP wpa-group TKIP wpa-key-mgmt WPA-PSK wpa-ssid name wpa-psk 7d7cf754caЦензураf04b1b0ef6f15e21ed1292168950d20 wpa-driver wext

auto wlan0

После настройки беспроводного соединения на стороне компьютера надо сменить ip адрес и общение будет происходить так же как и при проводном соединение.

Далее были проведены тесты на время задержки для конфигурации: малина->адаптер->wi-fi->роутер Dlink-300->wi-fi->нетбук (а так же для малина->адаптер->wi-fi->роутер Dlink-300-> LAN кабель ->нетбук ) для разрешения 640х480 0.8 секунд для разрешения 320х240 0.2-0.3 секунды

По тому что время задержке увеличилось можно сделать предположение что либо адаптер, либо юсб соединение, либо драйвер вносят задержки, которых нет при соединение через LAN. Так что там где габариты позволяют лучше вместо адаптера соединять малину через LAN c роутером.

LiPo
Как довесок, что бы отвязать систему от сети питания собрал преобразователь для подключения к LiPo аккумулятору. Дело в том что малина запитывается от 5В плюс-минус 25%, так что напрямую подключать аккумуляторы с другим напряжением нельзя, однако при помощи небольшого девайса это можно исправить. Схема у него очень простая и нашел я её здесьhttp://spydamonky.hackhut.com/2012/07/05/lipo-raspberry-pi-power-adapter/ Детали схемы я нашел в ближайшем специализированном магазине, а microUSB штекер в компьютерном магазине – купил самый дешевый кабель и вырезал из него. В первом варианте как и на схеме был один регулятор напряжения, но он сильно грелся, так как максимальный ток там 1А, а через него шло минимум 700мА, то я решил ему в параллель поставить второй, что должно в вдвое увеличить максимальный ток. Однако все равно греется сильно. Видимо надо будет какой то радиатор еще прикрутить. Вообще, LIPo аккумуляторы для таких целей лучше не использовать так как в случае разряда ниже допустимого уровня они необратимо выходит из строя, а этот момент здесь ни как не ловится. То есть устройство работает, работает, а когда перестает аккумулятор уже умер. Если под рукой есть другой тип аккумуляторов то лучше их использовать.

П.С. Далее как цель поставить это все на какую то платформу и использовать уже дальше.

habrahabr.ru

Майнинг на Raspberry Pi 3

Многих пользователей, которые недавно услышали о майнинге, интересует вопрос, возможен ли майнинг на Raspberry, какие программы для этого нужны и так далее. Ведь это же небольшой компьютер, который потребляет минимум энергии и может работать постоянно. Правда, будет выделение тепла, но это ведь не проблема, можно установить радиаторы или кулер, а еще можно установить несколько устройств и объединить их в кластер.

Так рассуждает множество новичков, а как обстоят дела на самом деле? В этой статье мы рассмотрим что представляет из себя майнинг на Raspberry Pi 3, как это работает и что можно делать?

Содержание статьи:

Майнинг на Raspberry Pi 3

Сразу отвечу на вопрос, который вас интересует больше всего, возможен ли майнинг на Raspberry Pi 2017 — да. Но это не совсем тот майнинг, о котором вы думаете. А теперь обо всем по порядку. Начнем с того, что вы не сможете майнить биткоины на Raspberry. Нет, конечно вы можете установить майнер и майнить тот же Bitcoin, Litecoin, Monero и другие монеты, которые не требуют видеокарты. Но это попросту невыгодно.

Один микрокомпьютер способен выдавать 0.2 Мегахэш в секунду, а учитывая что даже несколько десятков гигахэш будут приносить копейки это совсем не дает никакой перспективы. Единственное для чего можно использовать Raspberry в плане Bitcoin, это подключать внешние USB майнеры, поскольку это дешевый и энергоэффективный компьютер. Но это тоже не имеет особого смысла. Видеокарту вы тоже подключить не сможете потому что PCI порта нет, а для видеокарты, подключенной через переходик USB, попросту нет драйверов и вряд-ли вы сможете их сами написать. Вы можете сказать, что есть еще Monero и другие валюты, но там ситуация не намного лучше, например, с Monero вы будете получать меньше 30 центов в месяц с одного устройства.

Микрокомпьютер можно использовать только в качестве полной ноды, кошелька, и то нужен будет дополнительный носитель. А сейчас стоит вспомнить про преимущества Raspberry — это низкое энергопотребление. Мы можем это использовать. Как вы знаете существует два вида майнинга — PoW — Proof of Work, подтверждение работы и Proof of Stake, подтверждение операции. Нас интересует второй вариант, в этом виде майнинга не нужны вычислительные ресурсы, он чем-то похож на вклад в банк. Вы резервируете определенное количество монет для майнинга, а дальше получаете от них проценты за майнинг, подтверждение транзакций, чем больше монет — тем больше получите. Нужно только чтобы ваша нода постоянно функционировала и была подключена к интернету. И тут, как раз, проявляется вся мощь Raspberry.

Что же майнить?

Выбор монеты для майнинга — это дело каждого майнера, можно майнить 808coin, decred, NOVAcoin и другие. Давайте для примера рассмотрим как настроить майнинг Decred на Raspberry Pi 3.

Сначала вам нужно скачать установщик для Linux ARM из официальной страницы программы на GitHub. Нам нужен именно файл dcrinstall-linux-arm-v1.0.8.

 

Затем нужно запустить загруженный файл на вашем устройстве Raspberry, но сначала дайте ему права на выполнение:

chmod u+x dcrinstall-linux-arm-v1.0.8./dcrinstall-linux-arm-v1.0.8

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

После завершения установки бинарные файлы dcrd, dcrwallet и dcrctl будут доступны в папке ~/decred. А конфигурационные файлы для них соответственно в ~/.dcrctl/, ~/.dcrd/, ~/.dcrwallet. Все необходимые настройки для безопасности API RPC тоже будут применены автоматически. Дальше вы можете запустить фоновый сервис:

dcrd

Теперь нам осталось только включить майнинг на Raspberry 3 PoS. Для этого откройте конфигурационный файл ~/.dcrwallet/dcrwallet.conf и включите там такие опции:

enablestakemining=1

В новых версиях кошелька, выше 8.2 эта опция не работает, нужно использовать такие строки:

enablevoting=1enableticketbuyer=1

Последняя строка сообщает кошельку, что вы хотите покупать билеты PoS майнинга, если вы не хотите, установите значение в 0. Дальше нужно добавить такую строку:

balancetomaintain=100

Это количество монет, которые вы собираетесь использовать для майнинга, минимальное количество — 100. Когда вы покупаете билет PoS майнинга, ваши монеты никуда не деваются, но они замораживаются и не доступны для вывода на период майнинга. Теперь вам достаточно подключиться к кошельку через графический интерфейс или dcrctl чтобы начать майнинг.

Выводы

В этой статье мы рассмотрели что такое майнинг на raspberry pi 3, надеюсь, мне удалось вас убедить, что майнинг биткоинов raspberry pi и других модент бессмыслен. Их вообще бессмысленно майнить, тем более еще и на Raspberry. Если у вас остались вопросы, спрашивайте в комментариях!

losst.ru

Raspberry Pi, сигнализация и умный дом / Хабрахабр

Началось все года 4 назад когда во время рабочего дня у меня обчистили квартиру. Попасть домой через дверь после этого уже не удалось из-за поврежденного замка. Неприятное событие заставило задуматься о безопасности жилища. И это лишь одна из причин для мониторинга и автоматизации квартиры. Как часто прийдя на работу (а то и уезжая или улетая куда-либо) вы сомневались выключили ли перед уходом утюг, закрыли ли газ, воду ;-) Подбавим масла в огонь админам — спокойны ли вы что ваш старый БП в работающем системнике дома не чадит и не пылает!?) И что удаленно делать с девайсом, который «наглухо завис».

В этом посте я рассмотрю некоторые существующие на рынке решения, розничную стоимость доступного аппаратного обеспечения и способ как создать сигнализацию квартиры и некоторые из функций «умного дома» используя одноплатный компьютер Raspberry Pi

Безусловно можно подключиться к вневедомственной охране, заплатить втридорого за оборудовани, установку и платить ежемесечную абонентку. Это не вариант для гиков) Охрана дешево не ребутнет зависший дома компьютер и к тому же не все объекты получится сдать под охрану. У всех ли вас есть телефонная линия? ;-)

Университетский друг подсказал как подсоединить датчик движения и задымленности к компьютеру по LPT порту. Этот порт — опция нынче не модная в материнских платах и програмировать ее в ОС работающей в защищенном режиме на языке высокого уровня, а не в однозадачной DOS реального режима, не очень удобно. Олдфаги проклянут меня и с с ностальгией погрустят о звучании Covox на LPT, который когда-то паяли и програмили сами)))

А тем временем датчики пылились в шкафу… С другом-одногруппником удачно вспомнили о USB портах и HID драйверах которые присутствуют «из коробки» во всех современных операционках. Другой друг отлично разбирающийся в электронике, вновь помог с девайсом. В этот раз устройство было на контроллере STM32 Cortex M3. Чтобы не паять «с нуля» купил готовую плату STM32-h203 www.olimex.com/dev/stm32-h203.html и программатор ST-Link. Перспектива програмить для этого контроллера без опыта и без помощи друга мне не улыбалась. В результате у меня теперь пылиться плата микроконтроллера с прошивкой и напаяные на макетник цепи опторазвязки для подключения датчиков на запрограммированные GPIO ноги контроллера. Программить самостоятельно микроконтроллеры STM32 я так и не научился, но из этого решения очень понравилась реализованная идея — доступ к состояниям датчиков через МК по USB Virtual COM Port. В Linux драйвера последовательного интерфейса через USB включены в ядро и доступ из прикладной программы на java это просто чтение и запись текстовых данных в файл. Элегантное решение, можно придумать и реализовать свой текстовый протокол на контроллере. В целом решение для ввода дискретных сигналов в компьютер не самое доступное. Цена такой платы была порядка 1500р, почти такие же деньги стоил программатор. Для добавления новых функций в такой девайс требуются знания сред разработки для контроллера, библиотек функций контроллера, более глубокие знания схемотехники. Отличное решение для тех кто дружит с STM32, Keil и паяльником ;-) Но опять же слишком замороченно для прикладных программистов.

Кажется очевидным — поискать готовые решения. А не тут то было! Цены просто на клемники с опторазвязкой начинаются от 2500р. Блоки, с помощью которых можно коммутировать внешнюю нагрузку с компьютера начинаются от 900р www.chipdip.ru/product/mp709.aspx. Хотя всякому красноглазому понятно что не может настолько дорого стоить дешевое китайской электромагнитное реле с драйверами для windows. Было когда-то у того же мастер кита в продаже более человеческое решение для коммутации сетевой нагрузки, а именно твердотельное реле www.masterkit.ru/info/magshow.php?num=199 (Народ активно применяет похожую схему в своих домашних девайсах arduino-ru.blogspot.com/2009/02/220.html). Розничные цены на твердотельное реле в корпусе начинаются от 600р. Доступных адаптеров для ввода дискретных сигналов по USB нет, есть только дорогие для промэлектроники. К USB 2.0 контроллеру компьютера мне так и не удалось подключить больше одной вещающей в сеть веб камеры. IP камеры все еще достаточно дороги. DVR платы с множеством видеовходов, работающие под linux, надо еще поискать в продаже (есть информация по таким платам на странице проекта zone minder) и они требуют PCI порта. Те которые работают через USB обычно содержат только 1 видеовход.

Из доступных универсальных решений могу отметить NetPing /PWR-220 v2 при достаточно доступной стоимости в 112 у.е. Более дорогое и специализированое устройство для ввода-вывода по USB доступно Geovision GV-IO USB Box 16 Inputs 16 Relay Outputs за 150$. Цена готовой 3G сигнализаций начинается от 3500р за пультовой блок. Много пультов охранных систем расчитанных на аппаратуру какой либо одной фирмы, использующих радиоканал для связи с датчиками, управляемых проприетарным софтом и посылающих СМС только в случае тревоги. А как же «глушители GSM» и радиочастот датчиков!?

Что останавливает нас реализовать массово доступное решение, основаное на open source коде, для охраны квартиры и удаленного управления электронагрузкой? 1. Отсутствие нескольких контактов GPIO в компьютерах для ввода сигнала с датчиков/вывода управляющих сигналов 2. Высокая цена покупки и энергопотребление для постоянно работающего компьютера. 3. Отсутвие доступных массовых плат дискретного ввода/вывода сигналов с опторазвязкой и способностью коммутировать нагрузку в сети переменного тока. 4. Отсутствие доступных USB веб камер с аппаратной компрессией видеопотока. Или же доступной DVR платы со множеством видеовходов для охранных камер с аппаратной компрессией видеопотока.

Появление в продаже одноплатного компьютера Raspberry Pi должно решить первые две проблемы.

Плата судя по документации имеет 8 GPIO. Модификация за 35$ имеет порт Ethernet. В розничной продаже есть usb wifi адаптеры, работающие под Debian linux от 400р. 3G модем без привязки к оператору связи стоит в Связном от 990р. Питание можно получать от USB хаба Defender Septima Light c внешним блоком питания и использовать его по прямому назначению, при этом стоимость его в розничной сети от 440р. Если нам будет нужен микрофонный вход, то можно разориться на китайскую USB аудиокарту за 220р, которую народ успешно использует под linux everybuying.ru/product_info.php?products_id=1469. 8Gb SD карту можно купить в рознице за 300р. Корпус просто как коробка с выводами для проводов для РЭА будет стоить от 160р. Цены на внешние HDD на 500Гб начинаются в районе 2600р (это опционально для работы и нужно лишь в случае файлокачалки, медиаплейера). Да, если вдруг нам будет мало одного ethernet адаптера, то можно купить USB ethernet адаптер. Например TrendNet TU-ET100C за 460р. В любом случае такое решение будет дешевле неттопа минимум в 3-4 раза, энергоэкономичнее и компактнее.

Программировать GPIO в linux достаточно просто — либо используя API на C, либо что удобнее, выполнять доступ через файловую систему

Если будем использовать только для охранных целей, домашний веб, файл сервер и torrent качалку то можно не покупать отдельный монитор и подключаться удаленно с телефона или ноутбука по wifi или с десктопа по ethernet. Если нам будет нужен домашний медиаплейер, то можно подключить его к телевизору по HDMI. А если решим использовать в авто или в качестве видеодомофона, можем приобрести портативный 7" монитор с композитным видеовходом, например Velas VTV-720 (от 1900р). В качестве БП можно использовать зарядку от прикуривателя для USB 300-500р. Для обеспечения бесперебойного питания блоков питания датчиков и Raspberry Pi можно использовать компьютерный источник бесперебойного питания, например APC Back-UPS ES 525VA. При стоимости около 3000р, у этого ИБП есть поддержка сигнализирования об отсутствии внешнего питания и уровня оставшегося заряда батареи через USB выход в linux (у меня все отлично работает в ubuntu).

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

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

Немного о датчиках для систем сигнализации и их стоимости в розницу. Датчик движения стоит около 400р, датчик дыма 400-500р, датчик протечки воды 400-800р, датчик протечки природного газа 1300р, датчик реагирующий на разбивание оконного стекла 400р, геркон (герметичный контакт) который срабатывает на открытие/закрытие двери и рамы окон стоит около 30р))))

Также такое решение подойдет не только для типовой квартиры, но и в случае охраны большой территории. Т.к. эти ЭВМ достаточно дешевые и снабжены всеми необходимыми сетевыми интерфейсами, легко собирать данные и передавать управляющие сигналы. Помехой может быть температурный диапазон в котором работает Raspberry Pi (возможное решение — это корпус с термодатчиком и подогревом), влаго и пыле защищенность (эту проблему можно преодалеть за счет герметичного корпуса).

Мешают провода от датчиков и оптореле/исполнительных механизмов!? Можем сделать менее секьюрным и помехозащищенным соединение. Например с помощью микроконтроллера с интегрированным Zegbee приемопередатчиком. Многие устройства могут питаться от батарей небольшой емкости долгое время и быть доступны по радиоканалу. Управляемым сетевым розеткам и электровыключателям доступно сетевое переменное напряжение, которое можно использовать для питания маломощного контроллера через компактный бестрансформаторный блок питания. На китайском рынке уже есть достаточное колличество устройств, управляемых по Zigbee протоколу. Нашему рынку электронных устройств есть куда стремиться ;-)

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

C точки зрения программиста такое аппаратное обеспечение позволяет передавать сигнал о срабатывании датчиков по SMS, 3G, WiFi, проводному интернет. Достаточно легко создать веб сервис, который позволит получать доступ к домашней охране, веб камерам, управлять розетками. Невозможность подсоединиться к системе — тоже сигнал, что не все в порядке. Возможно получать sms, email, jabber, skype и т.п. оповещения. Для параноиков, недоверяющим веб сервисам можно организовать свой космопарк…

Как вам идея использовать доступную универсальную ЭВМ с linux для охранной системы квартиры, управления системами умного дома и сомещать в ней другие полезные функции? Как второй вариант для использования старых компьютеров разработать плату USB->GPIO на микроконтроллере?

Повторюсь что я программист и не знаю деталей конструирования устройств для серийного производства. Можно ждать появления разработок китайской промышленности, но лучше создать массовое решение раньше и сосредоточится на создании ПО для него. Насколько сложно запустить мелкую серию плат ввод-вывода в производство(до 1000шт.). Где лучше выпускать печатные платы, где лучше выполнять монтаж элементов? Какую себестоимость можно обеспечить для такой партии устройств?

habrahabr.ru

Видеорегистратор на Raspberry Pi

Описание задачи

Необходимо: а) обеспечить запись видео в облачное хранилище при обнаружении движения; б) запись фото с камеры в облачное хранилище по команде, полученной по SMS.

Вариант 1. Обнаружение движение по PIR-датчику.

Необходимое оборудование

RTC модуль

Датчик движения

3G модем (в проекте использовалась модель HUAWEI E171)

Подключение оборудования

Установить RTC модуль и скоммутировать датчик движения:

Разъем датчика Разъем raspberry pi
VCC PIN #2 (5V)
OUT PIN #26 (GPIO 7)
GND PIN #20 (GND)

 

Настройка raspberry pi

1. Включить root

2. Настроить сеть

3. Настроить RTC

4. Задать логин/пароль для автоматического монтирования WebDAV-диска

5. Настроить 3G модем

6. Установить утилиту gammu для обработки SMS

7. Создать скрипт pir_1.py на выполнение команд при срабатывании датчика движения:

# touch pir_1.py # chmod +x pir_1.py # nano pir_1.py

#!/usr/bin/python# Import required Python librariesimport RPi.GPIO as GPIOimport time

# Use BCM GPIO references# instead of physical pin numbersGPIO.setmode(GPIO.BCM)

# Define GPIO to use on PiGPIO_PIR = 7

print "PIR Module Test (CTRL-C to exit)"

# Set pin as inputGPIO.setup(GPIO_PIR,GPIO.IN) # Echo

Current_State = 0Previous_State = 0

try:

 print "Waiting for PIR to settle ..."

 # Loop until PIR output is 0 while GPIO.input(GPIO_PIR)==1:  Current_State = 0 print " Ready"

# Loop until users quits with CTRL-Cwhile True :

 # Read PIR state Current_State = GPIO.input(GPIO_PIR)

 if Current_State==1 and Previous_State==0:  # PIR is triggered  print " Motion detected!"

  #import os  #os.system("/usr/local/bin/capthure.sh")

  import datetime  now_time = datetime.datetime.now()

  import subprocess  #Отправить SMS-уведомление через 3G-модем  #subprocess.call("gammu sendsms TEXT +7xxxxxxxxxx -text cam1_motion_detected", shell=True)  #Отправить SMS-уведомление через SMS-шлюз  subprocess.call("/home/pi/scripts/sendsms.sh &", shell=True)  #Записать видео файл  subprocess.call("raspivid -t 30000 -w 640 -h 480 -rot 180 -o /home/pi/video/'%s'.h364" % now_time.strftime("%d.%m.%Y_%H.%M.%S"), shell=True)  #Сделать снимок  #subprocess.call("raspistill -w 640 -h 480 -rot 180 -o /home/pi/video/'%s'.jpg" % now_time.strftime("%d.%m.%Y_%H.%M.%S"), shell=True)  #Для тестирования (при срабатывании датчика обновится файл test)  #subprocess.call("touch /home/pi/video/test", shell=True)

  # Record previous state  Previous_State=1 elif Current_State==0 and Previous_State==1:  # PIR has returned to ready state  print " Ready"  Previous_State=0

 # Wait for 10 milliseconds time.sleep(0.01)

except KeyboardInterrupt: print " Quit"# Reset GPIO settings GPIO.cleanup()

8. Создать скрипт sendsms.sh на отправку SMS-уведомлений через SMS-шлюз:

# touch sendsms.sh # chmod +x sendsms.sh # nano sendsms.sh

#!/bin/bashcurl "http://sms.ru/sms/send?api_id=xxxxxxxxxxxxxxxxxxxxxxxxxx&to=7xxxxxxxxxx&text=cam1_motion_detected"exit 0

9. Создать скрипт upload.sh на загрузку файлов на WebDAV-диск и очистку локального хранилища:

# touch upload.sh # chmod +x upload.sh # nano upload.sh

#!/bin/bashmount -t davfs https://webdav.yandex.ru /mnt/davtouch /mnt/dav/testfind /home/pi/video -mmin -10 -type f -exec cp {} /mnt/dav \;find /home/pi/video -mmin +10 -type f -deleteumount https://webdav.yandex.ruexit 0

10. Создать скрипт cleandav.sh на очистку WebDAV-диска:

# touch cleandav.sh # chmod +x cleandav.sh # nano cleandav.sh

#!/bin/bashmount -t davfs https://webdav.yandex.ru /mnt/davfind /mnt/dav -mmin +1440 -type f -deleteumount https://webdav.yandex.ruexit 0

11. Создать скрипт checksms.sh на съемку фото по команде "shot", полученной по SMS:

# touch checksms.sh # chmod +x checksms.sh # nano checksms.sh

#!/bin/bashfor file in `ls /var/spool/gammu/inbox`do cmd=`cat /var/spool/gammu/inbox/$file` case "$cmd" in "shot")  raspistill -w 640 -h 480 -rot 180 -o /home/pi/video/$(date +%d.%m.%Y_%H.%M.%S).jpg  ;; esac rm -f /var/spool/gammu/inbox/$filedone

12. Настроить запуск скриптов upload.sh, cleandav.sh и checksms.sh по расписанию:

# crontab -e

*/1 * * * * /home/pi/scripts/checksms.sh*/10 * * * * /home/pi/scripts/upload.sh00 12 * * * /home/pi/scripts/cleandav.sh

13. Прописать скрипт pir_1.py в файле rc.local для автоматического запуска:

# nano /etc/rc.local

python /home/pi/scripts/pir_1.py &

Монтаж

Плату raspberry pi, PIR-датчик и камеру можно смонтировать в корпус из lego. В него же можно разместить блок питания. Рекомендуется 3G модем и WIFI-модуль подключать через активный USB-хаб для более стабильной работы. 

macaddress.ru

Делаем своими руками видеорегистратор из Raspberry Pi - 3 Сентября 2013

"Raspberry Pi  - это одноплатный компьютер, созданный для обучения базовым компьютерным наукам в школах, позиционируется как дешёвое решение для начинающих разработчиков. Выпускается в двух версиях: «A», стоимостью $25, и «B» ($35, с ethernet). Разрабатывается Raspberry Pi Foundation." - Википедия.

Как это будет работать?

Задача Raspberry Pi оборудованной камерой и датчиком движения, записать видео на подмонтированный ресурс файл-сервера. В качестве файл-сервера подойдет любой компьютер на базе Linux или маздая с расшаренным Samba-ресурсом. Если у вас более одного Raspberry Pi используемого в качестве камеры, то на расшаренном ресурсе есть смысл создать каталоги с названием помещений, где будут работать камеры на базе Rasberyy Pi.

Название файлов будут содержать дату и время создания (это просто удобнее чем в виде порядкового номера). Чтобы хранилище не переполнялось, в Cron на одной из камер будет запущен скрипт, который будет удалять старые файлы. События будут писаться после того, как отработает датчик движения, и продолжаться еще какое-то время, которое вы определите сами. Для просмотра видеоинформации можно использовать любой плейер понимающий кодек h364. Так же можно смотреть все на другом Raspberry Pi, с помощью omxplayer, или я предполагаю, что можно использовать дистрибутивы с XBMC.

Конечно это не может сравниться с промышленными образцами видеорегистраторов, но учитывая их стоимость, и стоимости всех лицензий, включая лицензии на камеры - это не плохое решение! Обуревшие до предела производители софта не оставляют нам шансов!

Преступим:

  1. Детали:
  • Raspberry Py
  • Корпус для Raspberry Ry

Датчик движения (PIR Motion sensor) HC-SR501 (подробнее тут):

 

Камера для Raspberry Pi:

Конструкция

Собираем конструкцию как показанно на рисунках:

Камера

Подсоедините камеру к разъему возле ethernet синей ленточкой к ethernet. Просверлите в корпусе отверстие для вывода камеры и для ее крепежа! Будьте внимательны! При креплении камеры её плату нельзя перегибать, даже слабо! Потому, что тогда из неё выпадает передний разъем!

Датчик движения

Датчик движения крепится с наружной стороны корпуса для Raspberry Pi двумя длинными винтами м2.5 и гайками м2.5.Далее подъсоедините датчик к назъему GPIO как показанно на схемах (Расположение контактов датчика смотрите выше):

Всё! С железом мы справились! Теперь пишем рабочие скрипты:

Софт

Создадим скрипт на питоне, как показанно тутhttp://www.raspberrypi-spy.co.uk/archive/python/pir_1.py и немного его доработаем. Суть доработки, это запуск камеры в режиме записи.

Скачать скрипт

Теперь создадим точку монтирования и напишем скрипт для монтирования и очистки просроченных записей видео-событий.

vi /usr/local/bin/inspect.sh #!/bin/bash if [ -d /mnt/video/VIDEO ];then echo "Сервер замонтирован" else         echo "Монтируем сервер" mount.cifs //SERVER/SHARE/ /mnt/video/ -o username=username,password=passwd,domain=DOMAIN fi # очистка старых файлов # +1 один день на зад day=1 echo "Очищаем старые файлы за ${day} дней" find /mnt/video/VIDEO/ -type f -mtime +${day} -delete

Тут подразумевается, что на сервере есть каталог VIDEO. Я рекомендую его назвать по имени охраняемого помещения.

Теперь осталось позаботиться о том, чтобы скрипт запустился при загрузке и в Cron. Почему в Cron? А, чтобы постоянно проверял наличие замонтированного каталога и чистил старые файлы.

... /usr/local/bin/inspect.sh /usr/local/bin/wideo-service.py exit 0 * */1 * * * /usr/local/bin/inspect.sh

Что можно добавить? Я рекомендую в кроме запуска камеры посылать на пост охраны по Jabber или Winpopup сообщения о наличии движения в помещении. Это не сложно и я описывать это не буду, всё можно сделать по аналогии с запуском камеры.

Оригинал статьи.

http://linuxcenter.kz/page/%D0%B4%D0%B5%D0%BB%D0%B0%D0%B5%D0%BC-%D1%81%D0%B2%D0%BE%D0%B8%D0%BC%D0%B8-%D1%80%D1%83%D0%BA%D0%B0%D0%BC%D0%B8-%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D1%80%D0%B5%D0%B3%D0%B8%D1%81%D1%82%D1%80%D0%B0%D1%82%D0%BE%D1%80-%D0%B8%D0%B7-raspberry-pi

laptop.ucoz.ru

Raspberry Pi - обсуждение - 4PDA

  1. видеорегистратор raspberry

fia.25privat.tk - В том же мануале есть описания всех функций конфигурационного файла. vac.privat25.ml - However, when I start Midori and enter http://localhost/zm I get 8220 Not Found: The requested URL /zm was not found on this server 8221 . b5p.25privat.gq - If you've chosen a device that's compatible with Linux and requires no additional driver files, then you can simply plug in your device and move on to the next step. xvd.privat25.ga - http://terminal28.com/how-to-install-and-configure-zoneminder-linux-cctv-debian/ Have you tried to connect to a USB cam? 7ip.privat25.gq - К тому же, как я писал выше, размер этого участка будет зависеть и от разрешения. bpd.25privat.ml - We'd recommend connecting an external USB hard drive, as the constant read/write access will test the average SD card to its limits. njs.25privat.ml - Можно задать параметры 50 Гц, 60 Гц, Авто, Отключить фильтр и Не изменять настройки устройства, для каждого параметра свое значение -1,0,1,2,3. uh7.privat25.tk - We tested and configured two USB receiver devices, one for grabbing terrestrial digital television through an aerial and another for grabbing the data from a satellite feed. nys.privat25.gq - From the Raspberry Pi command line, type: Sign up for a new, free business service from TechRadar Pro to help you in your job delivering high value, original content direct to your inbox TechRadar is part of Future plc, an international media group and leading digital publisher. y62.25privat.tk - By the way, the zoneminder team is working hard on the new 1.26 release: http://www.zoneminder.com/content/zoneminder-126-underway https://github.com/ZoneMinder/ZoneMinder/branches Pingback: Using the Raspberry Pi for something other than XBMC?

Dride — умный автомобильный видеорегистратор. — MirComputer

Необходимо подобрать значение, при котором ложных сработок будет меньше, но чтобы и не упустить возможное движение. Type sudo mkdir /mnt/storage to create a mount point and sudo mount /dev/sda1 /mnt/storage/ to connect it to your external device. Самое главное - правильно все настроить, а чтобы сделать это с первого раза и "забыть", необходимо учитывать все нюансы. Frame Change Threshold - минимальный фрагмент площади изображения, при изменении которого будет зафиксировано движение. For DVB-T (terrestrial) reception, we used a Sundtek MediaTV Pro, for DVB-S (satellite) reception, we used the Sundtek SkyTV Ultimate.

freezerdev: Raspberry Pi DVR - tvheadend

(Есть ли возможность подключение камеры видеонаблюдения к raspberry pi? 2 подписчика. ELP Мини-ПК Видеокарта HDMI выход для Raspberry pi Linux OS захвата видео декодер)

The Raspberry Pi is perfectly suited to this, too, and with the appropriate hardware it can be turned into a powerful low-cost digital video recorder, complete with media streaming, scheduling and time shift. zm/index.php I can only see some options and the page cycled and begin refreshing a lot of times, after that it send me to a page that says: Not Found The requested URL / zm / undefined was not found on this server. Motion Gap - время, отсчитываемое после окончания фактического движения, в течении которого motion будет считать, что движение все еще идет. Hello, I tried doing the apt-get install zoneminder on my pi and I get mysql errors after entering a root password. And while these instructions start from the command line, we've split the entire tutorial into 10 different steps, hopefully making the project as easy to follow as possible. You'll see output similar to usb 1-1.3.4.2: New USB device , and you'll need to look for the device identifier, which should look something like sda: sda1 &ndash sda is the device itself, while sda1 is a partition. Речь пойдет о том, как "по-быстрому" сделать систему видеонаблюдения на Raspberry Pi, работающую "из коробки", а также о некоторых нюансах, которые могут возникать по ходу работы. Hardware Makers I have followed step by step in this tutorial, everything is describe, how to install and configure ZoneMinder on Debian/Ubuntu. It 8217 s time to try the latest zm version available: 1.26.3 I installed in a RaspberryPi with debian and made ​​it to the login screen. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this. It's the perfect backend for the just-released XBMC, which you'll be able to use as a front-end from any other computer on the same network. Thanks for responses Hi Dirk, you should perform some tests in order to make sure that the Raspberry Pi can manage both cams at a reasonable bitrate: don 8217 t forget that it has limited capabilities for such kind of things. And despite their lack of CPU power, they're all more than capable of recording and playing several channels at the same time, as well as streaming the data across your local network. To add storage like this, simply plug the device into a spare USB port and check the output from the system logs by typing tail /var/log/ messages. Hi Charles, try with this: sudo ln -s /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf sudo /etc/init.d/apache2 reload Hi, try to have a look to the official zoneminder forum.

r4y.19qw.ml


Смотрите также