今回はLINEの提供している、LINE Simple Beaconを試してみようと思います。
LINE Beaconは具体的な金額は導入企業によって変わるようですが、多少値段は張るようです。
しかしながら自分で LINE Beacon 対応デバイスを製作することが出来るオープンなビーコン仕様として「LINE Simple Beacon」が提供されていますので、こちらを使ってラズパイ端末でスマホで認識できるのかを試してみたいと思います。
目次
システムの概要
システムの概要としてはシンプルです。
LINE Simple Beaconの認識端末としてRaspberryPiを設置し、スマホを持った人が認識範囲に入ると検知し、LINE Developersの管理画面でwebhookに指定した先の既定スクリプトが起動します。
今回は、テスト用のサーバにPythonでLINEグループ宛にメッセージを送信するスクリプトを用意しましたので、スマホの接近を検知すると、LINE公式アカウントにメッセージが来る。という作りです。
必要なもの
- Beacon端末(RaspberryPi)
- スマートフォン
- webhook用のサーバ
必要なものとしては、BLE対応のBeacon端末となります。旧式のRaspberryPiでもBluetoothドングルを付けることで接続は出来るかと思いますが、手元にRaspberryPi4があり、こちらはBluetooth内臓でBLEにも対応していますので特に追加デバイス不要で実行できます。
ちなみに、BLE(Bluetooth Low Energy)は、無線PAN技術である Bluetooth の一部で、バージョン 4.0 から追加になった低消費電力の通信モードのことです。
スマートフォンは手元のiPhone8にLINEアプリを入れて使用します。
LINEのwebhookで指定するスクリプトですが、RaspberryPiを公開し、RaspberryPiを宛先にしておけば、特段新設サーバなども不要です。今回は外部のサーバを利用しました。
制作手順・実施
制作手順は以下の通りです。
- LINE Simple Beaconの導入・設定
- webhook用のスクリプト作成・設置
- Raspberry PiのBeacon設定
LINE Simple Beaconの導入・設定
LINE Developersで端末用のHWIDを取得します。
https://manager.line.biz/beacon/register
HWIDはRaspberryPiに設定しますので控えておきます。
webhook用のスクリプト作成・設置
LINE Offichal Account Manager でLINE公式アカウントの応答の設定を上記の通りwebhook利用可能な設定にしておきます。
同様にMessaging APIの項目からWebhookを有効にし、Webhook URLを指定します。
Webhookで起動する通知スクリプトは以下の記事とも重複しますので、以下の内容をご覧頂ければと思います。
特にPythonでなくとも大丈夫ですし、サーバも使わずGASの活用なども可能です。RaspberryPiから通知というのも出来そうですね。
Raspberry PiのBeacon設定
RaspberryPiをLINE Simple Beaconの端末とする方法については、少し古い記事ですが LINE Engineering にやり方が記載されていますので、基本的には以下記事の流用です。
https://engineering.linecorp.com/ja/blog/detail/117/
実際にRaspberryPi上で以下のコマンドを実行すれば設定できます。
1 2 3 4 5 |
HWID='** ** ** ** **' ADVERTISE_DATA="13 02 01 06 03 03 6F FE 0B 16 6F FE 02 ${HWID} 7F 00" sudo hciconfig hci0 up sudo hcitool -i hci0 cmd 0x08 0x0008 ${ADVERTISE_DATA} sudo hciconfig hci0 leadv 3 |
HWIDは先ほど、LINE Developersで生成したIDを指定します。上記を実行すれば設定は完了です。
ただし、RaspberryPiを再起動すると設定は消えてしまいますので、実務として使う場合はシェルスクリプトとして纏めて起動時に実行されるようにしておくと良いでしょう。
動作検証
RaspberryPiを起動し、スマホを近づけてみると確かにWebhookで指定したスクリプトからLINEに通知を飛ばすことが出来ました。
まとめ
今回はRapberryPiをBeacon端末としてLINE Simple Beaconを使ってみました。無事にLINE公式アカウントに通知を飛ばすことができました。
ただ、スマホ側でBluetoothをオンにしておき、なおかつLINEアプリでBeaconをオンにしておかないと検知出来ないのは少し難点かも知れません。
さらに言うと、Bluetoothの認識精度がちょっと怪しい時があります。LINE Simple Beacon の認識タイミングは正確には公表されていませんが、一度認識すると一定期間は認識しないなど一定のルールなどもあるようです。
個人で動作を試したりするのはさほど難しくありませんが、ビジネスとして使うには少し不安もあるかなと思いました。