見出し画像

Arduino で Bluetooth (BLE) 使ってみよう (第二回)

今回は簡単に言うと、Bluetoothの信号をスマートフォンで受信する手順を紹介したいと思います。

手順:
1、環境設定(第一回で書きました)
2、Arduino サンプルコード実装、アプリ上で動作確認(この記事)

1、サンプルコードをデバイスに実行する

Arduino 自体も、ESP 32のIDEもはいっぱいサンプルコードが付いています。
今回はESP32のBLE_serverを使います。
File > Examples の中で選びます。

画像1

サンプルコード開いたら、まず右矢印ボタンを押して、デバイスにアップロードしてみましょう。

画像2

アップロードできたら、このようなメッセージがあります。

画像3

ボタン(画像の1)を押して、Serial Monitor を開いて、ボーレート(画像の2と3)を合わせます。

画像4

"Starting BLE work!" が出たらBLEデバイスが動いでいます。

それでは、コードを説明します。

void setup() {
 // 1
 Serial.begin(115200);
 Serial.println("Starting BLE work!");

 // 2
 BLEDevice::init("Long name works now");

 // 3 
 BLEServer *pServer = BLEDevice::createServer();

 // 4
 BLEService *pService = pServer->createService(SERVICE_UUID);

 // 5
 BLECharacteristic *pCharacteristic = pService->createCharacteristic(
                                        CHARACTERISTIC_UUID,
                                        BLECharacteristic::PROPERTY_READ |
                                        BLECharacteristic::PROPERTY_WRITE
                                      );

 // 6
 pCharacteristic->setValue("Hello World says Neil");

 // 7
 pService->start();
 
 // 8
 // BLEAdvertising *pAdvertising = pServer->getAdvertising();  // this still is working for backward compatibility
 BLEAdvertising *pAdvertising = BLEDevice::getAdvertising();

 // 9
 pAdvertising->addServiceUUID(SERVICE_UUID);
 pAdvertising->setScanResponse(true);
 pAdvertising->setMinPreferred(0x06);  // functions that help with iPhone connections issue
 pAdvertising->setMinPreferred(0x12);

 // 10
 BLEDevice::startAdvertising();
 Serial.println("Characteristic defined! Now you can read it in your phone!");
}

BLE ペリフェラルに関する説明はこちらの記事にあります。
1、ボーレートの値(Serial通信のスピード)
2、BLE デバイス表示名(後でスマートフォン上確認できます)
3、ペリフェラルサーバーを作る
4、サービスをペリフェラルに追加する
5、キャラクタリスティングをサービスに追加する
6、キャラクタリスティングの値を設定する(後でスマートフォン上確認できます)
7、サービスをスタートする
8、アドバタイスを作る
9、アドバタイスにUUIDを追加する(スマートフォンにペアリングする時使う)
10、アドバタイス開始

2、 スマートフォン上の確認

nRF Connect (App Store / Google Play)からダウンロードして、立ち上げます。

画像5

デバイスリストで "Long name works now" があります。

画像6

周りのデバイスが多い場合はフィルタした方がいいかもしれません。

画像7

Connect押して、デバイスとコネクトします。

画像8

サービス、キャラクタリスティングを確認しましょう。

画像9

キャラクタリスティングの値も確認しましょう。
下矢印のボタンを押すと、値が出ます。

画像10

以上で、BLEデバイスをスマートフォンまでの受信ができました。
結構とっつきにくい思いがちな、Bluetooth通信も思いの外、簡単にできると思いますが、いかがでしたでしょうか?

(Lee)



いいなと思ったら応援しよう!