watchX : Bluetooth 通信

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();

これで!

こうだ!

やったー!