WebSocketgaugeServerのインストール(Android単独版) その2
目的 |
修理・故障・メンテナンス |
作業 |
DIY |
難易度 |
中級 |
作業時間 |
30分以内 |
1
AndroidにてWebSocketGaugeServerを動作させる際には、Androidにtermuxをインストールして、termuxのLinux互換環境上で動作させるわけなのですが、
問題は、termuxからシリアルポートへのアクセスが不可能であるため、WebSocketServer<->ELM327(or Arduino Uno)間の通信がそのまま出来ないことです。
そのため、WebSocketServerにはシリアルポート通信をネットワーク(TCP)でトンネルする機能を実装し、Androidの別アプリにてTCP→シリアルポートへ変換させる手段を使います。
(尚、ELM327 wifiアダプタや、あるいはUART→LAN(Wifi)変換アダプタが用意できるならば、この手順を用いなくても、WebSocketGaugeServerからELM327やArduinoへ直接通信可能かもしれません)
尚、Githubにアップロードしているarm64版WebSocketGaugeServerは、デフォルトでシリアル-TCPトンネルが有効になっておりますので、WebSocketGuageServer側は(TCPトンネルアプリがlocalhostにあるならば)設定は不要になります。
2
3
インストールしたBluetooth Bridge (+TCP)をバックグラウンド動作させることになるわけなのですが、termux(のACQUIRE LOCK)と同様、そのままだとAndroidシステムが勝手にこのBridgeアプリを終了させてしまうことがあるため、バックグラウンド状態で勝手に終了されないよう、電池の最適化を無効にします。
設定アプリにて「電池の最適化」で検索、すると特別なアプリアクセス→電池の最適化へ案内されるので、Bluetooth Bridge (+TCP)を見つけ出して、電池の最適化をしない、に設定します。
(すべてのアプリにフイルタを変えないと現われないかもしれません)
ただ、このように電池の最適化を行っても、(特にRAMの少ないAndorid端末は)さらに他のアプリに切り替えた時に勝手に終了させられることはあるので、そのときは手動で再起動するしかありません(これはtermuxも同様)
4
Bluetooth Bridge (+TCP)を起動、まずBluetoothアダプタの設定を行います。
DeviceAのConnection/Listenを選択、
5
Device typeはSPPにし、Bluetooth ELM327アダプタを選択、接続します。
これでDeviceA側の設定は終了。
6
次にDeviceB側の設定(TCPサーバー)を行います。
こちらもDeviceBのConnection/Listenを押して、StartTCPServerを選択します。
IPアドレスはそのままにし、ポート番号を35000に設定します(ここはWebSocketGaugeサーバーの設定によります。デフォルトは35000ですが、変更しているならそれに応じてここも変更します。)
そして、最後にStartServerでTCPサーバー(トンネル)を有効化します。
7
最後にtermuxを起動させ、WebSocketGaugeServerを起動させます。
WebブラウザからWebSocketGaugeServerに接続(
http://localhost:2016/にアクセス)し、メーターページを表示させた時点で、WebSocketGaugeServerはELM327への接続をトライします。
Bluetooth Bridge (+TCP)のステータスが両方Connectedになり、WebSocketGaugeServerのログでも接続が確認、メーター画面がお応答されれば成功です。
8
[PR]Yahoo!ショッピング
入札多数の人気商品!
[PR]Yahoo!オークション
関連コンテンツ
関連整備ピックアップ
関連リンク