Raspberry Piでキオスク端末を

QRコードを読み取ってwebサーバーにpostするだけの端末が欲しい。
こりゃーキオスク端末の出番だぞ、でも予算かけたくないぞ、ということで
chromestickとかchromeboxとか、AndroidでROM焼きするか、iPadか、などと考えたが
格安にいけるのはRaspberry Piとディスプレイの組み合わせでした。

購入物


7インチディスプレイ。HDMI対応、1024×600。


Raspberry Pi 3 Model B。専用ケースつきのほうが取り回しが良かろうと。透明のを買いました。


電源。弱かったり不安定だと困るのでそこそこ良さげなやつ。


microSDHCカード。Raspbian OSは4GB以上とのことですが、手元に転がってたのはコレでしたので。

早速翌日届く。amazonプライムさすがです。

Raspbian OSのインストール。
Download Raspbian for Raspberry Pi
ブラウザ使用が前提なのでDesktop版をダウンロード。
Version:March 2018でした。torrentが圧倒的に速かった。

zipの中のimgをmicroSDHCにddで書こう…と思ったらubuntu機消してた。
windowsでimg書けるツールを使う。
「Rufus」ブート可能なISOイメージファイルをもとにブータブルUSBメモリを簡単に作成 – 窓の杜ライブラリ

出来たらmicroSDHCカードをRaspberry Piに挿して電源オン!

あっさり起動する。
いきなりデスクトップ環境まで進む。

画面解像度の選択肢に1024×600がないので、作る。
検索すると様々な情報が出てきますが、下記1行を追記するだけで良かったです。
$ sudo vi /boot/config.txt
hdmi_cvt=1024 600 60 3 0 0 0

しかし画面比が直らない…と思ったらディスプレイ側の設定が4:3固定になってました。んもー

起動時、GUIになったらキオスクモードでchromium browserを起動する。
$ vi ~/.config/lxsession/LXDE-pi/autostart
@chromium-browser --kiosk http://192.168.xxx.xxx/

シャットダウン時に物理的に電源を切る必要がありますが、
だいたい立ち上げっぱなしだし、必要十分。
VNCサーバーも設定オンにするだけでいきなり立ち上げられるので
何かあったときもリモート管理がラクです。

追記2018-05-21

・その1
シャットダウンせずに電源をいきなり切っちゃった場合、次回chromium起動時に
「正常にシャットダウンされませんでした」
と表示が出てしまうので、incognitoモードを追加。
@chromium-browser --incognito --kiosk http://192.168.xxx.xxx/

・その2
2台目以降のセットアップのときは、MicroSDをコピーして完了。
Win32DiskImagerを使いました。

Windows で Raspberry Pi のバックアップを取る方法 | Moonmile Solutions Blog

Asteriskで留守電作ったメモ

Asterisk PBXで留守電を受けて、内容をメールで送ってくるようにしたんだけども
まとめてる時間がないのでとりあえず参考にしたURLを列挙しておく。
私はCentOS7に入れた。以前CentOS5でやってたときと比べてあっさり入った記憶。
Brastelの050Freeで受けてます。

Asteriskで050 Freeに留守電を付ける – majishini

バイク野郎のひとりごと: Raspberry Pi 3へAsteriskを構築する — その3

GSMファイルに変換した音声ファイルをAsteriskのIVR音声に使用する – つるながの綴方

WAVをAsterisk用のGSMへ変換する – Qiita

AsteriskによるIP-PBXの構築(SuSE9.3編)

Asterisk cmd VoiceMail – voip-info.org

Asterisk cmd VoiceMailMain – voip-info.org

PC1台をマルチディスプレイで複数人で同時に使用したい

CPUパワーもメモリも余ってたら、マルチディスプレイなんて当たり前だし、
同時に2人や3人ぐらい使ったって良いのでは?
PC Linuxでできたら楽しいのになぁ。

と思ってググってみるが、あまり情報がない。
キオスク端末を2台3台並べたりするのに便利そうなのであとで試してみようというメモ。

Multiseat Configuration — PCの複数席設定、1台のPCを複数人同時利用 – Google グループ
ここが起点。マルチシート(multiseating)って言うんですね。

Build a Six-headed, Six-user Linux System LG #124
2006年時点で6人使ってた例がすでにあり

Configuring multiseat X workstation – lxadm | Linux administration tips, tutorials, HOWTOs and articles
英語で探せばそこそこ見つかりそうなので、そのうちやろう。そのうち。

アメリカでh2o wirelessを使った話

机の上を片付けてたらh2o wirelessのSIMの残骸が出てきたので、
そういえばAPNで苦労したんだった!と思い出しましたので検索できるようにメモ。

