PLC-home.pl

...inteligentny dom zarządzany przez sterownik PLC

System kamer dla mojego inteligentnego budynku

W artykuje umieszczonym tutaj: system zarządzania inteligentnym domem opisałem serwer nadzorujący. Nie bez powodu wybrałem to rozwiązanie - pozwala ono na podłączenie również do tego serwera kamer CCTV, obrobienie ich do MJPEGa i umieszczenie na stronie web zarządzania domem.

Sprzęt

Nad doborem kamer nie ma co się rozpisywać. Kiedy ja budowałem swój system podstawą CCTV był koncentryk - tak więc mam kilka koncentryków zagregowanych przy serwerze i podłączone do nich kamerki. Dziś jednak wybrałbym kamerki IP strumieniujące MJPEG - pojawiły suę takie na rynku w rozsądnych cenach.

Karta do serwera Kodicom 4400R kupiłem na allegro. Dowolna karta bazująca na chipsecie BT878 będzie działać, ale trzeba zwrócić uwagę na ilość chipsetów per kanał. Chińczykom zdarza się upchnąć np. 16 wejśc i jeden chipset. Wtedy mamy 24 klatki na sekundę ale na wszystkie kanały. :) W internecie pełno instrukcji jak tę kartę skonfigurować.

[   40.444052] bttv: Bt8xx card found (2)
[   40.444084] bttv 0000:06:0e.0: PCI INT A -> GSI 23 (level, low) -> IRQ 23
[   40.444106] bttv: 2: Bt878 (rev 17) at 0000:06:0e.0, irq: 23, latency: 32, mmio: 0xe0103000
[   40.444138] bttv: 2: using: Kodicom 4400R (slave) [card=133,insmod option]
[   40.444200] bt878 #2 [sw]: bus seems to be busy (scl=0, sda=0)
[   41.248105] bttv: 2: tuner absent
[   41.248280] bttv: 2: registered device video2
[   41.248402] bttv: 2: registered device vbi2
[   41.248444] bttv: 2: Setting PLL: 28636363 => 35468950 (needs up to 100ms)
[   41.250366] bttv: 2: Setting PLL: 28636363 => 35468950 (needs up to 100ms)
[   41.250487] bttv: 2: Setting PLL: 28636363 => 35468950 (needs up to 100ms)
[   41.264052] bttv: PLL set ok
[   41.264058] bttv: PLL set ok
[   41.280056] bttv: PLL set ok
[   73.424053] bttv: Bt8xx card found (3)
[   73.424103] bttv 0000:06:0f.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[   73.424126] bttv: 3: Bt878 (rev 17) at 0000:06:0f.0, irq: 20, latency: 32, mmio: 0xe0101000
[   73.424158] bttv: 3: using: Kodicom 4400R (slave) [card=133,insmod option]
[   73.424242] bt878 #3 [sw]: bus seems to be busy (scl=0, sda=0)
[   74.228101] bttv: 3: tuner absent
[   74.228266] bttv: 3: registered device video3
[   74.228393] bttv: 3: registered device vbi3
[   74.228436] bttv: 3: Setting PLL: 28636363 => 35468950 (needs up to 100ms)
[   74.260027] bttv: PLL set ok

Software czyli Zoneminder

Ponieważ serwerek stoi na Debianie oprogramowanie zoneminder jest dostępne w dystrybucji. Trochę walki z konfiguracją i voila - mamy obraz na serwerku.

Na screenie poniżej widać konfigurację strefy aktywności kamery - możemy dowolnie ustalić obszar wzbudzenie którego spowoduje rozpoczęcie nagrywania. Oczywiście wszystko kosztem procesora - im większy obszar tym obciązenie procesowa większe.

Umiejętne skonfigurowanie stref aby reagowały i nie wzbudzały się zanadto to naprawdę sztuka - cierpliwosci i testowania.

Zaletą zonemindera jest, że potrzafi zgrywać i analizować obraz także z kamer IP.

Monitoring CCTV inteligentny dom

No więc tym sposobem mamy monitoring w serwerze. Pora na skorzystanie z niego.

MJPEG w przeglądarce

Adres pod którym możemy podglądać obraz jest dostępny także niezależnie od zonemindera jako URL:

/cgi-bin/zms?mode=jpeg&monitor=2&scale=70&maxfps=24

Parametrami adresu możemy regulować ilość klatek na sekundę czy wybór monitora. Jest to obrazek dynamiczny Motion JPEG, który jest strumieniowany przez serwer i wyśtietlany w formie video w przeglądarce. Ja używam tego obrazka do osadzenia go na stronie systemu zarządzania.

System zarządzania inteligentnym domem