RaspberryPi ca soluție NVR

Recent, una dintre rudele mele apropiate a vrut să instaleze un plan de securitate în casa sa folosind o soluție CCTV (televiziune cu circuit închis aka supraveghere video). Am primit câteva oferte de preț care erau clar în afara bugetului pentru noi (cel mai mic preț a fost de 1300€, incluzând 4 camere, o cutie NVR și configurația).

Provocarea mea a fost să reduc prețul cu cel puțin 2, incluzând hardware-ul, software-ul și configurația. Beneficiul subiacent este, de asemenea, de a explora și de a învăța.

Îmi place să încep mai întâi cu concluziile, astfel încât să puteți citi mai departe detaliile dacă sunteți interesați.

  • Nu folosiți un server la distanță ca soluție hardware NVR. Folosiți în schimb un hardware local, cum ar fi cel raspberryPI.
  • Așa, un raspberryPI cu un sistem de operare ușor (Raspbian Stretch Lite) va fi folosit ca soluție hardware NVR (Network Video Recording), deoarece Raspberry are capacități hardware de codificare/decodificare H264.
  • Shinobi este o soluție CCTV Open Source care se va instala pe acel dispozitiv raspberry PI și îl va folosi ca soluție software NVR.
  • Cumpărați-vă camerele având 2 cerințe obligatorii: acestea trebuie să fie compatibile cu IP și trebuie să fie conforme cu standardele ONVIF. Configurarea camerelor dvs. în cadrul soluției CCTV va fi abordată într-o altă postare pe blog.

Software : Open Source Shinobi

Open Source nu înseamnă neapărat gratuit, dar are avantajul de a deschide codul sursă. Iar ca inginer de software, prefer să plătesc pentru un software în care pot săpa și modifica, decât pentru unul închis.

După investigații, există o soluție CCTV open source numită shinobi pe care o vom folosi. Este dezvoltată cu nodeJs (javascript pe partea de server). Proiectul este destul de activ și există 2 versiuni : Community Edition, care este gratuită și se află sub GPLv3, și o versiune Pro, care are un abonament lunar și se află sub un EULA (end user licensing agreement) specific. Cu toate acestea, puteți folosi versiunea Pro și pentru uz personal, ceea ce este cazul meu.

Hardware : Camere foto

Există o grămadă de camere foto, cu diverse capacități și diverse prețuri ! Pe care să o achiziționați și să o instalați ?!

În acest articol, nu vă voi recomanda un anumit dispozitiv de cameră, deoarece depinde nu numai de bugetele fiecăruia, ci și de nevoile fiecăruia (viziune nocturnă, detecții, audio, calitatea obiectivului…). Dar, există cu siguranță un punct de care trebuie să țineți cont atunci când o achiziționați pe a dvs. : camera dvs. ar trebui să fie un dispozitiv IP și ar trebui să fie conformă cu ONVIF.

ONVIF este un forum deschis al industriei care oferă și promovează interfețe standardizate pentru interoperabilitatea eficientă a produselor de securitate fizică bazate pe IP.

Aceasta înseamnă că, indiferent de producător, dacă camera dvs. este conformă cu ONVIF, atunci aceasta implementează standardele deschise ale industriei. Acest lucru vă va oferi posibilitatea de a interconecta mai multe dispozitive între ele și, cel mai important pentru noi, de a utiliza NVR-ul nostru Open Source Shinobi pentru a descoperi și comunica cu camerele noastre.

Voi face o altă postare în care voi arăta cum să vă configurați camerele și să le conectați la Shinobi. Dar haideți mai întâi să facem să funcționeze Shinobi, care este scopul acestui artico.

Serverul de la distanță ca hardware NVR : soluție proastă

În timpul experimentului meu, am încercat mai întâi să instalez Shinobi pe un server de la distanță având un Atom N2800 1,86GHz, 4GB de RAM pe care l-aș folosi ca hardware NVR. Dar pentru a-mi conecta camerele pe acel server de la distanță, a trebuit să-mi configurez routerul local pentru a redirecționa portul pentru fluxul în timp real de la cameră, dar și portul său de protocol ONVIF. De asemenea, a existat o latență uriașă de la streamingul camerei la acel server NVR de la distanță (limitată de lățimea de bandă de încărcare a internetului meu).

Așa că am decis să instalez un hardware NVR care să fie în aceeași rețea locală cu camerele. Beneficiile sunt multiple :

  • Nu deschide fluxul în exterior (ceea ce ar putea fi o breșă de securitate).
  • Având o buclă strânsă între camere și hardware-ul NVR din rețeaua locală

Server local ca hardware NVR: soluție mai bună

Server NVR la distanță: soluție foarte proastă. Așa că alegerea mea a mers pe utilizarea unui raspberryPI. Prețul este cu adevărat accesibil pentru cazul nostru de utilizare (aproximativ 35 €), iar capacitățile hardware mai mult decât suficiente. Cea mai importantă caracteristică este capacitatea sa de codificare/decodificare hardware H264.

Am avut un raspberryPI acasă, care este modelul 1B+ din 2014. Își face treaba, dar dacă nu sunteți dotați, vă recomand să achiziționați cel mai recent model de până acum (modelul 3 B+).

Instalarea Shinobi pe zmeura

Înainte de a instala orice software pe zmeura noastră, trebuie să instalăm sistemul de operare. În cazul nostru, vom folosi o versiune Raspbian foarte ușoară, fără GUI

