CCTV project
| ||
| ||
Статус | Працуе | |
---|---|---|
Тып | Праект | |
Пачатак працы | 09.2016 | |
Апісанне | Стварэнне сістэмы відэназірання | |
Графік | Што Серада, з 18:00 да 21:00 | |
Кошт уваходу | Бескаштоўна | |
Кіраўнік | Chec Saup | |
Месца | База Фаланстэра | |
Кантакты | ||
Канчатак працы |
Кароткае апісанне
CC TV project - гэта праэкт, які закліканы забяспечыць базу Фаланстэра відэаназіраннем на будове міні-кампутараў Raspberry Pi 2 model B V1.1 і камер Raspberry Camera V2.1 ды USB.
Апісанне
CC TV project накіраваны на забяспячэнне базы Фаланстэра сістэмай відэаназірання, каб павялічыць узровень бяспекі памяшкання. Праэкт рэлізуецца на падставе міні-кампутараў Raspberry Pi 2 model B (V1.1), модуля-камеры Raspberry Camera V2.1, USB-камеры ды GPIO-датчыкаў руху для камп'ютараў Raspberry Pi. Для працы анлайн трансляцыі з камер выкарыстоўваецца ПЗ motion.
Плануецца, што сістэма назірання будзе пачынаць працу пасля рэгістравання руху ў памяшканні. Са стартам працы, будзе весціся запіс відэа. Запісы будуць захоўвацца на міні-кампутары, праз некаторы перамяшчацца на сэрвер Фаланстэра.
Пад час працы выкарыстоўваліся:
- Аперацыйная cістэма Linux Ubuntu 16.04 (LTS);
- Аперацыйная cістэма Raspbeian Stretch (LITE);
- Міні-кампутар Raspberry Pi 2 model B V1.1 (3 штукі);
- Модуль-камера Raspberry Camera V2.1;
- USB-камера Logitech;
- GPIO-датчык руху для Raspberry Pi (4 штукі);
- GPIO-дроты для Raspberry Pi;
- Ethernet-дроты;
- Акумулятар 18650 (4 шуткі);
- Зараднае micro-USB для акумулятара 18650 (4 шуткі);
- Павышаючы змяняльнік (4 штукі);
- Micro-USB дроты;
- Праграмнае забеспячэнне NMap;
- Праграмнае забеспячэнне motion-mmal;
- Дранік сервер Фаланстэра;
- Мова праграмавання Python;
Рух працы
Этап 0: падрыхтоўка міні-кампутара Raspberry Pi да парцы
Для пачатка працы з кампутарам, трэба распакаваць архіў з аперацыйнай сістэмай на SD-картку Raspberry Pi. Каманда праэкта выкарыстоўвала Lite версію, у якой няма працоўнага стала, праца вялася толькі праз кансоль. Пасля распакоўкі архіва з АС, трэба стварыць файл "ssh" (у дзьвухкоссі, без пашырэння), каб мець дасяг праз SSH (шыфраваны ўдалёны дасяг). Спачатку працы сістэмы ўдалёны дасяг адключаны, таму каб задзейнічаць яго, ствараць файл ці мець дасяг да графічнага асяроддзя АС.
Пасля атрымання ўдалёнага дасягу, можна далучацца з дапамогай SSH: ssh pi@[ip_адрас_Raspberry PI] (мы даведаліся адрас нашага дэвайся з дапамогай ПЗ nMap). Стандартны пароль для далучэння: raspberry
Пасля ўвахода трэба аднавіць сістэму:
- sudo apt-get update
- sudo apt-get upgrade
Пасля аднаўлення сістэмы трэба ўсталяваць статычны IP-адрас для Raspberry Pі для палягчэння працы. Для гэтага трэба разкаментаваць (выдаліць сімвал #) ды змяніць значэнні ў патрэбных радках дакумента dhcpcd.conf:
- Рэжым радактавання дакумента: sudo nano /etc/dhcpcd.conf;
- пасля радку # Example static IP configuration: разкаментаваць пяць настпных радкоў;
- пасля радка interface eth0 ідуць налады статычнага IP-адраса для бяздротавых сетак;
- у радку static ip_address змяняеце дадзеныя пасля = на [патрэбны_ip_адрас]/24;
- у радку static routers, пасля сымвала =, змяняеце дадзеныя на IP-адрас вашага роўтэра ці мадэма.
Камбінацыяй Ctrl+Z захоўваем дакумент і выходзім з рэжыма рэдагавання.
Для пачатку працы налад, трэба перазагрузіць міні-кампутар камандай: sudo reboot
Этап 1: усталёўка і наладка ПЗ motion-mmal, наладка і запуск анлайн трансляцыі ў межах VLAN
На пачатку першага этапа працы, была ўсталявана модуль-камера Raspberry Pi у патрэбны слот на плаце міні-кампутара (слот знаходзіцца блізка да парта HDMI ды падпісаны як camera). Пасля трэба ўключыць модуль-камеру праз меню, каманда: sudo raspi-config (раздзел Interfacing Options). Міні-кампутар трэба перазагрузіць.
Для стабільнай працы ПЗ motion-mmal трэба ўсталяваць патрэбныя бібліятэкі: sudo apt-get install -y libjpeg62 libjpeg62-dev libavformat53 libavformat-dev libavcodec53 libavcodec-dev libavutil51 libavutil-dev libc6-dev zlib1g-dev libmysqlclient18 libmysqlclient-dev libpq5 libpq-dev
Пасля было сцягнута ды ўсталявана само ПЗ: wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz , распакоўваем камандай tar zxvf motion-mmal.tar.gz
Цяпер усталёўваем Motion: sudo apt-get install motion
У дакуменце motion-mmalcam.conf трэба зрабіць і захваць патрэбныя налады. Каманда праэкта зрабіла наступныя змены (далей ідуць радкі са зменамі):
- daemon on
- framerate=1000
- width=720
- height480
- quality=80
- post_capture=5
- Stream_port=1233
- Stream_quality=80
- Stream_localhost=off
- webcontrol_localhost=off
Для якаснай працы ПЗ і камеры былі ўсталяваны драйвера на модуль: sudo modprobe bcm2835-v4l2 . Ды дадан радок bcm2835-v4l2 у дакумент /etc/modules .
Для пачатку працы было перазагружана ПЗ і дэвайс: sudo service motion restart
Для запуска анлайн трансляцыі ў межах VLAN трэба далучыцца і выканаць каманду: sudo motion
Дасяг да анлайн стрымінга можна атрымаць праз браўзер, па адрасе: http://[IP-адрас Raspberry Pi]:[порт прапісаны ў наладах ПЗ motion]
Этап 2: далучэнне датчыка руху да платы міні-кампутара і тэст датчыка
Далучэнне датчыка руху
Датчык мае некалькі пінаў адзін з якіх яўляецца "+" пітання(VCC), другі "зямлёй"(GND), а трэцці ціфравым каналам данных (Output). Па-першае патрэбна фiзічна падключыць датчык да "малінкі". Для гэтага патрэбна на піны GPIO "малінкі" падключыць датчык у наступная паслядоўнасці: на другі пін накідваецца пітанне (VCC), на шосты зямля (GND), а правадок выхада (Output) патрэбна падключыць да сёмага піна. А па другое трэба разгарнуць тэрмінал і пратэсціць.
Тэста датчыка руху
Як было напісана ў папярэднім пункце, мы павінны разгарнуць тэрмінал. А потым зрабіць файл у які будзе запісаны наш скрыпт, кіруючы сувяззю датчыка з "малінкаю".
Для працы скрыпта усталёўваем pip: sudo apt-get install python-pip .
Ды таксама ўсталёўваем модуль gpiozero: pip install gpiozero
Цяпер пачынаем пісаць сам скрыпт. Для гэтага прапісваем nano + *назва файла*. Потым у перамясціўшыся ў рэдактар прапісваем там наступны скрыпт:
import time # імпартуем бібліятэку "тайм". from gpiozero import MotionSensor # Імпартуем бібліятэку датчыка руху. pir = MotionSensor(4) # задаем іменна такі парметр для нашага датчыка. while True: # пачынаем цыкл з умовай. if pir.motion_detected: # прапісваем умову на вынік абнаружэння датчыкам чаго-небудзь. print('Motion detected') # выводзіцца паведамленне у тэрмінал. time.sleep(10) # датчык адключаецца на 10 секунд.
пасля захоўваем гэты скрыпт з пашырэннем " .ру ".
Карысныя спасылкі
- Старонка з АС для ўсталявання на міні-камп'ютар Raspberry Pi
- Інвайт-спасылка на Trello-дошку праэкта CCTV project
- Старонка з выкарастаным прыкладам бесперабойнага сілкавання для міні-кампутара Raspberry Pi
- Апісанне "headless" спосаба запуска SHH
- Старонка форума з выкарыстаным выйсцем для сумеснай працы модуля-камеры і ПЗ motion
- Старонка з выкарыстаным развязкам для тэста датчыка руху
- Дакументацыя па стандартным дадаткам камеры Raspberry Pi
- Сэрвіс які быў выкарастаны для састаўлення блок-схемаў
Адказны
Аддказны за праэкт - Chec Saup - ён еблан