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

Programowanie

Kiosk informacyjny: uratowany i dostępny dla każdego

Po zakończeniu wsparcia i finansowania kiosk informacyjny miał zostać odstawiony. Wziąłem go na warsztat jako własny projekt, głównie po godzinach, i napisałem dla niego całe oprogramowanie od nowa: aplikację, firmware przycisków z alfabetem Braille’a, polski głos działający lokalnie i czujnik, który wita podchodzących.

29.10.2026

Ten kiosk miał zostać odstawiony. Stał w holu od lat, ale po zakończeniu wsparcia i finansowania komercyjnego systemu przestał działać. Docelowo pewnie skończyłby gdzieś w otchłaniach magazynu.

Wziąłem go na warsztat jako własny projekt. Diagnozę, nowe oprogramowanie, firmware płytki przycisków, polski głos i wdrożenie zrobiłem sam, w większości po godzinach. Dziś kiosk znowu działa i jest zaprojektowany przede wszystkim dla osób z niepełnosprawnościami.

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

Punkt wyjścia: kiosk do odstawienia

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.

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.

W tej formie kiosk nie miał już czego pokazywać, więc miał zniknąć z holu. Tymczasem obudowa, ekran i przyciski były w świetnym stanie. Uznałem, że szkoda odstawiać je do magazynu, skoro wystarczy wymienić to, co w środku, i napisać resztę od nowa.

Trzy zdjęcia z diagnozy: komputer MINIX z odręcznie opisaną naklejką obok płytki z czujnikiem ultradźwiękowym, menu Android Recovery na ekranie kiosku i kiosk na zapleczu podczas startu systemu(powiększ)
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 Linuksem. 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,
  • firmware aktualizuję 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(powiększ)
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(powiększ)
Ekran testowy przycisków i czujnika oraz panel z opisem w alfabecie Braille’a

Brakujący element w holu

W holu 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żyć dokumenty, gdzie jest kasa, co trzeba ze sobą zabrać.

Kiosk domknął całość:

  • tablica pokoi pokazuje, który dział 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 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. Odwiedzający widzi na kiosku ten sam numer pokoju co na tablicy i na portalu. Tablice opisałem we wpisach Tablice informacyjne w holu i Tablica przystankowa z odjazdami MPK.

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,
  • działy i biura z lokalizacją, telefonem i godzinami przyjęć,
  • ważne miejsca, takie jak kasa czy punkt przyjmowania pism.
Ekran startowy kiosku i wyszukiwarka spraw z klawiaturą ekranową z polskimi znakami, po wpisaniu słowa slub znalezione dwie sprawy dotyczące ślubu(powiększ)
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 działu 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(powiększ)
Karta sprawy i karta działu
Lista kategorii spraw do załatwienia oraz lista ważnych miejsc: dziennik podawczy, kasa, punkt potwierdzania profilu zaufanego i filie starostwa z budynkiem, piętrem i numerem pokoju(powiększ)
Kategorie spraw i ważne miejsca w budynku

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 z bliska: ekran startowy, pod nim pięć przycisków z napisami i opisem w alfabecie Braille’a(powiększ)
Kiosk w holu

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, działy i miejsca pochodzą z tego samego CMS, z którego korzysta portal. Lokalizacje pokoi trafiły tam z intranetu.

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

Działa bez opiekuna

Kiosk stoi w holu bez opiekuna, więc musi sam dbać o siebie, a o problemach dawać znać, zanim zauważy je ktoś z odwiedzających.

  • system startuje prosto do aplikacji, z logo zamiast komunikatów rozruchu,
  • przeglądarka działa w trybie kiosku, bez pulpitu i bez możliwości wyjścia z aplikacji,
  • sprzętowy watchdog restartuje komputer, gdy system przestanie odpowiadać,
  • monitoring pilnuje, czy kiosk działa poprawnie, i zgłasza awarie,
  • komunikacja z systemami wewnętrznymi jest szyfrowana, a uprawnienia ograniczone do niezbędnego minimum.

Statystyki bez ciasteczek

Kiosk zbiera anonimowe statystyki, bez ciasteczek i bez danych osobowych. 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.

Projekt po godzinach

Większość pracy przy kiosku zrobiłem po godzinach. Najwięcej czasu zajęło to, czego nie widać na ekranie: diagnoza starego systemu, płytka przycisków, kalibracja dotyku i polski głos, który poprawnie czyta liczby.

Efekt jest taki, że zamiast odstawiać sprawny sprzęt do magazynu, jest kiosk, który robi więcej niż kiedykolwiek wcześniej i nie zależy od zewnętrznego dostawcy.

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 (SSR na Node), Tailwind v4, DaisyUI v5, Lucide, fonty self-hosted,
  • Directus portalu jako źródło spraw, działów i miejsc,
  • Debian, 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,
  • Docker.

Kliknij albo przewiń, żeby przybliżyć. Przeciągnij, żeby przesunąć.Stuknij dwa razy albo rozsuń palce, żeby przybliżyć.