4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

enebularAdvent Calendar 2019

Day 23

enebularとラズベリーパイを利用してLINE Beaconを高速プロトタイピングしてみた

Last updated at Posted at 2019-12-22

[micro:bit と LINE Beacon と Botを組み合わせたハンズオン]
(https://linedevkyushu.connpass.com/event/157340/?utm_campaign=event_message_to_selected_participant&utm_source=notifications&utm_medium=email&utm_content=title_link)に参加してきました。興味深かったのでラズベリーパイとenebularを利用して再現してみました。
スクリーンショット 2019-12-23 1.22.05.png

enebularやラズベリーパイは自由に使える前提で話していきます。

<使用機器>
ラズベリーパイ3B+
MacBook Pro
Android携帯
Google Chrome

<方法>
LinMessagingAPI登録
enebularを利用してLINE Bot作成
ラズベリーパイをLINE Beacon化
動作確認

LinMessagingAPI登録
こちらのサイトで今すぐ始めようをクリックして、LINEアカウントでログインします。
スクリーンショット 2019-12-22 22.31.27.png

MessagingAPIのチャネルを作成します、
プロバイダーを新規に作成する前提で説明していきます。
providerでcreate a new providerを選択して、名前をつけていきます。
Channel name, Channel descriptionも任意に名前をつけてください。
このときlineという単語は使用できませんので注意してください。
カテゴリーとサブカテゴリーはプルダウンで任意に設定してください。
Email addressは使用しているアドレスを入力してください。
利用規約に同意して「作成」ボタンを押します
スクリーンショット 2019-12-22 22.43.15.png

MessagingAPIの設定をしていきます
MessagingAPI設定タブに移動して、QRコードを利用して友達を追加します。

そこから下にスクロールしていくと
webhookの
設定がありますが、一旦おいておきます。

ここからenebularの設定にうつります
http inノードと http responseノード debugノードをつなげてデプロイします。
スクリーンショット 2019-12-22 19.59.13.png

このときhttp inノードのメソッドはPOSTを選択して、URLには/lineをつけます。
スクリーンショット 2019-12-22 22.55.19.png

右上のデプロイボタンの横のiボタンを押すとURLが表示されますのでメモしておいてください。
スクリーンショット 2019-12-22 22.56.31.png

LinMessagingAPIの設定に戻ります。
MessagingAPIの設定のwebhookに先程メモしたurlの最後に/lineをつけて入力します
(例)htps://example/line
スクリーンショット 2019-12-23 1.02.40.png

updateボタンを押してかくていして、Verifyボタンを押してwebhookが動いているかチェックします。
webhookを有効にするのを忘れないようにしてください
(自分は有効にするのを忘れていて、少しだけハマりました)

ここからはLINE Beaconの設定をしていきます
https://manager.line.biz/beacon/register
に接続して、LINE Simple BeaconのハードウェアIDを発行をクリックします。
アカウントリストの中から先ほど作成したMessagingAPIのアカウントを選択します。
ハードウェアIDの発行をクリックして発行されたIDはメモしておいてください。

ここからラズベリーパイの操作になります。
まずはパッケージをアップデートします
$sudo apt update

それからLinux向けのBluetoothに関連するパッケージをインストールします。

$sudo apt-get install bluetooth bluez libbluetooth-dev libudev-dev

インストールが終了したらコマンドを入力していきます。

基本的には公式サイトからコピペします。

//発行されたHWIDを2桁ごとにスペースで区切ったものを指定
//ここは先程メモしたハードウェアIDを入力していきます
HWID='01 DE AD BE EF'
//ここから下はそのままコピペで大丈夫です
ADVERTISE_DATA="13 02 01 06 03 03 6F FE 0B 16 6F FE 02 ${HWID} 7F 00"
//Bluetooth HCIを有効にし、初期化します
sudo hciconfig hci0 up
//LE Controller Commands(OGF: 0x08), HCI_LE_Set_Advertising_Data(OCF: 0x0008) を実行し、
//出力データを設定します
sudo hcitool -i hci0 cmd 0x08 0x0008 ${ADVERTISE_DATA}
//Non connectable undirected advertising(3)で、Bluetooth LEのアドバタイズを有効にします
sudo hciconfig hci0 leadv 3

もしも
LE set advertise enable on hci0 returned status 12
が表示されたときはラズベリーパイを再起動してください

これで設定完了です。

スマートホンのLINEでビーコンの利用と位置情報の利用を許可をして
BLEをオンにすれば、ビーコンとして使用できるようになります。

自分の場合はenebularのフローにレスポンスを足して、ラズベリーパイに近づくと
botにメッセージが送信されるようにしました。
スクリーンショット 2019-12-23 0.34.53.png

<まとめ>
ラズベリーパイとenebularを使用することで、LINE Beaconのプロトタイプが高速で作れます。

更にenebularのフローを利用することで、botの連携やデータベースとの連携も簡単に利用できるので、近づいた回数に応じてメッセージを変更したり、時間に応じたメッセージを送信したりと、使い方は広がりそうです。

<参考情報>
https://qiita.com/yuukikawasaki/items/bf78d96e298bb947cba6
https://engineering.linecorp.com/ja/blog/detail/117/
https://qiita.com/torisankanasan/items/e258ee0ecfc10fb442a7

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?