ProjectionBall等の開発をする傍ら、
既製のIoTデバイス等もいろいろ使ってみたりしています。
今回はBroadcomから発売されているWiced SenseというBluetooth LEを使った
センシングデバイスについてちょっとご紹介します。
以前にご紹介したKoshianと同じ系列のマイコンが入っており、
Wiced Smart IDEで同じように開発できます。
大きさは手のひらの半分くらいの小さいサイズに
ジャイロや加速度、電子コンパス、温度、湿度、大気圧のセンサが入っています。
スイッチサイエンスでも購入できます(技適もOK)。
Bluezを入れたLinuxのgatttoolから
char-write-req 0x2b 0x100でデータ通知開始
char-write-req 0x2b 0x000でデータ通知停止
char-read-hnd 63でバッテリ量%という感じです。
デフォルトでは加速度系の情報が10回に1回、温度系のデータが送られます。
Broadcomのコミュニティー外のため、
詳細を載せるのは避けますが・・・
温度系のデータだけで他は必要ないため、
wiced_sense_polls_since_last_hptの条件式を書き換えて
温度系のみを送信するように変更してみました。
bleprofile_SendConnParamUpdateReqを書き換えることで
データ通知の間隔が変更可能なようです。
色々ほかにも書き換えて遊んでいたら、
調子が悪くなり、まったく接続できなくなってしまいました。
ファームのリカバリ等試しても効果なく、
いろいろコミュニティーの情報を探っていたら、
Crystal warm-upのパラメータがデフォルトでは動作が不安定なようで、
書き換える必要があるということが判明。
書き換えたところ、安定して動作するようになりました。
コミュニティー内では情報が溢れていて
なかなか欲しい情報が見つからないんですよね。
LinuxでどのようにBLEの通信をコーディングしようか考えつつ、
次はTIのSensortag等を試してみたいと思います。
【関連する記事】