CCTV project — различия между версиями

Материал из Вікі Фаланстэра
Перейти к: навигация, поиск
 
(не показано 30 промежуточных версии 2 участников)
Строка 1: Строка 1:
 
{{Праект
 
{{Праект
 
  |Назва            =  CCTV project
 
  |Назва            =  CCTV project
 +
|Лагатып          =  [[Файл:Cctvpr.png|мини]]
 
  |Статус          =  Працуе
 
  |Статус          =  Працуе
 
  |Тып              =  Праект
 
  |Тып              =  Праект
 
  |Пачатак працы    =  09.2016
 
  |Пачатак працы    =  09.2016
  |Апісанне        =  стварэнне сістэмы відэназірання
+
  |Апісанне        =  Стварэнне сістэмы відэназірання
  |Графік          =  што Серада, з 18:00 да 21:00
+
  |Графік          =  Што Серада, з 18:00 да 21:00
 +
|Кошт уваходу    =  Бескаштоўна
 
  |Кіраўнік        =  [[Участник:Chec_saup|Chec Saup]]
 
  |Кіраўнік        =  [[Участник:Chec_saup|Chec Saup]]
  |Месца            =  база Фаланстэра
+
  |Месца            =  База Фаланстэра
 +
|Кантакты        =
 +
|Канчатак працы  = 
 
}}
 
}}
  
 
==Кароткае апісанне==
 
==Кароткае апісанне==
CC TV project - гэта праэкт, які закліканы забяспечыць базу Фаланстэра відэаназіраннем на будове міні-камп'ютараў Raspberry Pi 2 model B V1.1 і камер Raspberry Camera V2.1 (ды 1.2).
+
CC TV project - гэта праэкт, які закліканы забяспечыць базу Фаланстэра відэаназіраннем на будове міні-кампутараў Raspberry Pi 2 model B V1.1 і камер Raspberry Camera V2.1 ды USB.
  
 
==Апісанне==
 
==Апісанне==
 
CC TV project накіраваны на забяспячэнне базы Фаланстэра сістэмай відэаназірання, каб павялічыць узровень бяспекі памяшкання.  
 
CC TV project накіраваны на забяспячэнне базы Фаланстэра сістэмай відэаназірання, каб павялічыць узровень бяспекі памяшкання.  
Праэкт рэлізуецца на падставе міні-камп'ютараў Raspberry Pi 2 model B (V1.1), модуля-камеры Raspberry Camera V2.1 (магчыма будуць выкарыстоўвацца USB-камеры) ды GPIO-датчыка руху для камп'ютараў Raspberry Pi. Для працы трансляцыі з камер выкарыстоўваецца ПЗ Motion.
+
Праэкт рэлізуецца на падставе міні-кампутараў Raspberry Pi 2 model B (V1.1), модуля-камеры Raspberry Camera V2.1, USB-камеры ды GPIO-датчыкаў руху для камп'ютараў Raspberry Pi. Для працы анлайн трансляцыі з камер выкарыстоўваецца ПЗ motion.
 
   
 
   
Плануецца, што сістэма назірання будзе пачынаць працу пасля рэгістравання руху ў памяшканні. Са стартам працы сістэмы будзе весцціся запіс трансляцыі. Запісы будуць захоўвацца на міні-камп'ютары, а пасля перамяшчацца на сэрвер Фаланстэра.
+
Плануецца, што сістэма назірання будзе пачынаць працу пасля рэгістравання руху ў памяшканні. Са стартам працы, будзе весціся запіс відэа. Запісы будуць захоўвацца на міні-кампутары, праз некаторы перамяшчацца на сэрвер Фаланстэра.
  
 
====Пад час працы выкарыстоўваліся:====
 
====Пад час працы выкарыстоўваліся:====
 
# Аперацыйная cістэма Linux Ubuntu 16.04 (LTS);
 
# Аперацыйная cістэма Linux Ubuntu 16.04 (LTS);
 
# Аперацыйная cістэма Raspbeian Stretch (LITE);
 
# Аперацыйная cістэма Raspbeian Stretch (LITE);
# Міні-камп'ютар Raspberry Pi 2 model B V1.1 (3 штукі);
+
# Міні-кампутар Raspberry Pi 2 model B V1.1 (3 штукі);
 
# Модуль-камера Raspberry Camera V2.1;
 
# Модуль-камера Raspberry Camera V2.1;
 
# USB-камера Logitech;
 
# USB-камера Logitech;
Строка 34: Строка 38:
 
