通常、Ambientに送ったデータを見るには、PCやスマートフォンのブラウザでAmbientのログイン画面にアクセスし、メールアドレスとパスワードを入力してログインし、ボードを選択して、ボードに表示されているデータを見ます。しかし、このようなログイン操作をせず、専用のモニタでAmbientのデータを表示したい場合もあります。

キオスク端末

Ambientには通常のログインとは別に、ログインページのURLパラメータにメールアドレス、パスワード、ボードIDを指定すると、ブラウザからの操作なしにログインして指定したボードを表示する機能があります。

パラメータは次の形式で指定します。

https://ambidata.io/usr/login.html?email=メールアドレス&password=パスワード&boardId=ボードID

この機能を利用して、ラズベリーパイにモニタを接続し、Ambientのボードを表示するキオスク端末を作ってみました。ラズベリーパイのキオスク端末化は次の記事を参考にしました。

Raspberry Pi OSで、Chromium を kiosk mode 実行する

ラズベリーパイとモニタ

使ったラズベリーパイは Raspberry Pi 3 Model B Rev 1.2、OSはRaspberry Pi OS 5.10です。

$ uname -a
Linux r1 5.10.59-v7+ #1447 SMP Thu Aug 19 12:24:58 BST 2021 armv7l GNU/Linux

モニタは何でもよいと思いますが、実験に使ったのは次のものです。

EVICIV 7インチ Raspberry Pi用タッチモニター

モニタとラズベリパイは次のように接続します。

モニタ
HDMI ラズベリーパイHDMI
5V+Touch ラズベリーパイUSBポート
5V ACアダプタ

このモニタにはタッチスクリーン機能があります。今回は使わないので「5V+Touch」の線をつながず、HDMIだけをラズベリーパイにつないで電源を入れたら、「何かをインストールするには…」とモニターが喋り始めました。USBケーブルで「5V+Touch」とラズベリーパイをつないだら喋らなくなったので、タッチスクリーン機能は使わない場合も、つなぐ必要はあるようです。

ラズベリーパイの設定

必要なパッケージをインストールします。

$ sudo apt-get install --no-install-recommends xserver-xorg-video-all \
  xserver-xorg-input-all xserver-xorg-core xinit x11-xserver-utils \
  chromium-browser

自動ログインの設定をします。

$ sudo raspi-config
System Options > Boot / Auto Login > Console Autologin

ログイン時にstartxを起動する設定をします。/home/pi/.bash_profileの最後に以下を追加します。

if [ -z $DISPLAY ] && [ $(tty) = /dev/tty1 ]
then
    startx -- -nocursor
fi

startxの設定をします。/home/pi/.xinitrcを次のようにします。

#!/usr/bin/env sh
xset -dpms
xset s off
xset s noblank

chromium-browser "https://ambidata.io/usr/login.html?email=メールアドレス&password=パスワード&boardId=ボードID" \
  --window-size=1360,768 \
  --window-position=0,0 \
  --start-fullscreen \
  --kiosk \
  --incognito \
  --noerrdialogs \
  --disable-translate \
  --no-first-run \
  --fast \
  --fast-start \
  --disable-infobars \
  --disable-features=TranslateUI \
  --disk-cache-dir=/dev/null \
  --overscroll-history-navigation=0 \
  --disable-pinch

メールアドレスとパスワードはAmbientに登録したものです。ボードIDはAmbientデータを見たときに、ブラウザのアドレスバーに表示されている数字の部分です。

https://ambidata.io/bd/board.html?id=数字

これでラズベリーパイをリブートすると、しばらくしてモニタにAmbientのボードが表示されます。

パスワードを平文で書くのがちょっと気持ち悪いですが、ボードを公開モードにしなくてもモニタ端末にAmbientデータを表示できるので便利です。