iMagazine

Projekt Raspberry Pi – 3 – Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem [uaktualnione]

14/02/2018, 11:19 · · · 7

Ostatnim krokiem mojego planu wykorzystania Raspberry Pi z HomeKitem, poprzez Homebridge, było wykorzystanie dołączonego do zestawu kamery jako podgląd na mieszkanie. Jest wiele sposobów, aby to zrobić, a ja wybrałem najprostszy.


Ten projekt jest możliwy dzięki uprzejmości Botland, który dostarczył następujące elementy umożliwiające jego wykonanie:


Spis treści

  1. Instalacja i konfiguracja Raspbian (Wi-Fi, SSH i VNC).
  2. Instalacja Homebridge i konfiguracja Xiaomi Air Purifier 2.
  3. Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem.

I. Założenia i alternatywy

Na rynku da się znaleźć kamery, które są kompatybilne z HomeKitem, jak np. Logitech Circle 2, ale one mają swoje problemy. Większość z nich jest bardzo droga, część wymaga wykupienia subskrypcji… nie da się ukryć, że niektóre z nich prezentują się lepiej, ale w oparciu o Raspberry Pi można stworzyć wiele różnych produktów, precyzyjnie spełniających potrzeby użytkownika. Chcecie sam podgląd na żywo? To właśnie to, co zrobiłem. Chcecie kamerę podczerwoną? Nie ma problemu. Chcecie nagrywać krótki film lub cykać zdjęcie, jak kamera wykryje ruch? Do wykonania bez większych przeszkód. Macie już istniejącą kamerę, która nie wspiera HomeKita? Prawdopodobnie da się ją wykorzystać (nawet PSEye z PS3 rzekomo).

Sam zdecydowałem się na najprostszą wersję. Chciałem mieć kamerkę, za pomocą której mogę podejrzeć co się dzieje w mieszkaniu, gdy nas w nim nie ma, np. na wakacjach. W przyszłości być może zdecyduję się na rejestrowanie ujęć, gdy kamera wykryje ruch, ale do tego celu prawdopodobnie potrzebowałbym wyposażyć RPi w większą kartę SD lub połączyć ją z moim Dropboxem.

Zależało mi też na tym, aby było to zintegrowane rozwiązanie, możliwie nieszpecące. Zestaw Raspberry Pi Zero W z kamerą NOIR jest tutaj solidnym kandydatem – obudowa pasująca OOTB i bez żadnego kombinowania. Największym problemem będzie wymyślenie jak i gdzie całość zamontować. Malinka jest też dostępna z kamerą tradycyjną, wyposażoną w filtr podczerwieni, ale wybrałem model NOIR, ponieważ liczyłem na to, że będzie sobie lepiej radziła wieczorami, w ciemności.

Wszystko co znajdziecie poniżej zakłada, że skonfigurowaliście sobie Raspberry Pi zgodnie z tym co pisałem w pierwszymdrugim rozdziale tego poradnika – poza VNC, który jest całkowicie zbędny.

Screenshoty streama z mieszkania mam wypikselowane, ze względów na prywatność.

II. Konfiguracja

Najważniejszy jest plugin do Homebridge’a nazwany homebridge-camera-rpi, który odpowiada za całość.

    1. Najpiew należy połączyć się z Raspberry Pi za pomocą SSH.
    2. Wpisujemy sudo raspi-config i tam, w menu, przechodzimy do pozycji Interfacing options, a następnie do P1 Camera. Na pytanie, czy chcemy, aby kamera była cały czas włączona, odpowiadamy Yes. Następnie ychodzimy z programu.
    3. Wpisujemy sudo modprobe bcm2835-v4l2.
    4. Instalujemy ffmpeg: sudo apt install ffmpeg.
    5. Instalujemy plugin: sudo npm install -g homebridge-camera-rpi i po zakończeniu, przystępujemy do konfiguracji reszty elementów.
    6. cd /opt.
    7. sudo mkdir homebridge-camera-rpi.
    8. sudo chown pi homebridge-camera-rpi.
    9. git clone https://github.com/moritzmhmk/homebridge-camera-rpi.
    10. cd homebridge-camera-rpi.
    11. npm install.
    12. Teraz musimy stworzyć dwa pliki: sudo nano /etc/systemd/system/hap-camera-rpi.service i wklejamy do niego następującą treść:
    13. Zapisujemy plik za pomocą ^X (Ctrl+X), wciskamy YEnter.
    14. sudo nano /etc/homebridge-camera-rpi.conf.json i znowu wklejamy:
    15. Jeśli do powyższego username chcecie wygenerować sobie randomowy MAC adres, to możecie skorzystać z tego narzędzia.
    16. Ponownie zapisujemy plik za pomocą ^X (Ctrl+X), wciskamy YEnter.
    17. sudo systemctl enable hap-camera-rpi.
    18. sudo systemctl start hap-camera-rpi.
    19. sudo systemctl restart homebridge.
    20. To wszystko Jeszcze tylko musimy załadować jedną rzecz, aby automatycznie startowała po zrestartowaniu Malinki…
    21. sudo nano /etc/modules.
    22. W nowej linii, na końcu pliku, dopisujemy bcm2835-v4l2.
    23. zapisujemy plik za pomocą ^X (Ctrl+X), wciskamy YEnter.

