概要
HC-06 は Bluetooth Classic 用の通信モジュールです
まず初めにこのモジュールは国内での技適が取得できていない通信モジュールになります
今回は動作確認が目的で公共の場で試してはいないので、実際に使いたい場合は個別に技適を取得する必要があるので注意してください
HC-06 は Arduino のシリアルピンを使って動作させることができます
環境
- Mac OS X 10.12.1
- Arduino IDE 1.6.12
- Arduino UNO
配線
配線は以下の通りです
動作確認のため 13pin を使って LED を接続しておきます
HC-06 側は
- Arduino 3.3v -> HC-06 VCC
- Arduino GND -> HC-06 GND
- Arduino TX -> HC-06 RXD
- Arduino RX -> HC-06 TXD
と配線します
LED 側は
- Arduino 13pin -> 抵抗 1kΩ -> LED アノード
- Arduino GND -> LED カソード
と配線します
配線するとすぐに HC-06 の電源が入り、内臓の LED が点滅します
スケッチ
HC-06 とはシリアルで通信を行います
シリアルで信号「1」を受け取ったときは 13pin に接続された LED を点灯させます
「0」を受け取ったときには LED を消灯させます
int rsvData = 0;
int led = 13;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
}
void loop() {
if (Serial.available() > 0) {
rsvData = Serial.read();
if (rsvData == '1') {
digitalWrite(13, HIGH);
Serial.println("LED on");
} else if (rsvData == '0') {
digitalWrite(13, LOW);
Serial.println("LED off");
}
delay(100);
}
}
Arduino を PC に接続したら Arudino IDE で書き込んでください
動作確認
今回は Android の Bluetooth Terminal というアプリを使います
起動したら右上のメニューから「Connect a deivce - Secure」を選択します
すると HC-06 が見つかると思うのでデバイスを選択して Android と接続します
接続に成功すると点滅していた HC-06 の LED が点灯に変わります
あとは、アプリ側で「1」or「0」を入力してみましょう
するとシリアル通信が始まって Arduino 側の 13pin に接続された LED を制御することができます
接続を解除するには Bluetooth Terminal アプリを停止してください
最後に
Arduino で Bluetooth Classic のモジュール HC-06 を使ってみました
冒頭説明しましたが、HC-06 は技適のないモジュールなので注意してください
また、HC-06 は Bluetooth Classic 用の通信モジュールになります
Bluetooth Low Energy を実現するためのモジュールではないので、そこも注意してください
いろいろと違いはありますが、Bluetooth Classic は iOS だと API が提供されていないのでアプリから接続して動作確認できません
なので、今回動作確認は Android を使いました
android側で制御できますが、点灯したときに「ON」消灯したときに「OFF」が返ってきません。なぜ?
返信削除このコメントは投稿者によって削除されました。
返信削除すいません今はデバイスがなく状況を再現できません。AndroidとはBluetooth Classicで接続するのでBLEで接続しようとしていないかなど確認してみてください。
返信削除