Budujesz system parkingowy albo integrujesz kamery?Aplikacje webowe
← Blog
Integracje

System parkingowy z kamerami Dahua: ANPR, szlaban, biała lista i API

Kamera odczytuje tablicę, aplikacja sprawdza rezerwację i białą listę, szlaban się otwiera. Jak to zbudowaliśmy i jak oddzieliliśmy kod producenta, żeby podłączyć inne kamery i zewnętrzne API.

System parkingowy z kamerami Dahua to aplikacja, która przyjmuje odczyty tablic rejestracyjnych z kamer ANPR, sprawdza rezerwacje i białą listę, a potem decyduje, czy otworzyć szlaban. Zbudowaliśmy taki system dla operatora parkingów i od początku zakładaliśmy, że Dahua nie będzie jedynym producentem kamer, a rezerwacje mogą przychodzić z zewnętrznego systemu. W artykule opisujemy, jak przepływa zdarzenie od kamery do szlabanu, jak działa biała lista, co widzi obsługa w panelu i jak zaprojektowaliśmy warstwę adapterów i API, żeby podłączyć kolejne kamery i systemy bez przepisywania logiki.

Jak działa parking z rozpoznawaniem tablic rejestracyjnych?

Kamera ANPR robi dwie rzeczy: odczytuje numer tablicy i zapisuje zdjęcie pojazdu. Resztę robi aplikacja. W naszym systemie proces wygląda tak:

  1. Kamera wysyła zdarzenie z numerem tablicy, czasem i zdjęciem przez stałe połączenie z aplikacją.
  2. Aplikacja zapisuje zdarzenie ze zdjęciem.
  3. Jeśli kamera stoi przy szlabanie, system sprawdza blokadę numeru, rezerwację i białą listę, a obsługa może później w panelu obejrzeć zdjęcie każdego wjazdu i zobaczyć, jaką decyzję podjął system.
  4. Przy pozytywnej decyzji aplikacja wysyła do kamery polecenie otwarcia szlabanu i zapisuje wynik.
  5. Zdarzenie dopisuje się do postoju pojazdu, z którego system liczy czas parkowania.

Kamery powiązane w parę znają swoje ostatnie odczyty. Jeśli druga kamera z pary widziała ten sam numer w ciągu 30 sekund, nowe zdarzenie jest odrzucane, więc auto złapane przez dwie kamery tej samej bramy nie wywołuje dwóch decyzji. Opcjonalny filtr w panelu poprawia też format odczytanego numeru, zanim system zacznie go porównywać.

Budujesz system parkingowy albo integrujesz kamery? Projektujemy aplikacje, które łączą kamery ANPR, szlabany, rezerwacje i zewnętrzne API. Opisz, jakie masz kamery i z czym system ma rozmawiać. Aplikacje webowe →

Jakie role mogą mieć kamery Dahua na parkingu?

Każdą kamerę opisuje w panelu kilka ustawień, a od nich zależy, co system zrobi ze zdarzeniem. Dzięki temu jedna instalacja obsługuje wjazd, wyjazd i strefy wewnątrz parkingu.

UstawienieCo zmienia
Typ: wjazd albo wyjazdNa wjeździe system szuka rezerwacji w oknie czasowym, na wyjeździe sprawdza ostatni postój pojazdu
Kamera głównaTylko zdarzenia z kamer głównych wyznaczają początek i koniec postoju
Kamera szlabanuTylko taka kamera może otworzyć szlaban, pozostałe tylko rejestrują przejazd
Kamera strefyOtwiera tylko wtedy, gdy strefa z rezerwacji zgadza się ze strefą kamery
Kamera powiązanaŁączy dwie kamery w parę, żeby nie przetwarzać dwa razy tego samego przejazdu; powiązanie ustawia się automatycznie w obie strony

Zmiana ustawień kamery w panelu nie wymaga restartu. Proces obsługujący kamery co minutę porównuje konfigurację z bazą i ponownie łączy się tylko z kamerami, których dane się zmieniły.

Kiedy szlaban się otwiera, a kiedy nie?

Decyzja ma stałą kolejność. Przy kamerze wjazdowej system najpierw sprawdza, czy numer nie jest zablokowany. Potem szuka aktywnej rezerwacji, która obejmuje bieżący czas, z buforem przed początkiem i po końcu rezerwacji ustawianym w panelu. Bufor rozwiązuje prozaiczny problem: kierowca przyjeżdża dziesięć minut przed czasem i nie powinien stać pod szlabanem.

Jeśli rezerwacji nie ma, system sprawdza białą listę. Gdy nic nie pasuje, zdarzenie dostaje status nieznanego wjazdu, a obsługa parkingu dostaje e-mail z numerem tablicy, nazwą kamery i strefą. Szablon wiadomości z polami do podstawienia operator edytuje sam.

