Arduinoとkonashiを接続して、konashi経由でBluetooth LEを使用し、iOSアプリ通信することをやってみました。目的はBluetoothLEを使うiOSアプリの開発用に、Arduinoで制御できるBluetoothLEのテスト用デバイスを作ることです。
まずは、Arduinoとkonashiの接続ですが、これにはUARTを使ってシリアル接続するのが簡単なようです。Arduino側のRX, TX, GNDをkonashi側のTX, RX, GNDに接続します。電源はArduino側につないで、konashiはArduino側の電源を使うようにしました。Arduino側には乾電池をつなぎました。
これで、Arduinoとkonashiはシリアル通信で通信できます。
実験用に次のようなコードをArduinoにアップロードしました。
[cc]#include LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int LED = 13; void setup() { lcd.print("Hello"); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { char c = Serial.read(); char p[16]; sprintf(p, "%c", c); lcd.clear(); lcd.print(p); } } [/cc]
行っていることは、シリアル経由で受信した文字をLCDに表示するだけというものです。iOSアプリからはkonashiのSDKを使ってBluetoothLEで文字を送った文字をシリアル(UART)に書き出すようにしました。
動かしてみると、うまく動きました。とりあえず、konashiとArduinoの間でやりとりができるようになったので、Arduino側で任意のデータを作ってkonashi側に送ったり、konashi側から任意のデータをArduinoに渡して、Arduino側でそれに応じた処理を行うなどの目処が立ちました。