簡単にどうやったかを説明すると、PCとBluetoothのSPPで接続されたRFIDリーダに対して、ブラウザから現在策定中のSerial APIを介して制御するという感じです。
さて、この言葉が将来使われるのか分かりませんが、まだ誰も使ってなさそうなので、WebからUHF帯RFIDリーダを制御する使い方をWeb RAINと銘うっておこうと思います。次点でWeb LLRPでしょうか。
今回使ったもの
- RF Blaster
- Bluetooth搭載のWindows 10 PC
- Serial API
- Azure
- ASP.NET Core Blazor WebAssembly 2
- 最新版のGoogle Chrome または
- 最新版のMicrosoft Edge
とりあえず作ったサイト
制限など
リーダ
今のところ使えるリーダは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/
今回使用するWeb Serialは実験的な位置づけの機能のため、デフォルトの設定では使用できません。アドレスバーに、Chromeの場合は chrome://flags を、Edgeの場合は edge://flags をそれぞれ入力して開いてください。検索窓がありますので、 #enable-experimental-web-platform-features と入力して、見つかった項目をEnabledあるいは有効にしてください。変更後、ブラウザを再起動すれば準備完了です。
あと開発中何度かフラグが無効になっていたことがあったので、ブラウザのアップデートのタイミングとかで元に戻ってしまうのかもしれません。うまく行かないときは再度確認してみてください。
いざ、実行!
https://webrain.azurewebsites.net/
リーダの電源が付いていることを確認したら、Connectボタンを押してください。下記のような画面が表示されると思います。Bluetoothの設定で確認したCOMポートを選択して接続ボタンを押してください。うまく行けばリーダからピピッピピッと鳴って接続されます。
なお、Connectボタンを押してから、専用ダイアログでどの機器と接続するかを選ぶ必要があるのはSecurity上の理由からだそうです。Webサイトを開くだけで、自動でリーダが読取始めたら怖いですからね。
1: AlienやImpinjといった自律動作可能な据置リーダの場合はシステム構成によってアプリ不要
2: こっちが裏テーマです。つい先日正式版が発表されましたね。C#だけで書けるのはうれしいですが、今回みたいなことをやろうとすると、結局Javascriptが必要になるのかな。その辺は今後調査が必要です。
0 件のコメント:
コメントを投稿