# Праграмнае забеспячэнне NMap;
 
# Праграмнае забеспячэнне NMap;
 
# Праграмнае забеспячэнне motion-mmal;
 
# Праграмнае забеспячэнне motion-mmal;
 +
# Дранік сервер Фаланстэра;
 +
# Мова праграмавання Python;
  
 
==Рух працы==  
 
==Рух працы==  
  
===Этап 0: падрыхтоўка міні-камп'ютара Raspberry Pi да парцы===
+
===Этап 0: падрыхтоўка міні-кампутара Raspberry Pi да парцы===
Для пачатка працы з камп'ютарам, трэба распакаваць архіў з аперацыйнай сістэмай на SD-картку Raspberry Pi. Каманда праэкта выкарыстоўвала Lite версію, у якой няма працоўнага стала, праца вялася толькі праз кансоль.  
+
Для пачатка працы з кампутарам, трэба распакаваць архіў з аперацыйнай сістэмай на SD-картку Raspberry Pi. Каманда праэкта выкарыстоўвала Lite версію, у якой няма працоўнага стала, праца вялася толькі праз кансоль.  
 
Пасля распакоўкі архіва з АС, трэба стварыць файл '''"ssh"''' (у дзьвухкоссі, без пашырэння), каб мець дасяг праз SSH (шыфраваны ўдалёны дасяг). Спачатку працы сістэмы ўдалёны дасяг адключаны, таму каб задзейнічаць яго, ствараць файл ці мець дасяг да графічнага асяроддзя АС.
 
Пасля распакоўкі архіва з АС, трэба стварыць файл '''"ssh"''' (у дзьвухкоссі, без пашырэння), каб мець дасяг праз SSH (шыфраваны ўдалёны дасяг). Спачатку працы сістэмы ўдалёны дасяг адключаны, таму каб задзейнічаць яго, ствараць файл ці мець дасяг да графічнага асяроддзя АС.
  
Строка 47: Строка 53:
 
* '''sudo apt-get upgrade'''  
 
* '''sudo apt-get upgrade'''  
  
Пасля аднаўлення сістэмы трэба ўсталяваць статычны IP-адрас для Raspberry PI для палягчэння працы. Для гэтага трэба разкаментаваць (выдаліць сімвал '''#''')
+
Пасля аднаўлення сістэмы трэба ўсталяваць статычны IP-адрас для Raspberry для палягчэння працы. Для гэтага трэба разкаментаваць (выдаліць сімвал '''#''')
 
ды змяніць значэнні ў патрэбных радках дакумента '''dhcpcd.conf''':
 
ды змяніць значэнні ў патрэбных радках дакумента '''dhcpcd.conf''':
 
# Рэжым радактавання дакумента: '''sudo nano /etc/dhcpcd.conf''';
 
# Рэжым радактавання дакумента: '''sudo nano /etc/dhcpcd.conf''';
Строка 57: Строка 63:
 
Камбінацыяй Ctrl+Z захоўваем дакумент і выходзім з рэжыма рэдагавання.  
 
Камбінацыяй Ctrl+Z захоўваем дакумент і выходзім з рэжыма рэдагавання.  
  
Для пачатку працы налад, трэба перазагрузіць міні-камп'ютар камандай: '''sudo reboot'''
+
Для пачатку працы налад, трэба перазагрузіць міні-кампутар камандай: '''sudo reboot'''
  
 
===Этап 1: усталёўка і наладка ПЗ motion-mmal, наладка і запуск анлайн трансляцыі ў межах VLAN===
 
===Этап 1: усталёўка і наладка ПЗ motion-mmal, наладка і запуск анлайн трансляцыі ў межах VLAN===
На пачатку першага этапа працы, была ўсталявана модуль-камера Raspberry Pi у патрэбны слот на плаце міні-камп'ютара, сам камп'ютар быў перазагружаны.  
+
На пачатку першага этапа працы, была ўсталявана модуль-камера 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'''
 
Для стабільнай працы ПЗ 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'''
Строка 66: Строка 72:
 
Пасля было сцягнута ды ўсталявана само ПЗ: '''wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz''' , распакоўваем камандай '''tar zxvf motion-mmal.tar.gz'''
 
Пасля было сцягнута ды ўсталявана само ПЗ: '''wget https://www.dropbox.com/s/xdfcxm5hu71s97d/motion-mmal.tar.gz''' , распакоўваем камандай '''tar zxvf motion-mmal.tar.gz'''
  
