Android + Bluetooth + Arduino

公開日: 電子工作 | , ,

 以前書いた『気になる物』で紹介したBluetoothモジュールですが、本当に気になって実は少し前に発注してました。 もちろん、すぐに届いて手元に到着していたのですが、回路を作るのが面倒でしばらく放置していました・・・
そして、最近Arduinoなるものの存在を知り、極簡単な接続で実現出来ることに気づいたので、やっとのことで重い腰を持ち上げました。
そして、DoCoMoのアンドロイド携帯(HT-03A)で通信出来ることが確認出来たので、ご報告♪

BT-MOD100R 通電してLEDが点灯した所

 

購入したBluetoothモジュールはBT-MOD100Rと言う物で、こちらで購入しました。同時にアダプタボードも購入し、送料込みで合計9800円。 技適を受けてる物だけあって、結構な出費です・・・TーT
しかし、プリントされている技適の番号(006NYC0046)から調べると、このモジュールは元々雑誌の付録だったそうで、なんだか複雑な心境・・・発売当時に知っていれば間違いなく2~3冊は買っていたはず^^

Bluetoothモジュール BT-MOD100R

 

そしてArduino。
最も標準的と言われてる Arduino Duemilanove 328 利用。 大抵の販売店で3200円で売られています。・・・BTモジュールの3分の1です><
ArduinoをPCと接続するには、USB-B端子のケーブルが必要ですが、プリンター付属のケーブルが余りまくってるので、それを流用することに・・・

Arduino Duemilanove 328

 

ArduinoとBTモジュールの接続は、以下を相互に接続します。

Arduino BTモジュールアダプタ
Digital 3Pin 3 Tx
Digital 4Pin 4 Rx
POWER 5V 1 Vcc
GND 2 GND
Arduino Duemilanove

BTモジュールアダプタ

 

接続写真
実際に接続した写真
(ブレッドボードは、通電確認用のLEDを光らせる為に使用しただけ。BTモジュールは上に置いてるだけで、ブレッドボードには刺さっていません。)

そして、シリアル通信のテストに利用したArduinoのソースです。
NewSoftSerial(Arduinoライブラリ)を利用しています。

 #include <NewSoftSerial.h>

unsigned int count=0;
NewSoftSerial mySerial(4,3);

void setup()
{
  pinMode(13, OUTPUT);

  // PC側
  Serial.begin(9600);
  Serial.flush();

  // Bluetooth側
  mySerial.begin(9600);
  mySerial.flush();
}

void loop()
{
  // PC側からのデータ受け取り処理
  if (Serial.available() > 0)
  {
    int inByte = Serial.read();
    mySerial.print((byte)inByte);
  }
  // BT側からのデータ受け取り処理
  if (mySerial.available() > 0)
  {
    int inByte = mySerial.read();
    Serial.print((byte)inByte);
  }

  // 動作確認用
  count++;
  digitalWrite(13, (count&0x1000)?HIGH:LOW);
}

動作は、PC(USB-COMM)からデータを受信するとBluetooth(RFCOMM)へ送信し、逆にBluetoothからデータを受信するとPCへ送信するだけの簡単な物です。
ちなみに、動作確認の為にPin13のL LEDが点滅します。

Acknowrich
PCとArduinoでの動作の確認はAcknowrichと言うソフトで確認しました。
上のCOM40がBluetooth 下のCOM5がArduino
COM40からデータを送ればCOM5に表示され、COM5からデータを送るとCOM40に表示されて、動作は完璧!

次に、HT-03AとArduinoでの動作確認は、Android + Arduino BT (なんとなく実験 with SIProp開発記)で公開されている物を利用させて頂きました。

BT_Arduino

acknowrich

Sendボタンを押して、PC上で"send"が受信出来ることを確認。
 

と、以上で今回の実験は終了です。
Android + Bluetooth + Arduino でシリアル通信が可能であることが確認出来たので、アンドロイド端末でコントロールできる自作回路が色々と作れそうです。

<追記>
この記事で紹介したモジュール以外にも、AndroidとArduinoの接続で使えそうなBluetoothモジュールを調べてみました。

 

関連記事

no image

AndroidにPS2キーボードを繋いでみた

@yishiiさんの素のAndroid端末を外部のキーにより操作する実験と言う記事を参考に、Ardu

記事を読む

no image

米粒AVRでアナログ入力を試してみた

米粒AVR(ATtiny10)に搭載されている8ビット4チャンネルのアナログ入力を試してみました

記事を読む

no image

米粒AVRの動作周波数

  米粒AVR(ATtiny10)のデフォルトでは内臓発振器利用の1MHzが指定されてい

記事を読む

raspi-colortest

Raspbianの起動

Raspbianの起動画面をキャプチャしてみた。 SDカードにイメージを書き込んだままのデフォ

記事を読む

秋月電子 リアルタイムクロック(RTC)モジュール

秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを買ったので、ちょっと試してみま

記事を読む

ssh_connected

Raspberry PiをWindowsで操作する(SSH)

SSHを使って、Raspberry Piを外部PC(Windows)で操作する。

記事を読む

no image

AndroidでSoftModemを試してみた

今回、ここで言うSoftModemとは、携帯電話のオーディオ端子(イヤホン・マイク端子)を利用し

記事を読む

sdcards

Raspberry Pi SDカードのクラスと起動速度

SDカードにOSをインストールするので、起動にはそれなりに時間がかかります。 では、どれくらい

記事を読む

no image

AVRISPmk2

米粒AVR(ATtiny10)のプログラム書き込み用にAVRISPmk2を購入しました。 先人

記事を読む

no image

AndroidとArduinoの接続で使えそうなBluetoothモジュール

1ヶ月ほど前に書いた、Android + Bluetooth + Arduino が割と人気があるよ

記事を読む

Comment (3件)

  1. snowlets

    私もarduinoのシリアル接続にbluetoothを使いたいと探していたところ、こちらのページを見つけました。同じモジュールを購入して、通信はできたのですが、通信速度の変更(115200bpsへ)がうまくいきません。マニュアルではバイナリでコマンドを送信するよう書かれているので、arduinoのsetup()でserial.print(0×02, BYTE);…のようにコマンドのバイナリデータを送信するようにしたのですが、どうも反映されていないようです。もし通信速度を変更された経験があれば、コマンドの送信方法を教えていただけないでしょうか?よろしくお願いします。

  2. 町田 健治

    貴重な情報をありがとうございます。
    このBluetooth KITを用いて、キーボードは作れますでしょうか?

    1. Futaba

      コメントありがとうございます。
      この記事の部品を使って作るとなると、HIDプロファイルのキーボードを作るのは無理だと思います。
      頑張れば、SPPプロファイルのキーボードなら作れるんじゃないかと思います。

Arduinoで温湿度データロガー
Arduinoで温湿度計 #2

今回は、前回作った温湿度計にRTCモジュールとSDカードアダプタを

Arduinoで温湿度計
Arduinoで温湿度計

秋月電子の温湿度モジュールを使って、温湿度計を作ってみました。 以前

SDカード・マイクロSDカード
ArduinoでSDカード

電子工作で大量のデータを保存する方法を調べていると、 Arduin

秋月電子 リアルタイムクロック(RTC)モジュール
秋月のリアルタイムクロック(RTC)モジュール

今回は秋月電子のI2C接続のリアルタイムクロック(RTC)モジュールを

秋月電子 キャラクタLCD
秋月の小型キャラクタLCD

今回秋月電子で売られている小型のキャラクター液晶2種を買ったので、

PAGE TOP ↑