Na wyjeździe logika jest prostsza. System bierze ostatni postój pojazdu i otwiera, jeśli był powiązany z rezerwacją albo wpisem z białej listy. W każdym przypadku wynik trafia do dziennika: otwarto, zablokowano, nieznany numer albo błąd sterowania szlabanem.

Jak działa biała lista na parkingu z kamerami ANPR?

Biała lista obsługuje stałych użytkowników, którzy nie rezerwują miejsca za każdym razem: pracowników, dostawców, serwis. Wpis łączy numery tablic z regułą czasową, w której można ustawić:

  • zakres dat ważności wpisu,
  • dni miesiąca, w które wpis działa,
  • dni tygodnia, np. tylko od poniedziałku do piątku,
  • godziny wjazdu, od której do której.

Puste pole oznacza brak ograniczenia. Wpis „poniedziałek do piątku, 7:00 do 18:00” wpuści dostawcę w dni robocze, a w sobotę jego auto dostanie status nieznanego wjazdu.

Jak system łączy odczyty kamer z rezerwacjami?

Pojedyncze zdarzenie z kamery niewiele mówi. System składa więc zdarzenia w postój: początek to najwcześniejszy wjazd zarejestrowany przez kamerę główną, koniec to ostatni wyjazd. Wjazd po wcześniejszym wyjeździe otwiera nowy postój. Postój jest powiązany z rezerwacją albo wpisem z białej listy, a w pierwszej wersji także z kontem kierowcy w zewnętrznym systemie rezerwacji.

Na tej podstawie działają powiadomienia. Kierowca, który wciąż stoi na parkingu, dostaje mailem i SMS-em przypomnienie o kończącej się rezerwacji. Kiedy auto wyjedzie przed końcem rezerwacji, system pyta SMS-em i mailem „Czy jeszcze wrócisz?” i dołącza link do rezerwacji. Czas parkowania przy rezerwacji to suma wszystkich jej postojów.

Obsługa może też zamknąć postój ręcznie, gdy kamera nie odczytała wyjazdu. System zapisuje wtedy zdarzenie przypisane do użytkownika panelu, a nie do kamery, więc w historii widać, kto to zrobił.

Co obsługa parkingu widzi w panelu?

Panel administracyjny zbudowaliśmy w Filament. Zawiera listę kamer, zdarzenia ze zdjęciami, postoje i dziennik szlabanu. Uprawnienia są rozdzielone, więc pracownik ochrony może oglądać podgląd na żywo i otworzyć szlaban, nie mając prawa do zmiany konfiguracji kamer. Panel rozróżnia osobno:

  • przeglądanie listy kamer i podgląd na żywo,
  • dodawanie, edycję i usuwanie kamer,
  • przeglądanie dziennika szlabanu i ręczne otwarcie.

Widżet w panelu pokazuje, ile kamer jest połączonych i kiedy proces obsługi kamer ostatnio działał. Gdy połączenie z kamerą padnie, system dwa razy próbuje ponownie się autoryzować. Jeśli to nie pomoże, wysyła SMS do zespołu technicznego i ponawia próbę po 10 minutach. Kiedy wszystkie kamery wracają, alarm się kasuje.

Jak przygotować system parkingowy na kamery innych producentów?

Tego wymagał klient. Parking, który dziś ma Dahua, za dwa lata może dostawić kamery innej marki albo przejąć obiekt z cudzą instalacją. Gdyby logika wjazdu była spleciona z protokołem jednego producenta, każda taka zmiana oznaczałaby przepisanie systemu.

W drugiej wersji kod producenta przenieśliśmy do osobnego modułu sterowników. Sterownik Dahua odpowiada za połączenie z kamerą, autoryzację i polecenie otwarcia szlabanu. Reguły wjazdu, rezerwacje, biała lista i postoje operują na numerze tablicy, kamerze z panelu i czasie zdarzenia. Nowy producent to nowy sterownik obok, a reszta systemu zostaje bez zmian.

Jak system parkingowy współpracuje z zewnętrznymi API?

Druga wersja składa się z dwóch rodzajów aplikacji. Każdy operator parkingu dostaje własną instancję na osobnym serwerze, z tego samego kodu. Nad nimi działa centralna aplikacja z publicznym API dla aplikacji mobilnej i routerem, który kieruje żądania do właściwego operatora. Zastępuje ona zewnętrzny system rezerwacji, z którym integrowała się pierwsza wersja.

  • API publiczne z tokenem dostępowym, przygotowane pod aplikację kliencką w React Native na iOS, Androida i web.
  • API wewnętrzne między serwerami, gdzie każde żądanie jest podpisane HMAC-SHA256 z identyfikatorem klienta, czasem i jednorazowym nonce, a podpis starszy niż 5 minut jest odrzucany.
  • Kolejka wywołań między serwerami, przetwarzana w tle co minutę.

