ざっくりいうと
激安・小型・取り回しやすいBluetoothシリアルモジュールの JDY-31 を試してみた。
Android端末・Windowsから問題なく接続し、通信ができた。
色々使えそうだけど、技適認証受けてないんだよなぁ。
JDY-31と他のモジュール
小型のBluetoothシリアルモジュールを探していたところ、この JDY-31 を発見しました。AliExpressで$1.06(送料込) だったので思わず買ってしまいました。技適の認証も受けてないようなので、問題にならない範囲で試してみます。
ちなみに他のBluetoothシリアルモジュールでは HC-05 と HC-06 というのが入手性がよく、価格が安め、ただし技適認証は受けていない。HC-05 はスレーブだけでなくマスター動作もできます。
あと RBT-001 というのを持っています。電源電圧が3.0Vで端子が2mmピッチなのがアレですが、特に問題無くPCと通信できました。こちらは技適認証済ですがちょっと高くて、気軽に使えないのです。
最近はBLEデバイスが流行ってる(?)みたいで、こちらもファームウェア次第でBluetoothシリアルモジュールとして使えそうです。注文してみたので、今度試してみます。
ハードウェア・試験回路
データシートは ここ にあります。
スレーブ動作のみ可能です。なので2台の JDY-31 を直接接続することはできません。最大30m電波が飛んで、スループットは最大16kByte/sだそうです。
サイズが小さく(13x27mm)、主要な信号は2.54mmピッチから出ているため、使いやすいです。細かい端子には、フロー制御の信号やリセット端子があります。
電源電圧は3.3Vが推奨です。シリアルの信号線はTTLレベルと書いてあるのですが、どういう意味で書いてあるのかよくわからない…。5V系と直接繋いでもいい(トレラント)というこだろうか…?なので今回は5V系のシリアルと直結してしまいましたが、よくわからないので、RXD入力は抵抗器で分圧するなどしたほうが良いかもしれません。
3.3Vの電源電圧を作って繋いだだけです。3.3V系のUSBシリアル変換器などと接続するならば、電圧変換も必要ないですね。3.3VのUSBシリアル変換器も買おう。
STAT はデバイスとの接続が確立すると High になります。今回はLEDをつなぎましたが、マイコンの入力ポートにつなげば、接続状態のチェックができます。
モジュールの設定
USBシリアルポートにターミナルソフトで接続し、JDY-31 の設定をします。
通信設定は、パリティなし、バイトサイズ8、ストップビット1、で、ボーレートはデフォルトでは 9600bps です。他のデバイスと接続する前はATコマンドで操作できます。
以下は設定の確認と変更をする様子です。「AT+」で始まる行はこちらが入力したコマンドで、その他は JDY-31 からの応答です。
+START ←起動時に「+START」と送信される AT+VERSION ←バージョンの確認コマンド +VERSION=JDY-31-V1.2,Bluetooth V3.0 ←バージョン返答 AT+NAME ←ブロードキャスト名確認 +NAME=JDY-31-SPP ←デフォルトでは「JDY-31-SPP」 AT+NAMEGABRY-SPP ←「GABRY-SPP」に変更してみる +OK AT+PIN ←PIN確認 +PIN=1234 ←デフォルトでは「1234」 AT+PIN5678 ←「5678」に変更してみる +OK AT+BAUD ←ボーレート確認 +BAUD=4 ←デフォルトでは4(9600bps) AT+BAUD8 ←8(11520bps)に変更してみる +OK AT+RESET ←再起動 +OK ←ボーレートは再起動後変更される
他にMACアドレスの変更などもできます。コマンドは8個しかないので簡単です。
Android端末から接続
Android端末から接続テストをします。
Bluetoothの設定から、「新しいデバイスとペア設定をする」で JDY-31 とペアリングします。ブロードキャスト名 と PIN はデフォルトでは「JDY-31-SPP」「1234」、もしくは自分で設定した値になります。
Bluetoothターミナルソフトから、接続してみます。Google Playストアで「bluetooth terminal」で検索して、いくつか試してみました。接続テストだけなので、どれでもいいのですが、一部あまりうまく動作しないソフトがありました。私は運悪く、あまりうまく動作しないソフトで最初に実験してしまい、うまく動作しない原因究明に苦労してしまいました。
「Bluetooth Terminal / Qwerty」 問題なく動作しました。
「Serial Bluetooth Terminal / Kai Morich」 あまりうまく動作しませんでした。普通に接続できることもありますが、調子が悪くなると、ペアリング直後でないと接続できなくなったりしました。
「Bluetooth Terminal / Juan Sebastian Ochoa Zambrano」 古いバージョンのAndroid用のソフトである旨の警告が出ましたが、動作は問題ありませんでした。
「Bluetooth Terminal HC-05 / mightyIT」 問題なく動作しました。
どのソフトもだいたい使い方は同じです。デバイスを選んで接続します。接続が確立すると、STAT に接続した LED が点灯します。この状態で、PC側のターミナルかAndroido側のターミナルから文字を送信すると、相手側のターミナルに送った文字が表示されます。
WindowsPCから接続
Windows10のPCからも接続してみます。
「設定」→「デバイス」→「Bluetoothまたはその他のデバイスを追加する」→「Bluetooth」で JDY-31 を選び、PINを入力してペアリングします。
デバイスマネージャーの「ポート(COMとLPT)」の中に「Bluetoothリンク経由の標準シリアル」というデバイスがあります。(ドライバなど環境によっては名前は異なるかもしれません。) そのCOMポート番号を確認します。私の環境では、COM6 と COM7 があり、COM7 の方で接続できました。デバイスドライバーのプロパティ・ポートの設定・詳細設定でポート番号を変更することもできます。
ターミナルソフトで Bluetooth の COMポートに接続します。仮想的なポートなので、ボーレート等の通信設定は JDY-31 の設定と異なっていても接続できます。接続が確立すると、STAT に接続した LED が点灯します。
USBシリアルポートに接続したターミナルソフトと、Bluetooth仮想シリアルポートの接続したターミナルソフトで、お互いに文字の送受信ができることが確認できました。
まとめ
JDY-31 は、Android端末・WindowsPCから、問題なく接続できることが確認できました。iPhoneや macOS・Linux等でのテストはしていませんすいません。
今回は接続の確認しかしていませんが、いろいろな用途に使えそうです。以前の記事「サーマルプリンター(HS-QR71/DP-EH600/CSN-A2)を使ってみる」では、「サーマルプリンターをBluetoothでスマホにつなぎたい」と書きましたが、JDY-31 を使えばハードウェアは簡単に作れそうな気がします。
ただ、技適認証受けてないので、その点で使いたくないのはあります。なので、技適認証済で、安くて使いやすいモジュールを次は探してみる予定です。
更新履歴
2020.04.24 公開
コメント