ESP-WROOM-02 を使ってシリアルモニタを作るコードがあったので試してみました。
シリアルモニタをワイヤレスで使えるようになると、便利なことがあります。例えば、Raspberry Pi や Jetson Nano、あるいは他のガジェットなど、シリアルでログが出たりするものであれば、それをPCと結線すること無く、PCでログを観察することが可能です。 今回はブラウザで結果を見るというものになるため、スマホやタブレットでログを見ることも出来ますね。
ラジコンのようなおもちゃと繋いでおくと、動作させながら様子を観察するということもできそうです。
コードについて
基本となるのは https://github.com/tzapu/WebSocketSerialMonitor で公開されていたプログラムです。このプログラムが現時点ではそのままコンパイル出来なかったことや、アクセスポイントとして設定して、そこに接続して使う、というモードは私にとってちょっと都合が悪かったので変更を行いました。
それら変更したコードは上記のリポジトリをフォークして公開しています。
コンパイルについて
内部で使用しているのが、arduinoWebSockets というライブラリモジュールですが、同じような名前でパッケージマネージャからインストールできるものでは、うまくかみ合わないようです。
そこで、 https://github.com/Links2004/arduinoWebSockets/releases から、コードを zip 形式でダウンロードして、 Arduino IDE からパッケージ追加という方法で追加を行います。
動作チェック
簡単にですが動作チェックをしてみました。
プログラムを書き込んだときに、 ESP-WROOM-02 とはシリアルで繋がっているため、Arduino IDE に付属のシリアルモニタから文字列を送って、WebSocket 側で見られるかを確認してみましょう。
Readme に記載されている以下のリンクをクリックするとブラウザでシリアルモニタのページが開きます。ここで、ESP-WROOM-02 に割り当てられた IP アドレスを使って接続を行います。
- アドレスの例: ws://192.168.0.1:81/ws
上手く接続されたら Arduino IDE シリアルモニタから文字列を送ってみて下さい。以下のように送った文字列がブラウザ側に表示されます。
まとめ
WebSocket によりブラウザ経由でのシリアルログを確認できるというプログラムの紹介・検証を行いました。
検証ではうまくいったので、これを用いてしばらく使ってみようと考えています。そのうち、ログを見るだけでなく、ターミナルとして使えるような工夫をしてみようかなとも考えています。WebSocket は双方向通信が出来ますし、これを活用したいところですね。
おまけ
某イベントでの競技用車のシリアル出力をモニタリングするのに装着してみました。そのときの様子が以下のものです。動かしながら出力をモニタリングできるのは便利でした。
コメント