Biały kiosk informacyjny z pionowym ekranem w holu urzędu obok drewnianych drzwi, a obok zrzut ekranu startowego W czym możemy pomóc? z kodem QR i czterema przyciskami menu

Programowanie

Kiosk informacyjny w urzędzie: dostępny dla każdego

Martwy kiosk po komercyjnym systemie bez wsparcia dostał nowe życie: własna aplikacja, pięć przycisków z alfabetem Braille’a, polski głos działający lokalnie i czujnik, który wita podchodzących. Dane płyną z CMS portalu i intranetu, a nadzór sam zgłasza awarie SMS-em.

29.10.2026

W holu Urzędu Miejskiego w Starym Sączu wiszą już dwie tablice informacyjne z listą pokoi, aktualnościami i mapą budynków. Tablica pokazuje wszystkim to samo. Brakowało miejsca, w którym można zadać własne pytanie: gdzie złożę deklarację podatkową, gdzie jest kasa, co zabrać do ślubu.

Tę lukę zamyka kiosk informacyjny. Stał w urzędzie od lat, ale od dawna był martwy. Teraz działa na nowym oprogramowaniu, które napisałem od zera, i jest zaprojektowany przede wszystkim dla osób z niepełnosprawnościami.

Biały kiosk informacyjny z pionowym ekranem w holu urzędu obok drewnianych drzwi, a obok zrzut ekranu startowego W czym możemy pomóc? z kodem QR i czterema przyciskami menu
Kiosk w holu urzędu i jego ekran startowy

Komplet w holu: tablice, przystanek i kiosk

Urządzenia w holu i przed urzędem tworzą teraz jedną całość:

  • tablica pokoi pokazuje, który referat jest w którym budynku i na którym piętrze,
  • tablica ze slajdami podaje aktualności, wydarzenia, pogodę i mapę budynków,
  • tablica przystankowa na os. Słonecznym pokazuje najbliższe odjazdy autobusów,
  • kiosk odpowiada na konkretne pytanie i prowadzi do właściwego pokoju.

Wszystkie korzystają z tych samych danych, tych samych krojów pisma i tej samej palety. Mieszkaniec widzi na kiosku ten sam numer pokoju co na tablicy i na portalu gminy. Szczegóły tablic opisałem we wpisie Tablice informacyjne w holu urzędu i Tablica przystankowa z odjazdami MPK.

Punkt wyjścia: kiosk bez wsparcia

Kiosk to stojak marki SAROS z pionowym ekranem dotykowym, pięcioma przyciskami z opisem w alfabecie Braille’a i czujnikiem obecności. W środku pracował mały komputer z Androidem 7 z 2017 roku i aplikacja komercyjnej platformy digital signage.

Problem polegał na tym, że całe oprogramowanie żyło w chmurze dostawcy:

  • treści i konfiguracja nie były zapisane na urządzeniu, tylko pobierane z serwera,
  • wsparcie dla tej instalacji wygasło, więc kiosk pokazywał tylko ekran oczekiwania,
  • wyjście z aplikacji blokowała osobna blokada z kodem PIN, którego nikt nie znał,
  • system nie dostawał poprawek bezpieczeństwa od lat.

Obudowa, ekran i przyciski były w świetnym stanie. Szkoda było je wyrzucić.

Trzy zdjęcia z diagnozy: komputer MINIX z naklejką Gmina Stary Sącz Braill obok płytki z czujnikiem ultradźwiękowym, menu Android Recovery na ekranie kiosku i kiosk na zapleczu podczas startu systemu
Diagnoza starego systemu: komputer, menu recovery i pierwszy start

Debugowanie krok po kroku

Zacząłem od sprawdzenia, czy da się cokolwiek odzyskać. Przez menu recovery Androida wyczyściłem urządzenie, co usunęło blokadę PIN i starą aplikację. Okazało się, że ten egzemplarz nie ma portu USB do debugowania, a wgranie Linuksa na procesor ARM groziło urządzeniem bez obrazu i bez dotyku.

Dlatego wymieniłem tylko komputer. W obudowie pracuje teraz mały, cichy komputer x86 z Debianem 13. Reszta sprzętu została bez zmian.

Płytka przycisków

