2020年5月22日金曜日

Web RAIN! WebからRFIDリーダを制御する

UHF帯のRFIDリーダを使う場合、たいていスマホやパソコンに制御用のアプリを入れる必要がある1と思います。一方で、バーコードスキャナであれば、挿すだけで使えますし、同じRFIDでもNFCについては、ブラウザから直接読み取れるようになりました。UHF帯のRFIDリーダでもブラウザから直接タグを読めるといいなあと思い、今回試してみました。

簡単にどうやったかを説明すると、PCとBluetoothのSPPで接続されたRFIDリーダに対して、ブラウザから現在策定中のSerial APIを介して制御するという感じです。

さて、この言葉が将来使われるのか分かりませんが、まだ誰も使ってなさそうなので、WebからUHF帯RFIDリーダを制御する使い方をWeb RAINと銘うっておこうと思います。次点でWeb LLRPでしょうか。

今回使ったもの


とりあえず作ったサイト



制限など


リーダ

今のところ使えるリーダはRF Blasterのみです。AT388も動くかもしれませんが、未検証です。

OS

Windows 10のみ対応です。Android系はどうもSDKがSerial Portに未対応なので、今後もこの方法での接続はできなさそうです。Androidの場合は、BLEに対応したRFIDリーダをWeb Bluetoothで接続する方向性になるでしょうか。

ブラウザ

ChromeかEdgeの最新版が必要です。ここまではいいとして、#enable-experimental-web-platform-features をEnabledにする必要がありますので、なかなかすぐに業務に使うというのは難しそうです。

準備


Bluetooth

まず、RF BlasterとPCのBluetooth接続を行います。タスクトレイのBluetoothアイコンを右クリックして「Bluetoothデバイスの追加」をクリックします。

「Bluetoothまたはその他のデバイスを追加する」をクリックします。
RF Blasterの電源を付けて、「Bluetooth」をクリックします。そうすると、「RFPrisma-xxxx」みたいなのが見つかると思うので、クリックします。


そのあとPINコードの確認が表示されるので、「接続」をクリックしてください。
元の画面に戻って「その他のBluetoothオプション」をクリックしてください。

COMポートタブを開くと、こんな風になっていると思います。方向が「発信」で、名前が「RFPrisma-xxxx 'AMP-SPP'」となっているポート番号をメモしておきます。あとで使います。下の図の場合は、COM13ですね。


ブラウザ

次にブラウザの設定を行います。使えるのは最新版のGoogle Chromeか、同じく最新版のMicrosoft Edgeとなります。

今回使用するWeb Serialは実験的な位置づけの機能のため、デフォルトの設定では使用できません。アドレスバーに、Chromeの場合は chrome://flags を、Edgeの場合は edge://flags をそれぞれ入力して開いてください。検索窓がありますので、 #enable-experimental-web-platform-features と入力して、見つかった項目をEnabledあるいは有効にしてください。変更後、ブラウザを再起動すれば準備完了です。

あと開発中何度かフラグが無効になっていたことがあったので、ブラウザのアップデートのタイミングとかで元に戻ってしまうのかもしれません。うまく行かないときは再度確認してみてください。




いざ、実行!

下記のURLを開いてください。
https://webrain.azurewebsites.net/


リーダの電源が付いていることを確認したら、Connectボタンを押してください。下記のような画面が表示されると思います。Bluetoothの設定で確認したCOMポートを選択して接続ボタンを押してください。うまく行けばリーダからピピッピピッと鳴って接続されます。

なお、Connectボタンを押してから、専用ダイアログでどの機器と接続するかを選ぶ必要があるのはSecurity上の理由からだそうです。Webサイトを開くだけで、自動でリーダが読取始めたら怖いですからね。


リーダの読取ボタンを押すと、時刻と読み取られたタグIDが表示されると思います。



1: AlienやImpinjといった自律動作可能な据置リーダの場合はシステム構成によってアプリ不要
2: こっちが裏テーマです。つい先日正式版が発表されましたね。C#だけで書けるのはうれしいですが、今回みたいなことをやろうとすると、結局Javascriptが必要になるのかな。その辺は今後調査が必要です。

0 件のコメント:

コメントを投稿