Instalați Raspbian pe PI

  • Descărcați Raspbian Stretch Lite (fără pachete pentru GUI) pe computerul dvs. de la https://www.raspberrypi.org/downloads/raspbian/
  • Verificați dacă nu există nici o corupție pe zip-ul proaspăt descărcat
$ shasum -a 256 2018–11–13-raspbian-stretch-lite.zip
  • Instalați imaginea Raspbian pe SDCard-ul dvs. Pentru comoditate, puteți folosi un instrument grafic drag&drop numit Etcher : https://www.raspberrypi.org/documentation/installation/installing-images/README.md
  • Inserați cardul SD în raspberry PI, conectați o tastatură, HDMI-ul & porniți raspberry.

Conectați-vă la PI

  • Conectați-vă la raspberry. Autentificarea implicită este pi, parola este raspberry.
  • În primul rând, schimbați parola utilizatorului ‘pi’ din motive de securitate. Pentru a face acest lucru :
$ passwd
  • actualizați pachetele pe PI-ul dvs. dacă este necesar pentru a avea cele mai recente versiuni ale oricăruia dintre ele
$ sudo apt-get update && sudo apt-get upgrade

Activați SSH pe zmeura dvs.

În primul rând, verificați pe zmeura dvs. dacă serviciul SSH este în funcțiune

$ sudo service ssh status

(sfat : puteți verifica toate serviciile de pe dispozitivul dvs. executând următoarea comandă :

$ sudo service --status-all

Dacă ssh este activ, săriți peste acest pas; în caz contrar, rulați serviciul

$ sudo service ssh start

# Pentru viitoarele porniri, trebuie să activați ssh la pornire
* soluția 1

$ sudo update-rc.d ssh defaults
$ sudo update-rc.d ssh enable
  • soluția 2
    sau, De asemenea, puteți configura zmeura dvs. utilizând instrumentul dedicat :
$ sudo raspi-config
>> Interface Settings
>> SSH
>> ENABLE

Accesează-ți zmeura prin ssh

Pentru a accesa dispozitivul din rețeaua locală, trebuie să cunoști adresa IP locală a acestuia. Cu toate acestea, această adresă este atribuită de routerul dvs. și se poate schimba în timp.

  • Deci, fie setați un IP static pentru raspberryPI configurând routeur-ul (asociind un IP local static la adresa MAC a raspberryPI).
  • Sau, soluția preferată aici : verificați numele de gazdă al raspberry-ului dvs. executând comanda
$ hostname

În cazul meu, numele de gazdă al dispozitivului este raspberrypi. Pot apoi să fac cu ușurință ssh pe pi fără a cunoaște adresa ip a acestuia, prin următoarea comandă :

$ ssh [email protected]

Instalează Shinobi

Acum că sistemul nostru de operare este configurat corect și că putem accesa dispozitivul nostru prin ssh, haideți să instalăm Shinobi. Cel mai simplu este să rulați următoarea comandă pe PI-ul vostru (așa cum este definit în documentație) :

$ sudo su
$ sh <(curl -s https://gitlab.com/Shinobi-Systems/Shinobi-Installer/raw/master/shinobi-install.sh)

Instalarea va fi interactivă, după cum urmează :

# install location
Install Location for Shinobi
*Note : Default install location is "/home"
Do you want to install a custom location for Shinobi?
(y)es or (N)o? Default : No# shinobi version
Install Shinobi CE or Shinobi Pro?
— — — — — — — — — — — — — — — — — — — — — — -
*Note : Shinobi Pro is free for personal use.
*Learn more at http://shinobi.video/pro
— — — — — — — — — — — — — — — — — — — — — — -
©E or (P)ro? Default : Pro# install branch (master in stable)
Install the Development branch?
(y)es or (N)o? Default : No
N# OS selection
The installer will say that the OS is not detected. Select ubuntu instead.
Shinobi Installer
========
Select your OS
If your OS is not on the list please refer to the docs.
========
1. Ubuntu
2. CentOS
3. MacOS
4. FreeBSD
5. OpenSUSE
========
1# DB : choose MariaDB as RDBMS and choose a root password
Shinobi — Do you want to Install MariaDB? Choose No if you already have it.
(y)es or (N)o
y# install shinobi database
Shinobi — Database Installation
(y)es or (N)o
y# configure Shinobi to start on boot
Shinobi — Start Shinobi and set to start on boot?
(y)es or (N)o
y

# installation size
Întregul raspbian + shinobi (inclusiv toate dependențele) a ocupat doar mai puțin de 2GB de spațiu.

$ df -hl
Filesystem Size Used Avail Use% Mounted on
/dev/root 7.3G 1.8G 5.2G 26% /

Acum instalarea este completă !!!

Shinobi backoffice

Instalarea vă va spune să vă deschideți browserul cu următorul link :

|| Open http://192.168.0.10:8080/super in your web browser.
||===================================
|| Default Superuser : [email protected]
|| Default Password : admin

Cu toate acestea, este mai bine să folosiți numele de gazdă pentru a scăpa de incertitudinea adresei IP a dispozitivului dvs. (care se poate schimba la repornire)

http://raspberrypi.local:8080/super

# change super user login/pwd
După ce v-ați logat în http://raspberrypi.local:8080/super, schimbați-vă login/pwd în fila ‘Preferences’ din motive de securitate.

# add a new user
În afară de super-utilizatorul, trebuie să adăugați un utilizator la shinobi (acest utilizator poate avea același e-mail).
Acest utilizator va putea să se conecteze la tabloul de bord folosind direct acest link în rețeaua locală
http://raspberrypi.local:8080/

Sunteți gata să folosiți raspberryPi cu Shinobi ca soluție locală NVR.

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.