Od jakiegoś czasu bawię się w monitoring DIY na działce. Mój setup składa się z: OrangePi One, dwóch kamer Easycam EC-230D i switcha. Jako, że system pracuje na wygnajewie, łączność zapewnia mi modem GSM na USB z SIM Aero2. Okazuje się, że sieć ta bardzo ładnie działa (~100kB/s) i nie posiada CAPTCHA, gdy wykupi się pakiet danych.
Pierwsza iteracja bazowała na Thinkpadzie x41 i jednej kamerze, jednak ten sobie wydajnościowo nie radził. Dodatkowo, sprzęt ten miał tendencję do wyłączania się z nieznanych przyczyn, a automatyczny reboot był niemożliwy bez dodatkowych sprzętowych przeróbek. Zacisnąłem zęby, zamówiłem OrangePi i system w miarę dobrze działa.
Kamery EC-230D posiadają całkiem niezłe parametry jak na swoją cenę: nagrywanie w 1080p, automatyczne przechodzenie w rejestrowanie podczerwieni oraz dość silne diody, by rozjaśnić otoczenie na około 25 metrów. Problemy jednak sprawia soft, który jest toporny, słabo przetłumaczony, a co najgorsze – tylko na Windowsa.
Konfiguracja adresu IP
Początkowo kamery przychodzą skonfigurowane z adresem w stylu 192.168.1.xxx. IP zmienić się da, ale tylko przy pomocy dostarczonej aplikacji Device Manager. Przetestowana przeze mnie droga konfiguracji to:
- podłączenie point2point komputera z kamerą,
- ustawienie w komputerze na sztywno adresu IP w podsieci 192.168.1.xxx,
- uruchomienie Device Manager i kliknięcie przycisku IP search.
Na liście powinna pojawić się kamera. Po jej wybraniu można zmienić jej konfigurację IP, następnie podpiąć pod resztę sieci i zapomnieć o sprawie.
Konfiguracja parametrów kamery
Tu zaczyna się już gęstwina. Należy zainstalować aplikację CMS, zalogować się jako „super” bez hasła, dodać strefę a następnie do strefy kamerę. Później można się pobawić jej konfiguracją, w tym:
- rozdzielczością głównego i pobocznego strumienia video,
- rozkładem tekstu na obrazie: datownika, nazwy kamery;
- datą, strefą czasową, czasem zimowym.
Alternatywne oprogramowanie
Po chwili bawienia się CMSem człowiekowi zbiera się na wymioty i zastanawia się, jak by rejestrować obraz bez tego muła, który bez jakiejkolwiek podłączonej kamery już na dzień dobry zabiera 100 MB RAMu. Przerobiłem następujące opcje:
- iSpy na Thinkpadzie X41 – wydajnościwoo nie dawało to sobie w ogóle rady,
- OpenRTSP – rejestrowanie strumienia miało tendencję do zrywania obrazu, więc nagrywałem serię 2-minutowych filmów by to obejść – brak wykrywania obrazu, niewygodne do przeglądania
- Motion + MotionEye – chyba najlepsze, co może być do monitoringu.
Samą konfigurację Motion i MotionEye opiszę innym razem. Opiera się ona głównie o przechwytywanie strumienia głównego z adresu: rtsp://ipKamery/user=admin_password=_channel=1_stream=0.sdp . Nie odkryłem, jak dostać się do strumienia dodatkowego.
O ile udało mi się wyeliminować konieczność korzystania z chińskiego softu na codzień, to jednak czasem jest on jeszcze przydatny. Chęć dodania kolejnej kamery spowodowała, że musiałem ją uprzednio z poziomu Windowsa wstępnie skonfigurować, po czym w środku zimy na miejscu montażu siedzieć przed laptopem i poprawiać jej konfigurację. Dodatkowo, datownik wyświetlany na obrazie pozostawiony sam sobie zaczyna rozbiegać się z faktyczną datą i godziną. Rozwiązanie jest proste – wystarczy połączyć się CMSem z kamerą i data sama się zsynchronizuje.
Tego typu problemy powodują, że chciałoby się mieć pod linuksem aplikację zamienną dla CMSa. Podczas ostatniej sesji konfiguracyjnej kamery uruchomiłem WireSharka i moim oczom ukazały się pakiety wysyłane nieszyfrowanym JSONem. Prawdopodobnie pewnego dnia pokuszę się o usystematyzowanie tego protokołu i napisanie własnej aplikacji pracującej z poziomu wiersza poleceń.