BLE nano(nRF51822)におけるdevice to device通信

BLE nano(nRF51822)の使い方を学んでいます。

インターネットにて、BLEnanoとスマートフォンの接続は目にするのですが、BLEnanoとBLEnano間のデバイス間の通信があまり記載されていないため残しておきます。

はじめに、BLEにはCentralPeripheral があります。

Central:デバイスを見つける側
Peripheral デバイスを見つけられる側  という意味があります。

BLEnanoには(Arduino済み)、両方のサンプルファイルがあるのでそれを見ながら進んでいきます。

スポンサーリンク




スポンサーリンク

Peripheralについて

サンプルプログラムである、BLE_SimplePeripheral.inoを開きます。

void setAdvertisement(void) の関数がすごく重要です。

SHORTENED_LOCAL_NAMEに名前を与えてあげます。

以前にBluetooth通信を行いましたが、そのときは、BDアドレスで接続をしていました。(BLEもBDアドレスで接続するのかと思いかなり苦労しました・・・)

クラアンととサーバという立場で見ればすこしおかしいような気がする??

Centralについて

サンプルプログラムである、BLE_CentralTest.inoを開きます。

static void scanCallBack(const Gap::AdvertisementCallbackParams_t *params)の関数がすごく重要です。

if( memcmp(“TXRX”, adv_name, 4) == 0x00 )  の条件判定式にて接続するデバイスを選択しています。

memcmpについては、ここ参照してください。

比較した文字列があっていれば、0を返し、Trueとなります。

特定のデータの送信はまた後日まとめます。

参考文献