Przyciski i czujnik obsługuje osobna płytka z mikrokontrolerem ATmega32U4, tym samym co w Arduino Leonardo. Oryginalnego programu na niej nie było, tylko szkic testowy, który zakładał złe piny i pokazywał odległość 0 cm.

  • napisałem szkic diagnostyczny, który ustalił, który pin odpowiada któremu przyciskowi,
  • potem nowy firmware z prostym protokołem tekstowym: wciśnięcie przycisku i odległość osoby od kiosku,
  • płytkę programuję zdalnie przez sam kiosk, bez rozkręcania obudowy.
Płytka sterująca przycisków z mikrokontrolerem i czujnikiem ultradźwiękowym trzymana w dłoni oraz ta sama płytka podłączona do nowego komputera we wnętrzu obudowy kiosku
Płytka przycisków i czujnika przed montażem i w obudowie

Obrócony ekran i dotyk

Monitor stoi w obudowie pionowo, więc obraz trzeba obrócić o 90 stopni. Dotyk nie obraca się razem z obrazem, dlatego przygotowałem stronę kalibracyjną z pięcioma punktami. Z pomiarów policzyłem macierz kalibracji i wpisałem ją do systemu. Dotyk trafia teraz z dokładnością do około centymetra, co przy dużych przyciskach w zupełności wystarcza.

Ekran Test kiosku z przyciskami Home, Wybierz, Następny, Poprzedni, Powrót i komunikatem Ktoś stoi przed kioskiem 53 cm oraz zbliżenie metalowych przycisków z opisami w alfabecie Braille’a
Ekran testowy przycisków i czujnika oraz panel z opisem w alfabecie Braille’a

Co potrafi kiosk

Ekran startowy pyta: „W czym możemy pomóc?” i daje cztery drogi:

  • wyszukiwarka spraw z klawiaturą ekranową, która rozumie wpisy bez polskich znaków („slub” znajdzie „ślub”),
  • sprawy do załatwienia pogrupowane w kategorie, na przykład meldunek, podatki, ślub, odpady,
  • referaty i biura z lokalizacją, telefonem i godzinami przyjęć,
  • kasa, dziennik podawczy, punkt potwierdzania profilu zaufanego i filie starostwa.
Ekran startowy kiosku i wyszukiwarka spraw z klawiaturą ekranową z polskimi znakami, po wpisaniu słowa slub znalezione dwie sprawy dotyczące ślubu
Ekran startowy i wyszukiwarka spraw

Karta sprawy odpowiada na pytania, z którymi ludzie podchodzą do portierni:

  • gdzie: budynek, piętro i numer pokoju, wyróżnione na samej górze,
  • ile kosztuje i ile trwa,
  • jakie dokumenty trzeba przynieść,
  • kod QR „Zabierz tę informację ze sobą” otwiera opis sprawy z formularzami w telefonie.

Z karty referatu można przejść do wszystkich spraw, które załatwia się w tym samym miejscu.

Karta sprawy Podatek od nieruchomości z wyróżnionym miejscem załatwienia, opłatą, czasem i listą dokumentów oraz kodem QR, obok karta referatu z listą spraw załatwianych w tym miejscu
Karta sprawy i karta referatu
Lista kategorii spraw do załatwienia oraz lista miejsc w urzędzie: dziennik podawczy, kasa, punkt potwierdzania profilu zaufanego i filie starostwa z budynkiem, piętrem i numerem pokoju
Kategorie spraw i miejsca w urzędzie

Dostępność na pierwszym miejscu

Od początku założyłem, że z kiosku ma skorzystać osoba niewidoma, słabowidząca, na wózku i starsza, która nie lubi ekranów dotykowych. Dlatego kiosk da się w pełni obsłużyć bez dotykania ekranu.

Pięć przycisków i głos

  • Następny i Poprzedni przechodzą między elementami, Wybierz otwiera, Powrót cofa, Home wraca na początek,
  • pierwsze naciśnięcie dowolnego przycisku samo włącza czytanie na głos, bo kto sięga po przyciski, najczęściej potrzebuje głosu,
  • kiosk czyta każdy zaznaczony element i całą kartę sprawy, łącznie z pokojem i listą dokumentów,
  • głośność ma trzy poziomy i zawsze startuje od najcichszego.

Polski głos bez chmury

Przeglądarka na Linuksie nie ma dobrego polskiego głosu, a wysyłanie tekstu do zewnętrznej usługi nie wchodziło w grę. Mowę syntezuje Piper, silnik działający lokalnie na komputerze kiosku. Wypowiedzi trafiają do pamięci podręcznej, więc często czytane zdania brzmią od razu.

