1. Qiita
  2. 投稿
  3. Line

LINE Simple BeaconをGenuino 101で使うには

  • 3
    いいね
  • 0
    コメント

LINE Beaconのビーコン部分のみを自前で実装できるLINE Simple Beaconの仕様が公開されました。Raspberry PiやNode.jsでblenoを使ったサンプルコードも合わせて公開されておりますが、いずれもビーコンとして動かすには重量級なデバイスかなと思い、BLEを扱えるマイコンで動作させてみました。

使ったデバイス

  • Arduino (Genuino) 101

手元にあったBLEの電波を出せるものがこれだったので使っています。

実装内容

  • LINEのUUIDでAdvertisingが飛んでいる
  • Advertisingに適切なデータが含まれている

これらが揃っていればLINEのアプリ側が反応し、サーバに通知します。

Arduinoのコード

https://github.com/bneedhamia/CurieEddystoneURL

こちらのEddystoneを実装するためのコードを参考にしました。Arduinoのリファレンスには、まだAdvertisingに関する機能の詳細が載っていないのですが、コードは実装されているという状態です。

BLEService lineService("FE6F"); // LINEの16bit UUIDをサービスに設定
BLEPeripheral ble;
void setup() {
  ble.setAdvertisedServiceUuid(lineService.uuid()); 
  ble.setAdvertisedServiceData(lineService.uuid(), data, 8); // Advertisingの際のデータを設定
  ble.begin(); // Advertiseの開始
}

どんなデータを入れるのか

最低限必要なのは

  • frameTypeData
  • hwidData
  • measuredTxPowerData

の3点で、8バイトになります。これらが入ると、LINEアプリはビーコンの存在を認識します。

コード

https://github.com/niccolli/LINESimpleBeaconForCURIE

実際のコードはこちらを参照ください。HWIDのみご自身のものに書き換えると、利用できます。