goo blog サービス終了のお知らせ 

南無ちゃんのブログ    https://namva.net

天下御免の夢中人=南無ちゃんは、今日も元気で明るく楽しく逞しく生きてゆく。

ESP32とPCをBluetoothで接続する

2022-10-28 15:49:56 | プログラミング

 自作の装置とワイヤレスで通信する方法としてWiFiを使ったことがありますが、WiFiルータのSSIDやIPをコード内に記述する必要があるので、万一WiFiルータが故障した時などにはプログラムし直す必要あるので、不安が残ります。
 また、WSJTやN1MMなどのアプリではCOMポートを使って無線機を制御しているので、WiFiで接続するにはCOMポートにリダイレクトするには仮想シリアルドライバのようなものを用意する必要がありますが、適当なものが見当たりません。
 PCと無線機の間をBluetoothで接続してみたいと思っていて、ESP32を使えば何とかなりそうなので、一先ず簡単な実験をしてみました。
 使用したボードはamazonで購入したESP32S NODE MCUです。こちらの記事を参考にしました。開発環境はAruduioですが、以前からESP32を使用したアプリを幾つか開発したことがあるので、ESP32に対応するようにライブラリなどはインストール済みです。
 記事にあるプログラムを、そのままコピペしてコンパイルし、ESP32S NODE MCUに書き込みました。
 手持ちのAndroidスマホを操作して、Bluetooth Terminalというアプリをインストールしました。その後、スマホのBlutooth設定メニューでESP32_LED_Controlというデバイスとペアリングして、Bluetooth Terminalを起動すれば、スマホからESP32S NODE MCUボード上の青色LEDをON/OFFできるようになりました。
 今度は、PCからBluetoothで接続してON/OFF制御してみます。その前に、スマホとESP32_LED_Controlのペアリングは解除しておきます。PC(Windows10)でStart->設定->デバイスと選択して、「Bluetoothまたはその他のデバイスを追加するを選択すると、ESP32_LED_controlが見えるので追加(ペアリング)します。
 デバイスマネージャを開いて、ポート(COMとLPT)を見るとBluetoothリンク経由の標準シリアル(COMx)が見えます。何故か分かりませんが、2つのCOMポートが見えます。

 TeraTermを起動して、この内の先頭のCOMポート(画像の例だとCOM7)に接続します。TeraTermの画面から1を入力すればESP32S NODE MCUボードの青色LEDがONし、0を入力すればOFFします。因みに、COM8ではオープンはできますが、画面のような応答はありませんでした。

 以上の実験から、ESP32を使ってスマホやPCとワイヤレス接続で制御するアプリを簡単に作成できることが分かりました。ESP32のシリアルポートにCIV(ICOMのCAT)を接続して、Blutoothから受信したデータをシリアルポートに送信し、シリアルポートから受信したデータをBluetoothに送信するようなアプリをESP32に書き込んでやれば、PCからBluetooth経由のシリアルポートを使って無線機が操作できる筈なので、やってみたいと思います。
 ただし、シリアルポートが使えると言っても、USB経由のCOMポートとは違ってRTSやDTRなどの制御線は利用できないようです。無線機のPTTやCW-KEYを操作するために、これらの制御線を用いられることが多いので残念ですが仕方がありません。
 実験したところ、TeraTermのボーレートは何に設定していても無関係でした。つまり、Blutooth経由の標準COMポートのボーレートは設定できないようです。なので、WSJT-XやN1MMでBlutooth経由の標準COMポートを使う時には、ボーレートやフロー制御などのUARTの設定は気にしなくてよいということだと思います。むしろ気にしなければならないのは、ESP32に書き込むプログラムの方であって、ESP32にプログラムしたUARTのボーレートはCIVに適合していなければなりません。

コメント    この記事についてブログを書く
« CNC用CAMデータ作成ツール | トップ | TY0RU Benin »
最新の画像もっと見る

コメントを投稿

プログラミング」カテゴリの最新記事