最近(2017年10月29日)ESP32をArduino上でBLE通信をできるようになったという記事をみました
まじかよ!と色々と調べたところできたので記事に残しておきます
先にESP32をArduino上でできるようにしなければなりません
下記のURLを参考にしてArduino上で開発できるようにしてください
すでに開発環境あるよ!という人も最新バージョンにすべきだと思います(GitHbubみるとものすっごい更新が早い)
つぎにこれだけではBLEのサンプルファイルが入っていません
ので、下記のGitHubからサンプルファイルをダウンロードしてきます
※これをしなくてもBLE通信できますがサンプルファイルがあると読みやすくなると思います
そして解凍したファイルをすべて以下のディレクトリへいれます
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の通知を受け取ってみました
ということでesp32とandroidのBLE通信できますた pic.twitter.com/3OHR6GAFGF
— みやかわ (@momijinn_aka) 2017年10月28日
参考
- Qiita Arduino IDEでESP32 BLEライブラリを導入 http://qiita.com/tomorrow56/items/afa06e206eec9fafcc7a
コメント