AppleWallet의 Pass 기능을 이용하여 승차권을 만들어보려고 합니다.
해외같은 경우는 특히 이게 잘 되어있는데 국내는 항공사도 일부만 지원하고 버스같은 경우는 아예 없는 듯 하여 기획하여 만들어보려고 합니다.
방식은 시외버스 기준으로 현재 시외버스티머니, 버스타고, 카카오T 에서 승차권 발행이 되는거로 알고있는데 여기서 QR과 탑승정보가 나온 화면을 캡쳐(저장)하면 그걸 기반으로 Pass를 생성해주려 합니다
이런 느낌으로 될듯
AppleWallet의 Pass 기능을 이용하여 승차권을 만들어보려고 합니다.
해외같은 경우는 특히 이게 잘 되어있는데 국내는 항공사도 일부만 지원하고 버스같은 경우는 아예 없는 듯 하여 기획하여 만들어보려고 합니다.
방식은 시외버스 기준으로 현재 시외버스티머니, 버스타고, 카카오T 에서 승차권 발행이 되는거로 알고있는데 여기서 QR과 탑승정보가 나온 화면을 캡쳐(저장)하면 그걸 기반으로 Pass를 생성해주려 합니다
이런 느낌으로 될듯
먼저 하드웨어 세팅을 해 봅시다. 준비물은 다음과 같습니다.
라즈베리파이는 라즈비안도 가능할 수 있습니다. 일단 크로미움이 깔리고 UI가 잘 뜨면 됩니다. 키보드/마우스는 무선이라도 블루투스가 아닌 unifying 수신기가 달린 제품이면 상관 없습니다.
우분투 버전은 Desktop 버전을 설치했습니다. 사용 이유는 일단 UI 가 설치되어 있어 구성의 편리함이 있을 것 같았습니다.
우선 우분투를 설치 안내에 따라 설치합니다. 그리고 kiosk 라는 사용자를 하나 만듭니다. 나중 관리를 위해 메인 계정은 살려두고 kiosk 로 자동 로그온이 되도록 할 겁니다.
우선 패키지를 업데이트 하고 몇개를 새로 설치할 겁니다. unclutter 패키지는 일정 시간이 지나면 마우스를 숨겨주는 패키지입니다.
sudo -s
apt update && apt upgrade -y && apt install -y chromium-browser unclutter
그리고 자동 로그인을 위해 /etc/gdm3/custom.conf 파일을 편집합니다. gdm3 는 디스플레이 매니저 이름이며 다른 디스플레이 매니저를 쓴다면(lightdm 등) 그 설정 파일을 수정해주면 됩니다.
[daemon]
AutomaticLoginEnable=true # <-- 여기
AutomaticLogin=kiosk # <-- 여기
그리고 kiosk 홈 디렉토리에 chromium 을 실행하는 스크립트를 하나 만듭니다. kiosk.sh
#!/bin/bash
# Run this script in display 0 - the monitor
export DISPLAY=:0
# Hide the mouse from the display
unclutter &
# If Chromium crashes (usually due to rebooting), clear the crash #flag so we don't have the annoying warning bar
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/kiosk/.config/chromium/Default/Preferences
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/kiosk/.config/chromium/Default/Preferences
# Run Chromium and open tabs
/usr/bin/chromium-browser --window-size=1920,1080 --kiosk --incognito --window-position=0,0 http://URL &
크로미움에는 키오스크 모드가 있습니다. 맥도날드 같은 곳에 설치된 키오스크 를 의미합니다. 전체 화면으로 실행되며 개발자 모드 비활성화, 알림 억제 등의 효과가 있습니다. 키오스크 모드라고 해서 어떤 동작을 해야 한다 라는게 명세되어 있지는 않고 각 브라우저마다 동작이 다 다릅니다. 일단 지금 상황에서는 전체화면으로 실행되고 주소 바만 없으면 되므로 키오스크 플래그를 줘서 실행합니다.
그리고 방문 기록 등 쓰레기 파일을 남기고 싶지 않으므로 incognito(private mode) 플래그를 줘서 실행합니다. URL 칸에는 URL 을 입력하면 됩니다.
다음은 kiosk.sh 를 자동 실행하게 하는 파일을 작성합니다. 디스플레이 매니저마다 설정이 다를 수 있습니다. home/kiosk/.config/ 아래에 autostart 디렉토리를 만들어 줍니다. 그리고 kiosk.desktop 를 파일을 만들고 편집합니다.
[Desktop Entry]
Type=Application
Name=Kiosk
Exec=/home/kiosk/kiosk.sh
X-GNOME-Autostart-enabled=true
StartupNotify=true
Terminal=false
다음은 디스플레이에 표시될 웹 서버를 작성하도록 하겠습니다.