すったもんだの挙句、ようやく本題だった、Bluetoothによる Androidアプリからの Arduino をコントロールをやってみたいと思います。

Arduino側の回路は前回から変わっていません。





スケッチは文字列を受信できるように変更してみました。





Androidのプログラムをする前に、AndroidManifest.xml にBLUETOOTHへのアクセス許可の設定をしておきます。





プログラムは、MainActivityクラス、BtConnectionStatusインターフェースと、BluetoothServiceクラスの3つで構成されています。長くなるので詳しい解説は省きます。内容に興味ある方は、ソースコードを読んで理解してください。


MainActivityクラスです。





Bluetoothの処理の実体は、BluetoothServiceに集約しました。BluetoothServiceのAPIは setup() と write() だけです。BluetoothService の処理の経過を通知するため、BtConnectionStatusインターフェースを継承しています。onBtXXX がそれになります。


BtConnectionStatusインターフェースです。




BluetoothServiceクラスです。




コネクションの処理とテキストの送信処理は時間がかかることがあるため画面の描画処理をブロックしないようスレッドにしています。BtConnectionStatusインターフェースを使って MainActivityクラスへ状況を通知しています。


Bluetoothは接続のステータスを管理する必要があるため、プログラムがどうしても長くなってしまいます。それでは、実際に動くか試してみましょう。





きちんと動いたみたいです。

苦労しただけに感激も一塩かなと思ったのですが、やり込みすぎてあまり感動はないですね。どちらかというとBluetoothの経験値があがったことのほうが嬉しい感じです。無線は難しい・・・。
b( ̄ー ̄;)


関連記事
Android で Bluetooth ようやく解決?
http://makers-with-myson.blog.so-net.ne.jp/2014-05-30

Android の Bluetooth にドハマリ中 (;´ Д `)
http://makers-with-myson.blog.so-net.ne.jp/2014-05-28

Windows 8 で Bluetoothモジュールの動作確認をしてみた 
http://makers-with-myson.blog.so-net.ne.jp/2014-05-25

Android の Bluetooth SPP(Serial Port Profile)に苦闘中!
http://makers-with-myson.blog.so-net.ne.jp/2014-05-24

Arudino に接続するBluetoothモジュールが中国からやってきた
http://makers-with-myson.blog.so-net.ne.jp/2014-05-23

Android アプリでArduinoのLEDをON/OFFしてみたい(3)
http://makers-with-myson.blog.so-net.ne.jp/2014-05-04

Android アプリでArduinoのLEDをON/OFFしてみたい(2)
http://makers-with-myson.blog.so-net.ne.jp/2014-05-03

Android アプリでArduinoのLEDをON/OFFしてみたい(1)
http://makers-with-myson.blog.so-net.ne.jp/2014-05-01






Arduino Nano 3.1 (ATmega328P搭載)

  • 出版社/メーカー: スイッチサイエンス
  • メディア: エレクトロニクス






Arduino + Bluetooth Androidプログラミング―サブボード「シールド」で機能強化! (I・O BOOKS)

  • 作者: 丸石 康
  • 出版社/メーカー: 工学社
  • 発売日: 2012/09
  • メディア: 単行本