У дакуменце '''motion-mmalcam.conf''' трэба зрабіць і захваць патрэбныя налады. Каманда праэкта зрабіла наступнае (далей ідуць радкі са зменамі):
+
Цяпер усталёўваем Motion: '''sudo apt-get install motion'''
 +
 
 +
У дакуменце '''motion-mmalcam.conf''' трэба зрабіць і захваць патрэбныя налады. Каманда праэкта зрабіла наступныя змены (далей ідуць радкі са зменамі):
 
* daemon on
 
* daemon on
 
* framerate=1000
 
* framerate=1000
Строка 77: Строка 85:
 
* Stream_localhost=off
 
* Stream_localhost=off
 
* webcontrol_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 секунд.
 +
пасля захоўваем гэты скрыпт з пашырэннем " .ру ".
 +
 +
==Карысныя спасылкі==
 +
* [https://www.raspberrypi.org/downloads/ Старонка з АС для ўсталявання на міні-камп'ютар Raspberry Pi]
 +
* [https://trello.com/b/rM69rK5Y Інвайт-спасылка на Trello-дошку праэкта CCTV project]
 +
* [http://raspberrypi.azm.su/page63.html Старонка з выкарастаным прыкладам бесперабойнага сілкавання для міні-кампутара Raspberry Pi]
 +
* [https://learn.adafruit.com/adafruits-raspberry-pi-lesson-6-using-ssh/enabling-ssh Апісанне "headless" спосаба запуска SHH]
 +
* [https://www.raspberrypi.org/forums/viewtopic.php?f=43&t=50243 Старонка форума з выкарыстаным выйсцем для сумеснай працы модуля-камеры і ПЗ motion]
 +
* [https://howchoo.com/g/zjm2yta3ogj/how-to-set-up-a-pir-motion-sensor-on-the-raspberry-pi Старонка з выкарыстаным развязкам для тэста датчыка руху]
 +
* [https://www.raspberrypi.org/documentation/raspbian/applications/camera.md Дакументацыя па стандартным дадаткам камеры Raspberry Pi]
 +
* [https://www.draw.io/ Сэрвіс які быў выкарастаны для састаўлення блок-схемаў]
  
 
==Адказны==
 
==Адказны==
Аддказны за праэкт - [[Участник:Chec_saup|Chec Saup]]
+
Аддказны за праэкт - [[Участник:Chec_saup|Chec Saup]] - ён еблан
  
 
[[category: Праекты‏‎]]
 
[[category: Праекты‏‎]]

Текущая версия на 21:41, 13 декабря 2017

CCTV project
Cctvpr.png
Статус Працуе
Тып Праект
Пачатак працы 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.

Плануецца, што сістэма назірання будзе пачынаць працу пасля рэгістравання руху ў памяшканні. Са стартам працы, будзе весціся запіс відэа. Запісы будуць захоўвацца на міні-кампутары, праз некаторы перамяшчацца на сэрвер Фаланстэра.

Пад час працы выкарыстоўваліся:

  1. Аперацыйная cістэма Linux Ubuntu 16.04 (LTS);
  2. Аперацыйная cістэма Raspbeian Stretch (LITE);
  3. Міні-кампутар Raspberry Pi 2 model B V1.1 (3 штукі);
  4. Модуль-камера Raspberry Camera V2.1;
  5. USB-камера Logitech;
  6. GPIO-датчык руху для Raspberry Pi (4 штукі);
  7. GPIO-дроты для Raspberry Pi;
  8. Ethernet-дроты;
  9. Акумулятар 18650 (4 шуткі);
  10. Зараднае micro-USB для акумулятара 18650 (4 шуткі);
  11. Павышаючы змяняльнік (4 штукі);
  12. Micro-USB дроты;
  13. Праграмнае забеспячэнне NMap;
  14. Праграмнае забеспячэнне motion-mmal;
  15. Дранік сервер Фаланстэра;
  16. Мова праграмавання 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:

  1. Рэжым радактавання дакумента: sudo nano /etc/dhcpcd.conf;
  2. пасля радку # Example static IP configuration: разкаментаваць пяць настпных радкоў;
  3. пасля радка interface eth0 ідуць налады статычнага IP-адраса для бяздротавых сетак;
  4. у радку static ip_address змяняеце дадзеныя пасля = на [патрэбны_ip_адрас]/24;
  5. у радку 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 секунд. 

пасля захоўваем гэты скрыпт з пашырэннем " .ру ".

Карысныя спасылкі

Адказны

Аддказны за праэкт - Chec Saup - ён еблан