01_BLE_client
CherryIoTをBLEデバイスとして表示する
スマートフォンからCherryIoTをBLEデバイスとして確認します。
準備する
CherryIoTをPCに接続する
CherryIoTをPCのUSB-A挿入口に接続します。
nRF Connectを準備する
Google Play ストアまたはApp Storeで「nRF Connect for Mobile」を検索して、スマートフォンにアプリをインストールします。

サンプルコード
GitHubで公開しているサンプルコードです。コードをコピーして Arduino IDEで使用します。
GitHubからコードを読み込んでいます...プログラムを書き込む
上のサンプルコードをコピーし、Arduino IDEに貼りつけます。
ボードとポートの設定を確認し、左上の 「→(書き込みボタン)」を押してCherryIoTに書き込みます。
初めて書き込む方は「はじめてのCherryIoT」で詳しい手順を確認してください。
動作確認
nRF Connectで確認する
1nRF ConnectでCherryIoTを探す
nRF Connectを起動して、「SCAN」をタップします。

2My BLE Deviceを確認する
SCANNERの一覧に「My BLE Device」が表示されます。

nRF Connectアプリに「My BLE Device」が表示されるなら成功です。
動作中、シリアルモニターにはBLEの開始状況と、スマートフォンから読み取り可能になったことが表示されます。
Arduino IDEの画面右上にあるアイコンをクリックすると、 画面下にシリアルモニターが表示されます。

コードの解説
BLEサーバーとサービスを作成し、「My BLE Device」という名前でアドバタイズします。
GitHubからコードを読み込んでいます...Serial.begin(115200);シリアルモニターへ文字や測定値を表示するため、通信速度を115200bpsに設定します。
#include <BLEDevice.h>ESP32のBLE機能を使うためのライブラリを読み込みます。
#define SERVICE_UUIDBLEで公開するサービスを識別するUUIDを設定します。UUIDはサービスやデータ項目をほかと区別するための長い識別番号です。サービスは関連する機能をまとめる箱、キャラクタリスティックはその中で読み書きする個別のデータ項目です。
BLEDevice::init("My BLE Device");CherryIoTを「My BLE Device」という名前のBLE機器として初期化します。
pServer = BLEDevice::createServer();スマートフォンから接続されるBLEサーバーを作ります。
pService = pServer->createService(SERVICE_UUID);設定したUUIDを使ってBLEサービスを作ります。
pCharacteristic = pService->createCharacteristic(サービスの中に、読み取り・書き込み・通知・指示ができるキャラクタリスティックを作ります。READはスマートフォンが値を取得する操作、WRITEはスマートフォンから値を送る操作、NOTIFYはCherryIoT側から値の変化を自動送信する仕組み、INDICATEはスマートフォン側の受信確認を伴って値を送信する仕組みです。
pCharacteristic->addDescriptor(new BLE2902());スマートフォンが通知を有効にできるよう、BLE2902ディスクリプターを追加します。
pService->start();作成したBLEサービスを開始します。
pAdvertising->addServiceUUID(SERVICE_UUID);アドバタイズ情報へサービスUUIDを追加します。
BLEDevice::startAdvertising();周囲のスマートフォンから見つけられるよう、アドバタイズを開始します。