Mastodon
Zdjęcie okładkowe wpisu Projekt Raspberry Pi – 3 – Uruchomienie kamery Raspberry Pi NOIR pod HomeKitem [uaktualnione]

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

33
Dodane: 6 lat temu

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.
  4. Dodajemy pozycję w HomeKit, wyświetlającą jakość powietrza na dworze.
  5. Dodajemy prognozę pogody do HomeKit dla naszej ulicy.
  6. Dodajemy sterowanie TV, Apple TV i amplitunerem do HomeKit przez Homebridge i Logitech Harmony.
  7. Naprawiamy sterowanie TV, Apple TV i amplitunerem przez Homebridge i Logitech Harmony w HomeKit.
  8. Wywalamy Airly, bo zabili swoje publiczne API.
  9. Przenosimy Homebridge do nowego Home i rozwiązujemy problemy z 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ść:
      [Unit]
      Description=HAP Camera RPi
      
      [Service]
      ExecStart=/usr/local/bin/node /opt/homebridge-camera-rpi/standalone.js -c /etc/homebridge-camera-rpi.conf.json
      WorkingDirectory=/opt/homebridge-camera-rpi
      Restart=always
      RestartSec=10
      User=pi
      
      [Install]
      WantedBy=multi-user.target
    13. Zapisujemy plik za pomocą ^X (Ctrl+X), wciskamy YEnter.
    14. sudo nano /etc/homebridge-camera-rpi.conf.json i znowu wklejamy:
      {
       "name": "Pi Camera",
       "id": "Pi Camera",
       "pincode": "031-45-154",
       "username": "EC:23:3D:D3:CE:CE"
      }
    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:

"rotation": 0
"verticalFlip": false
"horizontalFlip": false

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

{
 "name": "Pi Camera",
 "id": "Pi Camera",
 "pincode": "031-45-154",
 "username": "EC:23:3D:D3:CE:CE",
 "rotation": 0,
 "verticalFlip": true
}

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, mechaniczne klawiatury i zwinne samochody.

Zapraszamy do dalszej dyskusji na Mastodonie lub Twitterze .

Komentarze: 33

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?

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

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”}]

}
]

}

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ł!

podeślesz proszę config.js? dla samej kamery? Nie mogę ogarnąć.

Nie moge ogarnąć, cały czas mam błąd.
[2018-2-24 11:57:41] Loaded plugin: homebridge-camera-rpi
[2018-2-24 11:57:41] Registering platform ‘homebridge-camera-rpi.rpi-camera’
[2018-2-24 11:57:41] —
[2018-2-24 11:57:41] There was a problem reading your config.json file.
[2018-2-24 11:57:41] Please try pasting your config.json file here to validate it: http://jsonlint.com
[2018-2-24 11:57:41]
/usr/lib/node_modules/homebridge/lib/server.js:207
throw err;
^

kamera działa, ale nie mogę jej do końca skonfigurować
“rotation”: 90
w pliku konfiguracyjnym nie daje żadnych rezultatów,
Odbicie pionowe i poziome działa

gdzie mogę robić błąd ???

Piotr co robisz żeby zobaczyć rezultat zmian? U mnie po zmianie nic się nie zmienia. Usuwasz kamerkę i dodajesz ponownie? Napisz proszę co robisz. Dzięki.

A masz lagi w kamerce? U mnie co 2-4s się tnie na moment. Internet mam 100mb.

Mariusz, kamera działa płynnie, nie ma zacięć w sieci lokalnej.
Na zewnątrz jeszcze nie wiem, dzisiaj przychodzi Apple TV ;)

Jestem rozczarowany wersją NoIR – myślałem że będzie zdecydowanie lepiej ;(,
może to kwestia ustawień o których jeszcze nie wiem.

Zmiany w ustawieniach kamery widoczne dopiero po restarcie Pi (sudo reboot), restart homebridga nic nie zmienia.

to tyle z moich amatorskich doświadczeń,
pzdr

… faktycznie kamerka ma lekkie przycięcia, teraz dopiero to zauważyłem
hmmmm….

Dziś będę miał chwile to zerknę. U mnie kamerka tzn obudowa jest w pionie żeby obraz był normalnie. Na zewnątrz dłużej kamerka łapie fixa. Dodawałeś coś jeszcze oprócz kamerki?

A co do poprawy widoczności przy kiepskim świetle bądź całkowitej ciemności musisz mieć IR illuminator. Ja swój na dniach powinienem mieć. Wiec dam znać jak się spisuje.

APT dojechało ;) automatyzacja + dostęp z zewnątrz są extra, będę testował.

Raspberry Pi mam od tygodnia i poza kamerką dodałem kamerę MottionEye od PS3, oraz jakość powietrza i prognozę z artykułów Wojtka.

Wcześniej uruchomiłem Homebridge na SYNOLOGY i tu mam głównie Sonoffy i Electrodragony z czujnikami temp. i wilgotności włączające różne oświetlenie.

Czekam na info w temacie IR iluminatora.

Iluminator zamontowany. Myślałem ze będzie się lepiej spisywał. Nie „oświetla” całego pokoju a im dalej tym gorzej. Pewnie też kwestia iluminatora, mój kosztował 40zl z Ali ma 48 diod 980nm. Orientuje się ktoś czy nie jest to szkodliwe dla dziecka?

Zacząłem zgłębiać temat GPIO.

Podpiąłem czujnik ruchu do RPi i ciekawa sprawa, bo jak wykryje ruch
to dostaje powiadomienia z fotką ! Hehehe … mega !

Drugi temat to czujnik wykrywający otwarcie drzwi wejściowych. Też super sprawa.

Tak sobie imaginuje, jak bym podpiął się pod obwód dzwonka od drzwi zamiast dzwonka, to jak by ktoś zadzwonił to dostałbym powiadomienie z fotką ;)

A Wy macie jakieś ciekawe pomysły ???

W aplikacji Dom głównym urządzeniem jest IPhone 8 jako goście zaproszenie są IPhone 7plus oraz iphone6s. Na IPhone 6s nie pokazuje kamery. Czujniki sterowanie oświetlenia działa a kamery nie pokazuje kamera nie odpowiada. Za słaby jest 6s czy co?

Dodam, ze działa tylko na wifi tym co Raspberry. Na innej sieci wifi czy komórkowej nie działa.

Wyzerowałem IPhone 6s i utworzyłem jako nowy. o dziwo działa. :) i również przyspieszył. Nie był zerowany od premiery/zakupu. :)