Arduino に限らず、これまでBluetoothまわりのプログラムってやったことが無かったので、この機会にちょっと見てみます!
watchX – Arduino Examples に入っている「\BLE\Adafruit_bleuart_cmdmode」がBluetooth通信のプログラム例ですね。「Adafruit Bluefruit LE」というのを使っています。
「Bluefruit?Bluetoothと違う?」と、混乱してしまったのですが、「Bluetooth LEを搭載したAdafruit製のボード」のことみたいです。
Bluetooth モジュールとしては「nRF51822」というものですね。説明書にピン配置も載ってました。
サンプルプログラムの Adafruit_bleuart_cmdmode を動かしてみます。
watchX に転送して実行したら、watchXの画面上は何も表示されませんが、シリアルコンソールに初期メッセージが表示されます。
これでBluetooth 接続ができるようになってますので、Androidからペアリングします。
接続名称は「Adafruit Bluefuit LE」で、パスワードナシで接続されました。
Android側には、BluetoothでUART通信できるアプリが必要です。
Serial Bluetooth Terminal アプリを使いました。
Devices の BLUETOOTH LTEタブで「Adafruit Bluefruit LTE」を選択。
Terminalで、メニューのコネクタアイコンを押して接続。接続成功したら「Connected」が表示されます。
適当にテストメッセージを送信。
シリアルコンソールに出たー!
文字の取得ができるならば、入力した文字列を watchX の画面に出したいですよね!
コンソール出力している処理の部分
Serial.print(F("[Recv] ")); Serial.println(ble.buffer);
ここの下に、画面への出力も追加してみます。
Serial.print(F("[Recv] ")); Serial.println(ble.buffer); clearAll(); drawString(0, 0, ble.buffer,smallFont); ssd1306_drawBuffer(0, 0, 128,64, mbuf);
ヘッダ追加と初期化処理も忘れずね!
#include <english.h> #include <oled.h> #include <resources.h> #include <SPI.h>
SPI.begin(); ssd1306_configure();
これで!
こうだ!
やったー!