nRF52832のPreview DKはNFCアンテナが付いているのだが、それを使ったペアリングのサンプルがある。
動かしてみたのだが、前回はうまくペアリングできなかった。
hiro99ma blog: [nrf52][nfc]NFC Pairingサンプルを動かす (1)
NFCのせいかと思い、軽く仕様を確認したのだが、NFCの役割はAndroidに「ペアリングしますか?」の情報を伝えるまでで、ペアリング自体はBLEだけしか関係していないようだった。
hiro99ma blog: [nrf52][nfc]NFC Pairingサンプルを動かす (2)
このときは、シーケンスを見るしかないのかなぁ、と思っていたのだが、私はそんなに詳しくないし、そもそもダメだったとしてもやれることがほとんどない。
それよりも「やり方が悪いだけでは?」という調べ方の方がよかろう、ということで、やり方を見直すことにした。
ぐだぐだ書いたが、「説明を見ながらちゃんとやってみよう」というだけのことだ。
nRF52832のNFCペアリングサンプルは、これだ。
http://infocenter.nordicsemi.com/index.jsp?topic=%2Fcom.nordic.infocenter.sdk52.v0.9.1%2Fble_sdk_app_hrs_pairing_nfc.html&cp=4_0_0_4_6_0
- 起動してもAdvertisingはせずに、NFCタグとして立ち上がる
- NFCリーダ(Initiator側ね)で読むと、ペアリングに必要なデータをNFCで送る
- タグを読まれるとAdvertisingし始めるので、相手はペアリングできる。
- Connectingした後は、普通のHRSサンプルと同じ動きをする
- コネクションが切れても自動的にAdvertisingはせず、またNFCタグを読んでもらうことになる
これだけのようだ。
よく読むと、下の方にテスト手順が書かれていた。
読むべきはこちらだったか・・・。
- サンプルアプリをコンパイルして、焼く。
- NFCアンテナにスマホをタッチして、LED1(BSP_INDICATE_ADVERTISING)が2秒周期のDuty比10%・・・200msec点灯の1800msec消灯になる。NFCタグが搬送波を検知すると、LED4が点灯する。
- 'Nordic_HRM'とペアリングするかどうかのポップアップがスマホに表示され、LED1(BSP_INDICATE_CONNECTED)が点灯する。
- スマホのnRF ToolboxアプリでHeart Rate Applicationをテストする
つまり、ペアリングはアプリじゃなくてスマホ自体がやるということですな。
やってみると、やはりうまくいかない。
- LED1は点滅するが、LED4は変化しなかった(光るのが一瞬ぽい感じもする)。まあ、これはよい。
- LED1の点滅開始と同時に、スマホに「Bluetoothデバイスをペアに設定してもよろしいですか?」が表示される
- 「はい」にすると、LED1が消えてしまう
うーむ、やっぱりだめか。
BLEモニタを見ると、Connect Update Reqのあと、SMがPairing Reqして待ち状態になっているようなのだ。
Reqを投げているのは、おそらくMaster。
なんで「おそらく」なのかというと、BLEモニタの"Direction"が?になっているからだ。
パケットが壊れているわけじゃないから、そういうものなのか?
わからんが、今日はここまでだ。
一応いっておくと、この記事を書く前まではだいたいペアリングができていたのだ。
なので「よくわからないけど、うまくいった」という記事を書くつもりだったのだ。
それが、書きながら順番にやっていくと、できなかったという・・・。
まあ、よくあることだ。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。