Kamera powinna się sama z siebie pojawić w HomeKit. Jeśli się nie pojawi, to możecie wejść w „dodaj nowe urządzenie” i skorzystać z kodu PIN z poprzednich rozdziałów, do Waszego Homebridge’a, aby ją dodać w ten sposób. Jeśli i to nie zadziała, to usuńcie Homebridge’a lub cały „My Home” z HomeKita i dodajcie całość jeszcze raz.

U mnie poszło od razu.

III. Opcje ustawienia kamery

W punkcie 14. powyżej, konfigurujecie kamerkę. Może się okazać, zależnie jak ustawicie sobie RPi, że jest ona do góry nogami lub przekręcona o 180°. W takim celu należy do pliku konfiguracyjnego dodać odpowiednie opcje z listy poniżej:

Plik wtedy może wyglądać tak (sudo nano /etc/homebridge-camera-rpi.conf.json):

Pamiętajcie o przecinkach po każdej linii, poza ostatnią.

IV. Kamera w HomeKit

Kamera pojawi się w tym pokoju, w którym ją dodaliśmy. Możemy ja też dodać do ulubionych. Domyślnie, kamera robi zdjęcie raz na 12 sekund i wyświetla je w podglądzie – nie jest to wideo na żywo w tym momencie, a przynajmniej dopóki…

Jak pacniemy w kamerę (którą możemy powiększyć na pełny ekran), to kamera zaczyna strumieniować wideo do naszego urządzenia. Działa to oczywiście również poza domem, przez internet.

Jeśli chcemy, to możemy sobie też ten stream oglądać podczas robienia czegoś innego.

V. Jakość

Kamera NOIR v2, która jest w zestawie z RPi Zero W i odpowiednią obudową, ma matrycę Sony IMX219 o rozdzielczości 8 MP. Model NOIR nie ma filtru podczerwieni, więc można zamontować sobie oświetlenie podczerwone, aby widziała ona w nocy. W dzień ma oczywiście inne (czyt. dziwne) kolory, więc jeśli zależy Wam na nich, to zdecydujcie się na model nie-NOIR, który różni się jedynie dołączoną kamerką.

Jakość wideo z tej kamery przekroczyła moje najśmielsze oczekiwania. Nie jest to oczywiście jakość Blu-ray – stream ma 720p – ale obraz jest ostry i spełnia swoją rolę znakomicie. Spodziewałem się, że lepiej sobie będzie radziła w nocy, po ciemku, bez dodatkowego oświetlenia podczerwonego, ale niestety tak nie jest – będę zastanawiał się jak to rozwiązać.

VI. Plany

Już znalazłem kilka ciekawych pluginów do Homebridge’a, w tym do mojego starego amplitunera, więc na pewno będę dalej eksperymentował. Jeśli wykombinuję coś ciekawego, to oczywiście się tym tutaj podzielę.

Jeśli macie jakieś pytania, to zapraszam do komentarzy.




Wojtek Pietrusiewicz

Wydawca, fotograf, podróżnik, podcaster – niekoniecznie w tej kolejności. Lubię espresso, mechaniczne zegarki i zwinne samochody. Niedawno rozpocząłem prowadzenie kursów Lightrooma i fotografii na Pikselowe.pl – zapraszam.


Dodaj komentarz

Paweł napisał(a):

Super. Na npm jest faktycznie sporo interesujących pluginów, min do przełączników/ modułów blebox a sa one sporo tańsze niz np fibaro😁. Lamerskie(sorry) pytanie „Zapisujemy plik za pomocą ^X (Ctrl+X), wciskamy Y i Enter” to przyciski n konsoli prompt2?

chiefer napisał(a):

Muszę to przetestować na mojej kamerce za $3.99 Aliexpress.

Dominik Łada napisał(a):

Rany, Wojtek, ale masz słabej rozdzielczości tę kamerkę…to już toster daje lepszy obraz…😜

Wojtek Pietrusiewicz napisał(a):

O to dobry pomysł… toster wyzwalać z HomeKita!

Paweł napisał(a):

To jak z tym wciskaniem powyzej ? To przyciski na konsoli prompt? I dzieki za odp z gory….

tomman napisał(a):

Chciałem zamontować samą kamerę, bez miAir, nie mogę sobie poradzić z plikiem conf, mam coś takiego. Pin dałem ten sam co do kamery. Drugi plik config.js należy do kamery.

{
„bridge”: {
„name”: „Homebridge”,
„username”: „mac adres zmyslony”,
„port”: 51826,
„pin”: „pin ten sam co na kamerze??”

},

„description”: „HomePi Homebridge.”,

„platforms”: [
{
„platform”: „rpi-camera”,
„cameras”: [{
„name”: „Pi Camera”}]

}
]

}

tomman napisał(a):

aaa, jednak działa, nie dodałem kamery po dodaniu mostka w samym home kicie na iphonie. Teraz męczę się, że to samo startowało, generalnie super sprawa. Dzięki za artykuł!