Arduino

Arduinoを用いてHC-06でAndroidとBluetooth通信をする

2018年10月26日

こんばんは!
今回はBluetooth通信モジュールを使っていこうと思います。

使用するもの

・Arduinoメインボード(https://amzn.to/2vkPIUH)
・USBケーブル(https://amzn.to/2UHhntl)
・ブレッドボード(https://amzn.to/38eNi8u)
・ジャンパワイヤ (https://amzn.to/39uBU8T)
・LED(https://amzn.to/2TvEPGc)
・Bluetooth通信モジュールhc-06(https://amzn.to/3cp7yGD)

Bluetooth通信について

Bluetooth通信とは近距離通信規格の1つでスマートフォンやパソコンなどを通信し、データや音声などのやり取りをすることができます。
身近なものではワイヤレスイヤホンやApple Watchなどに使用されています。
通信範囲は約10m以内で赤外線通信などとは異なり、障害物があっても通信することができます。
そして国際標準規格なのでBluetooth対応機器であれば世界中のどの機器とでも通信することができます。

Wi-Fiとの違い

Wi-FiとBluetoothを比べた時にWi-Fiの方が通信速度が速く、長距離を通信できるのでWi-Fiの方が一見優れているように感じますが、それぞれ用途が異なります。
Wi-Fiは複数台の機器でネットワークを構築するのに向いているのに対し、Bluetoothは近距離での1対1の通信に向いています。通信速度や通信距離ではWi-Fiには劣りますが消費電力が少ないため、長時間利用することができます。

HC-06について

HC-06はBluetooth通信モジュールです。
初めに、このモジュールは国内での技適が取得できていないので公共の場で使用するには技適を取得しなければならないので注意が必要です。
今回は他の電波を邪魔しないような環境で動作確認を行っています。

HC-06は4本のピンがあり、上からRX、TX、GND、5Vとなっています。
RXは送信用のピン、TXは受信用のピン、GNDはグラウンド、5Vは電源用です。

 

手順

まずハード側からやっていきます。図のようにHC-06のRX、TX、GND、5VピンをそれぞれArduinoのD1、D0、GND、5Vピンに接続します。
ArduinoのD0ピンはRX、D1はTXピンとして使用することができるのでこのような配線にしています。

ハード側はこれで終了です。
次にプログラムを書いていきます。

Arduino IDEを開いて次のコードを書き込んでいきます。

コードの説明をします。
LEDの点灯のやり方については以前説明したため省略します。

Arduinoを用いてLEDを光らせてみる

まず、Serial.begin(9600)でシリアル通信を開始します。9600というのは転送速度です。
次にSerial.available()は何バイトのデータが読み取れるかを返すものです。
データがない場合は 0でありデータを受信すると値は 0 より大きくなるので
Serial.available() > 0とし、データを受け取ったときに動作するようにしています。
さらにSerial.read()でデータを読み込みます。if文で1を受け取るとLEDを光らせ、Serial.println("ON")により「ON」という文字列を返し、0を受け取るとLEDを消し「OFF」という文字列を返します。

これでメインボードに書き込みをするとHC-06が点滅すると思います。

動作確認のため、Android の Bluetooth Terminalというアプリを使ってArduinoとスマホ間でBluetooth通信をしていきます。
まず、Androidで「設定」から「Bluetooth」を選択し、BluetoothをONにしてください。
次に使用可能なデバイスの中にHC-06が見つかると思うので
Bluetooth Terminalを起動して、右上のメニューから「Connect a deivce - Secure」を選択します。
HC-06が出てくると思うので選択するとAndroidと接続することができます。
先ほどまで点滅していたHC-06が点灯したら接続に成功したので、あとはアプリ側で「1」を入力してみると、LEDが点いて、「ON」という文字列がAndroidに返ってくると思います。また「0」を入力するとLEDが消え、「OFF」という文字列が返ってくると思います。
「0」や「1」以外を入力しても何も変化していないことも確認できると思います。
アプリを停止すると接続も切れ、再びHC-06は点滅を始めます。

まとめ

今回はHC-06というBluetooth通信モジュールを用いてAndroidとのBluetooth通信を行いました。
無線通信ができるようになると電子工作でできることが大幅に多くなると思います。
最初に説明しましたが、HC-06 は技適がないので注意が必要です。
今回はこれで終わります。

ではまた!

-Arduino

Copyright© 物を作る者 , 2024 All Rights Reserved.