MasaのITC Life

夢は起業家!全てにおいて凡人だけど頑張ることだけはいっちょ前!

電子工作

WindowsとArduinoとBluetoothモジュール(HC-05/HC-06)の接続方法

投稿日:2020年2月28日 更新日:



今回はWindowsとArduinoを

Bluetoothモジュールを通して

通信させる方法をご紹介します。



以外とすぐに出来るので、

是非試してみて下さい!





今回は使用するBluetoothモジュールは

HC-05というものを用意しました。



このHC-05はBluetooth Classicのver2.0で、

セキュリティ耐性が貧弱なので、

趣味の電子工作向けのものです。



それゆえに値段も格安の部類で、

アマゾンで¥1,000円もしなかったです。

https://www.amazon.co.jp/dp/B01G9KSAF6/ref=cm_sw_em_r_mt_dp_U_qUqwEbVFESDWB




似たものにHC-06というものもあります。

HC-06はスレーブのみ対応、

HC-05はマスター/スレーブ両方対応

という違いのみです。



未確認ですが今回の内容は、

HC-06でも代用可能です。




WindowsからBluetoothを介して、

Arduinoに接続された赤色LEDの

ON/OFF を遠隔操作しました。



パソコン側のBluletoothにON / OFFの情報を

Arduino側のBluetoothモジュールに送ります。

そして、その情報に応じてArudinoは

自身につながっているLEDを制御しています。




それでは作成していきましょう!


Arduinoにコードを書き込む


今回はデジタルピンの 10 と 11 を

シリアル通信用のピンとして使います。

LEDはデジタル6番ピンに接続しました。


シリアル通信用ピンをBluetoothと

名付けていますが、長いですね。

あくまで分かりやすくするためです。

bt と略して書いても良いでしょう。



Serial.begin()は不要ですが、

デバッグ用などとしてシリアルモニタに

値を出力した場合は、入れてください。



Bluetooth.available()は、

Bluetoothモジュールが接続済みかどうか

を判定します。したがってモジュールと

windowsがつながっていたらif文は進みます。



パソコン側(windows)からデータを送るので、

ArduinoはBluetoothモジュールと

通信するためのシリアルピン(10番ピン)から、

データを受け取ります。(Bluetooth.read)



パソコン側(windows)から

0が送られてきたらLEDをOFFにし、

1が送られてきたらLEDをONにします。




コードが書けたら次は、Arduinoと

Bluetoothモジュールを配線しましょう。


ArduinoとBluetoothモジュール(HC-05)の配線法



HC-05の端子は次のようになっています。

ちなみに実際に配線をするのは、

STATEとENを除いた4ピンのみです。

STATE:相手と接続されているかどうか
RXD:受信用ピン
TXD:送信用ピン
GND:グランド
Vcc:電源ピン
EN:モード


STATEは、相手のBluetoothモジュールと

接続されているかの状態をしめします。

されている→オンボードLEDがON

されていない→オンボードLEDがOFF



ENは、モードを設定します。

普通はデフォルトのモードを使います。

デフォルトのモードはENピンがLowの状態で、

ペアリングモードと呼ばれています。



それとは別にENピンをHighにすることで

ATコマンドモードに入れます。

ATコマンドは、モジュールの設定を

確認・変更するためのデータを送る際に使用します。




Arduino、Bluetoothモジュール

そしてLEDを次のように接続します。


HC-05 Arduino
Vcc 5V
GND GND
TXD デジタル10番ピン
RXD デジタル11番ピン。1kΩと2.2kΩを挟む


LEDはカソード極をデジタル6番ピンに、

アノード極を100Ωを介してGNDにつなげます。

抵抗値は多少違っても大丈夫です。




配線が完了したら、

BluetoothモジュールとPC(Windows)を

ペアリング(お互い登録させること)します。




設定 > デバイス > Bluetoothまたはその他のデバイスを追加する



そしたら次の画面になります。


一番上にあるBluetoothをクリックします。



初めてペアリングする場合は、おそらく

「不明なデバイス」として検知されます。

不明なデバイスとして検知されても、

それをクリックしてPINを打ちます。



1 2 3 4 もしくは 0 0 0 0 の

どちらかです。私は1234でした。




ここまで出来たらあと少しです!

あとはPC側からデータを送るための

コンソールを用意します。

Bluetoothインタフェースに情報を

好き勝手送るために必要なものです。



デフォルトではWindowsに

搭載されていないのでインストールします。


Bluetooth Serial Terminal
https://www.microsoft.com/en-us/p/bluetooth-serial-terminal/9wzdncrdfst8?activetab=pivot:regionofsystemrequirementstab



動作環境が、Windows8.1となっていますが、

Windows10でも普通に動きました。




これをインストールまで出来たら準備完了です。

それでは実際にやってみましょう!


WindowsからArduinoにつながったLEDを制御する


まずはBluetooth Serial Terminalを

起動させて、Bluetoothモジュールと

Windowsを接続させます。


Bluetoothモジュールを選んで、

connectを押します。

するとすぐに接続します。



Bluetoothモジュール(ex. HC-05)が

他のデバイスとつながると、

そのモジュールに搭載している

LEDの点滅周期が変わります。



最後にTransmit FormatをHEXに変えて

0もしくは1を入力して送信するだけです。



ちなみに送信されるデータは

フォーマットよってバイナリが異なります。



フォーマットがStringであれば、

テキストデータを意味するので、

1と送信しても、それはAsciiコードに

置き換えられて、0x31が送信されます。



フォーマットがHEXであれば、

バイナリデータを意味するので、

1は0x01のままです。




実際に動かしたのが、

冒頭にある動画になっております。





次回:記事

HC-05のATコマンドモードを利用して、

ArduinoとM5StackをBluetooth接続させる!






以上です。

最後まで読んでいただきありがとうございました。





補足:

HC-05 / HC-06ともに技適が取れていないので、

電波暗室等などで実験を行う必要があります。

私は研究室の電波暗室で行いました。




-電子工作

Copyright© MasaのITC Life , 2023 All Rights Reserved Powered by STINGER.