以前アメリカに渡航したときはAT&Tのショップへ出かけてSIMを買ったのですが、
空港に着いたらすぐ通信したい!という理由で、国内でh2o wirelessのSIMを買っておきました。
なお私は大手キャリアとのデータ通信契約をしてません(MVNO利用)ので、海外ローミングはできません。

アジア圏などはタイのローミングSIMが良いです。

しかしアメリカに対応しているものは、ない or 高い。
そこで今回は国内でKDDIが扱っているh2o wirelessのSIMを調達したわけです。
先にチャージされているパッケージは30日未満だと発売前とか表示されます。なんだそりゃ。

1週間も居なかったので、あとから自分でチャージするSIMのみのパッケージにしました。

あらかじめ国内でwebからアクティベーションとリチャージを行っておきます。
わかりにくいですが
アクティベーション時に Month Plan LTE $30 を購入、
その$30でリチャージ、です。
このへんは成田空港でやっておきました。

アクティベーション

リチャージ

で、出発。機内でSIMを入れ替えて、現地でAT&Tの圏内になるとSMSが送られてきて
APN自動設定が来ます。

しかしこの当時はMoto G5 plusを使っていたのですが、全然通信できない。
受信はできるが送信できないみたいなへんな状態になっており、大変困る。
なんとかWiFiを繋げて■データ通信設定のページの手順に従うも、自動設定と同じ。

そして検索して試すこと数十分
H2O Wireless APN Settings – BestMVNO
ここの設定を試したら、いけた!
自動設定で入ってきたのと全然違うじゃん!

さらに現地で他のh2o wireless使ってる人に聞いたら
H2O Wireless SIMの使用方法
AndroidはAPNに「Prodata」って入れるだけですよ、ですって!なにそれ!
でもSmartSIMによる自動設定は未推奨って書いてありますね(非推奨だと思うけど)。

一応前者の設定をコピーしておきます。

APN Name H2O APN
APN PRODATA
Proxy
Port 80
Username
Password
Server
MMSC http://mmsc.mobile.att.net
MMS Proxy proxy.mobile.att.net
MMS Port 80
MCC 310
MNC 410
Authentication Type PAP
APN Type default,mms,supl,hipri
APN Protocol
APN Roaming Protocol
Bearer
MVNO Type

次は、きっと、大丈夫。

なお、手元のMoto G5 plusおよびEssential Phone PH-1ではテザリングができませんでした。ふさがれてた。

ANAマイルの月別合計を計算するbookmarklet


ANAのマイレージの確認画面(PC)は、現在の残高は表示してくれますが、
月別表示にしても、その月にどれだけたまったのか(減ったのか)は表示してくれません。

なので、bookmarkletで計算するようにしてみました。

void((function(f){
  var s = document.createElement('script');
  s.src = '//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js';
  s.onload = function(){
    var $ = jQuery.noConflict(true);
    f($);
  };
  document.body.appendChild(s);
})(function($, undefined){
  var n=0;
  var q=0;
  $('#meisaitable tbody tr').each(function(){
  	m= parseFloat( $('td',this).eq(8).html().replace(/,/g,'') );
  	p= parseFloat( $('td',this).eq(9).html().replace(/,/g,'') );
  	n += isNaN(m) ? 0 : m;
  	q += isNaN(p) ? 0: p;
  });
  t=$('#meisaitable thead th');
  t.eq(8).append(n);
  t.eq(9).append(q);
}));

これを/packer/でpackして、
javascript:を頭につけてbookmarkletにします。

javascript:void((function(f){var s=document.createElement('script');s.src='//cdnjs.cloudflare.com/ajax/libs/jquery/2.2.1/jquery.min.js';s.onload=function(){var $=jQuery.noConflict(true);f($)};document.body.appendChild(s)})(function($,undefined){var n=0;var q=0;$('#meisaitable tbody tr').each(function(){m=parseFloat($('td',this).eq(8).html().replace(/,/g,''));p=parseFloat($('td',this).eq(9).html().replace(/,/g,''));n+=isNaN(m)?0:m;q+=isNaN(p)?0:p});t=$('#meisaitable thead th');t.eq(8).append(n);t.eq(9).append(q)}));

bookmarkツールバーにでも登録しておきます。

ANAマイレージクラブのマイル残高画面を開いて、このbookmarkletを実行すると、
その画面に表示されている一覧の合計を、タイトル行に表示します。

当然、減算した月はマイナスに。

計算してどうするの、と言われると、
まぁ、月々の動向のチェック…とか…?

bookmarkletもjQueryも久々だったので参考にさせていただきました
いまさらまとめるブックマークレットの作り方 〜 2016年版 〜 – 無駄と文化