Oba API mają dokumentację OpenAPI generowaną z kodu, w której opisaliśmy 62 operacje razem z parametrami, odpowiedziami i sposobem podpisywania żądań między serwerami. Dostęp do niej sprawdza sama aplikacja, a reguła serwera WWW jest drugą warstwą. Bez skonfigurowanego hasła dokumentacja zwraca 404, zamiast stać otworem. Zewnętrzny system, np. sprzedaż biletów albo system rezerwacji, podłącza się do udokumentowanego API. Kodu parkingu nikt przy tym nie musi czytać.

Jak budujemy systemy z kamerami i API w ASAPDevs?

Zaczynamy od spisania urządzeń i systemów, z którymi aplikacja ma rozmawiać, a potem oddzielamy to, co specyficzne dla producenta, od reguł biznesowych. Wdrażamy na Dockerze bez przestojów, z logami do diagnozy i uprawnieniami w panelu. Po starcie zostajemy przy systemie jako zespół utrzymaniowy.

Masz kamery ANPR i chcesz połączyć je z rezerwacjami, płatnościami albo własną aplikacją? Zobacz, jak budujemy aplikacje webowe →

Źródła: Specyfikacja OpenAPI; RFC 2104, HMAC; Dokumentacja Filament.
Kamil Perzowski
Kamil Perzowski
CEO i co-founder ASAPDevs. Programuje i utrzymuje sklepy, aplikacje webowe i serwery klientów. LinkedIn · Aplikacje webowe
Masz ten sam problem?

Budujesz system parkingowy albo integrujesz kamery?

Kamil Perzowski, ASAPDevs
Kamil Perzowski
CEO & Co-founder, ASAPDevs
Projektujemy aplikacje, które łączą kamery ANPR, szlabany, rezerwacje i zewnętrzne API. Opisz, jakie masz kamery i z czym system ma rozmawiać.
★★★★★
Współpraca z ASAPDevs przebiegła bardzo profesjonalnie. Zespół był odpowiedzialny za przygotowanie naszej platformy do sprzedaży biletów i wywiązał się z zadania doskonale – wszystko zostało zrealizowane terminowo, zgodnie z ustaleniami.
Hubert K., opinia w Google
  1. Czytam zgłoszenie i odpisuję z pytaniami albo propozycją terminu rozmowy.
  2. Krótka rozmowa o zakresie, dostępach i terminie.
  3. Dostajesz plan i wycenę. Decydujesz, bez zobowiązań.

Wolisz od razu porozmawiać? +48 884 220 764 · [email protected]

Wysyłając formularz, przekazujesz nam dane, żebyśmy mogli odpowiedzieć. Szczegóły w polityce prywatności.

FAQ

Pytania i odpowiedzi

Czy system parkingowy musi działać tylko z kamerami Dahua?

+
Nie. W naszej architekturze kod specyficzny dla producenta, czyli połączenie z kamerą, autoryzacja i sterowanie szlabanem, siedzi w osobnym sterowniku. Reguły wjazdu, rezerwacje i biała lista o kamerze nic nie wiedzą, więc kamerę innego producenta podłącza się jako kolejny sterownik.

Jak kamera ANPR otwiera szlaban tylko dla zarezerwowanych aut?

+
Kamera odczytuje tablicę i wysyła zdarzenie do aplikacji. Aplikacja sprawdza, czy numer ma aktywną rezerwację w oknie czasowym albo ważny wpis na białej liście, i dopiero wtedy wysyła do kamery polecenie otwarcia szlabanu.

Co się dzieje, gdy na parking wjeżdża auto bez rezerwacji?

+
Szlaban się nie otwiera, a zdarzenie dostaje status nieznanego wjazdu. Na kamerze wjazdowej system wysyła też e-mail do obsługi parkingu z numerem tablicy, nazwą kamery i strefą, a treść wiadomości operator ustawia w panelu.

Czy system parkingowy można zintegrować z zewnętrznym systemem rezerwacji?

+
Tak. Pierwsza wersja systemu pobierała rezerwacje i użytkowników z zewnętrznego systemu rezerwacji, a druga udostępnia własne API: publiczne dla aplikacji mobilnej i wewnętrzne, podpisywane HMAC, do wymiany danych między serwerami.

Kto w panelu może otworzyć szlaban ręcznie?

+
Tylko użytkownik z takim uprawnieniem. Panel rozdziela prawa do podglądu kamer, podglądu na żywo, dodawania, edycji i usuwania kamer, przeglądania dziennika szlabanu oraz ręcznego otwarcia, a każde otwarcie trafia do dziennika z nazwą użytkownika.

Przeczytaj też