初めてのBLE (20) Feather nRF52840 Sense②BLE その1
このボードは、型名のとおりノルディックのnRF52840を内蔵したBLEモジュールが使われています。GitHubに対応するBLEのライブラリが置いてあります。
https://github.com/adafruit/Adafruit_nRF52_Arduino
ソースとサンプルはこのディレクトリにあります。
https://github.com/adafruit/Adafruit_nRF52_Arduino/tree/master/libraries/Bluefruit52Lib
●ペリフェラルのサンプル・スケッチ
前回、センサからデータを読み出すサンプル・プログラムを実行しました。これらの値をBLEで送り出すペリフェラルのサンプルがbluefruit_playground.inoです。
前回と同様、インクルード文のライブラリで足りないのを「ライブラリを管理」からインストールします。筆者は、Adafruit_AHRSが足りなかっただけでした。
コンパイルしてマイコンへ書き込みます。シリアルモニタには何も表示されません。
オン・セミコンダクターのBLEモジュールRSL10-USB001GEVK: RSL10 USB DongleとソフトのRSL10 Bluetooth Low Enaergy Exploerを使って情報を見ます。セントラルの立場です。BLE間は約30cmです。local name は「sense」と付けられています。コネクトします。
シリアルモニタには「Connected to」と表示されました。コネクトするまでは信号レベルは-27と強力でした。コネクトした後は-70ぐらいを推移しています。
Discover Servicesをクリックしました。各種サービスが送られてきます。
最初の画面は、BLEの一般的な情報です。
続きです。これ以降は、Adafruitのセンサの情報です。サービスとキャラクタリスティックのUUIDは、ADAFxxxx-C332-42A8-93BD-25E905756CB8が使われています。xxxxの部分が異なりますが、ほかの数字は共通です。
xxxx部分です。
- STマイクロ 6軸IMU(慣性計測装置)- LSM6DS33:Accel(加速度)0200 /Gyro(ジャイロ・センサ)0400 ->Quater 0D00
- 3軸の磁気センサLIS3MDL:magnetometer 0500
- APDS9960:Proximity(近接)0E00、Light 0300、Color 0A00、ジェスチャ・センサ 0F00
- PDM:sound 0B00、Tone 0C00
- SHT30:湿度 0700
- BMP280:温度 0100、気圧 0800
- button 0600
- Pixel 0900
とてもたくさんのデータが届くので、次回、温湿度センサSHT30、温度、気圧センサBMP280の二つだけ動かして、実験します。
(※) センサのデータを表示するのはNofiticatonにチェックを入れます。何度か動かしても、それらしいデータは送られてきませんでした。翌日、次回のプログラムを動かしても、それらしいデータが送られてきませんでした。
バッテリーサービスは、100という適当な値を送っています。この値を変化させると、正しく受け取れたので、このプログラム自体は動いていることが確認できました。
しかし、コンパイルと書き込みを繰り返していると、今回のプログラムも、次回のプログラムもセンサの値を表示し始めました。最初に動かなかった原因は不明です。