Procedure

ESP32をBLE通信のPeripheralとして使う

Procedure
この記事は約3分で読めます。
スポンサーリンク

最近(2017年10月29日)ESP32をArduino上でBLE通信をできるようになったという記事をみました

まじかよ!と色々と調べたところできたので記事に残しておきます

先にESP32をArduino上でできるようにしなければなりません

下記のURLを参考にしてArduino上で開発できるようにしてください

すでに開発環境あるよ!という人も最新バージョンにすべきだと思います(GitHbubみるとものすっごい更新が早い)

ESP32で遊んでみる
先日東京に行きました 秋葉原を徘徊しているとESP32開発ボードが販売されていたので早速購入をしました 備忘録ついでに使い方をメモします

 

つぎにこれだけではBLEのサンプルファイルが入っていません

ので、下記のGitHubからサンプルファイルをダウンロードしてきます

※これをしなくてもBLE通信できますがサンプルファイルがあると読みやすくなると思います

GitHub - nkolban/ESP32_BLE_Arduino at 98cd2290d036a4e27db061a76a512b526ef1cc14
The library source for the ESP32 BLE support for Arduino. - GitHub - nkolban/ESP32_BLE_Arduino at 98cd2290d036a4e27db061a76a512b526ef1cc14

そして解凍したファイルをすべて以下のディレクトリへいれます

Documents\Arduino\hardware\espressif\esp32\libraries\BLE

これで準備完了です

 

スポンサーリンク

プログラム

ESP32をBLEのPeripheral化するプログラムを下記においておきます

Timerを使ってNotifyの更新を行っています

また1秒毎に5個のデータを送信しています

 

//デバイス名の設定

BLEDevice::init();

//Serverの設定

BLEServer *pServer = BLEDevice::createServer();

//サービスの定義(Characteristic)

pCharacteristic = pService->createCharacteristic();

pCharacteristic->addDescriptor(new BLE2902());

//サーバーのスタート

pService->start();

//アドバタイジングのスタート

pServer->getAdvertising()->start();

 

動作

AndroidをCentralとしてESP32の通知を受け取ってみました

 

参考

コメント

タイトルとURLをコピーしました