Piper słabo radzi sobie z cyframi, dlatego przed syntezą zamieniam liczby na słowa. Numer telefonu kiosk czyta cyfra po cyfrze, „II piętro” jako „drugie piętro”, a kwoty z poprawną odmianą „złoty, złote, złotych”.

Kiosk wie, że ktoś podszedł

Czujnik ultradźwiękowy mierzy odległość od kiosku. Gdy ktoś stanie bliżej niż ok. 1,2 m, kiosk wita go głosem i podpowiada, że przyciski są po lewej stronie ekranu. Powitanie nie powtarza się częściej niż raz na minutę i nie przerywa osobie, która już korzysta z kiosku.

Czytelność i porządek po wizycie

  • przyciski Większy tekst i Kontrast powiększają pismo i włączają tryb wysokiego kontrastu,
  • krój Atkinson Hyperlegible Next zaprojektowano z myślą o osobach słabowidzących,
  • przełączniki ułatwień są na dole ekranu, w zasięgu osoby na wózku,
  • po 90 sekundach bez ruchu kiosk wraca na start i wyłącza głos, kontrast i powiększenie, żeby następna osoba zaczynała od zera.
Kiosk w holu urzędu z bliska: ekran startowy, pod nim pięć przycisków z napisami i opisem w alfabecie Braille’a
Kiosk w holu urzędu

Najważniejszy test nie był techniczny. Kiosk ma przeprowadzić od wejścia do właściwego pokoju osobę, która nie widzi ekranu.

- Aleksander Kowal

Dane z intranetu i CMS portalu

Kiosk nie ma własnej bazy treści i nikt nie musi go osobno uzupełniać. Sprawy, referaty i miejsca pochodzą z tego samego CMS, z którego korzysta portal gminy. Lokalizacje pokoi trafiły tam z intranetu urzędu.

  • pracownik poprawia opis sprawy w panelu portalu, a zmiana pojawia się na kiosku najpóźniej po kwadransie,
  • kiosk pokazuje tylko informacje publiczne: sprawę, referat, pokój i telefon ogólny, bez danych pracowników,
  • serwer kiosku zapisuje ostatnie dobre dane na dysku, więc awaria CMS nie wyłącza kiosku,
  • ekran nie odświeża treści, gdy ktoś z niego korzysta, tylko gdy stoi na stronie startowej.

Działa bez nadzoru

Kiosk stoi w holu bez opiekuna, więc musi sam dbać o siebie, a o problemach dawać znać, zanim zauważy je mieszkaniec.

  • system startuje prosto do aplikacji, z herbem gminy zamiast komunikatów rozruchu,
  • Chromium działa w trybie kiosku w kompozytorze cage, bez pulpitu i bez możliwości wyjścia z przeglądarki,
  • sprzętowy watchdog restartuje komputer, gdy system przestanie odpowiadać,
  • codziennie o 4:00 kiosk robi profilaktyczny restart,
  • serwer nadzoru sprawdza, czy ekran nadal pyta o dane, oraz temperaturę, pamięć i dysk urządzenia,
  • przy awarii wysyła SMS i może zdalnie zrestartować przeglądarkę albo cały komputer,
  • konto nadzoru może wykonać na kiosku tylko te trzy polecenia i nic więcej,
  • kiosk łączy się z serwerami urzędu przez VPN WireGuard, tak jak tablice.

Statystyki bez ciasteczek

Kiosk wysyła anonimowe statystyki do Matomo urzędu, bez ciasteczek. Widać, których spraw ludzie szukają najczęściej, jak często używają przycisków i głosu oraz ile osób podchodzi do kiosku. To podpowiedź, które opisy spraw warto poprawić w pierwszej kolejności.

Co dalej

Kolejny krok to plan budynku z zaznaczoną drogą do pokoju. W dalszej przyszłości kiosk mógłby odpowiadać na pytania zadane głosem, z asystentem korzystającym z tych samych danych co portal.

Stack

  • Astro 7 (SSR na Node), Tailwind v4, DaisyUI v5, Lucide, fonty self-hosted,
  • Directus portalu gminy jako źródło spraw, referatów i miejsc,
  • Debian 13, cage i Chromium w trybie kiosku, Plymouth, systemd z watchdogiem,
  • Python: usługa kiosku łącząca płytkę, czujnik i mowę przez WebSocket,
  • Piper TTS z polskim głosem, działający lokalnie,
  • ATmega32U4 z własnym firmware w Arduino,
  • WireGuard, nadzór SMS, Matomo bez ciasteczek, Docker.