## <span style="color: lime">LINE</span> Simple Beacon
# <span style="color: gold">Workshop</span>
<span style="font-size: 20px">https://hackmd.io/@taichunmin/chatbot-tw-202002</span>
Note:
在 LINE 聊天機器人中,有一個 webhook 的事件類型是 beacon,可以讓我們來取得使用者的定位,並且根據使用者的位置來提供內容,本次議程是工作坊類型,講者將會準備 20 組 ESP32-DevKitC 來借大家製作自己的 LINE Simple Beacon。備註:本次議程需自備電腦,一條 Micro USB 的線,並提前安裝好 Arduino 軟體,講者準備借給大家的 ESP32-DevKitC 數量有限,議程結束後需歸還,晚到者可能需要與他人同一組。
---
## Who am I?
<table class="about-me">
<tr>
<td><img src="https://www.gravatar.com/avatar/8d9b432d861e4ac0e40954a800ae90a1?s=2048" class="avatar"></td>
<td>
<ul>
<li>戴均民</li>
<li>現職 <span style="color: #e2231a">微程式資訊</span></li>
<li>後端工程師</li>
<li><a href="https://github.com/taichunmin/" target="_blank"><i class="fa fa-fw fa-github"></i>taichunmin</a></li>
</ul>
</td>
</tr>
</table>
<style>
img.avatar {
border-radius: 50%;
width: 300px;
}
</style>
---
# Beacon 是什麼?
---
## 一個一直在進行藍芽廣播的裝置
---
# Beacon 能做啥?
---
# 定位
透過藍芽訊號大小來計算使用者的距離
---
* 在小空間內佈置很多 Beacon
* 根據每個 Beacon 的訊號大小來估算距離
* 利用 Beacon 距離來定位
---
## 但我們今天的主角
# 不是 Beacon
---
# LINE
## Simple Beacon
---
* 閹割版 Beacon (功能受限)
* 用戶有裝 LINE 和開權限就能用
* 免費版要加官方帳號好友才能用
* 透過 Message API Webhook 收資料
* 不會告訴你藍芽訊號大小
---
# 實際案例
<span style="font-size: 20px">以下部分內容取自 LINE 官方投影片</span>
---
![](https://i.imgur.com/6bsIV6V.jpg =x600)
---
<table>
<tr>
<td><img src="https://i.imgur.com/3EgSmGI.jpg" height="600"></td>
<td><img src="https://i.imgur.com/8refDMv.jpg" height="600"></td>
</tr>
</table>
---
<table>
<tr>
<td><img src="https://i.imgur.com/8zS4q4R.jpg" height="600"></td>
<td><img src="https://i.imgur.com/HBNcGwy.jpg" height="600"></td>
</tr>
</table>
---
![](https://i.imgur.com/iIwwjkb.jpg =x600)
---
<table>
<tr>
<td><img src="https://i.imgur.com/Ep88AqM.jpg" height="600"></td>
<td><img src="https://i.imgur.com/ovxY2Su.jpg" height="600"></td>
</tr>
</table>
---
![](https://i.imgur.com/5XxJR4O.jpg =x600)
---
{%youtube QoFjCVCFMWQ %}
---
![](https://i.imgur.com/eSTzzC3.jpg =x600)
---
# 桃園打卡活動
### 2020/06/22 ~ 2020/07/12
---
* 在桃園<span style="color: lime">前 24 大</span>的站架設 Beacon
* 每 3 次打卡獲得 LINE POINTS 10 點
* <span style="color: lime">約 800 人</span>打過卡
* 累計打卡<span style="color: lime">約 2200 次</span>
* <span style="color: lime">超過 34%</span> 的人去超過 1 站打卡
* <span style="color: lime">4%</span> 使用者成功去 24 站打卡
---
# 來讀個文件
---
## webhook 事件類型
* 用戶靠近 <span style="color: gold">(enter)</span>
* 用戶遠離 <span style="color: gold">(leave)</span> (即將移除)
* 待在附近 <span style="color: gold">(stay)</span> (需申請)
* 從廣告進來 <span style="color: gold">(banner)</span> (需申請)
---
## Simple Beacon 專屬
## Device Message (dm)
* 最多 13 個 bytes
* 突破 10 個 HWID 的限制
---
# 前置準備
* 一個能廣播 BLE 的裝置
* 一個 Message API 頻道
---
## 這次議程使用 [ESP32](https://item.taobao.com/item.htm?id=542143157571)
* 新手建議型號:`ESP32-DevKitC-32D-F`
* 售價:<span style="color: gold">RMB $55 / 個</span>
* 從大陸運回台灣的<span style="color: gold">運費另計</span>
Note:
## 因為公司需要報帳
跟 [上富科技](http://www.sunrich-teck.com/inquiry_search_result.php?keywords=esp32&imageField.x=0&imageField.y=0) 買平均<span style="color: gold">約 TWD $300 / 個</span>
![](https://i.imgur.com/znCieHa.png)
---
![](https://i.imgur.com/FfFbXjI.png)
---
# 測試經驗分享
---
# 高溫濕度測試
## 2019/07/04
---
# 情境
* 供電:行動電源由機器外供電
* 溫度:<span style="color: lime">攝氏 80 度</span>
* 濕度:相對<span style="color: lime">濕度 85 %</span>
* 測試流程:
* 加熱 30 分
* 恆溫恆濕 <span style="color: lime">6 小時</span>
* 自然降回常溫
---
![](https://i.imgur.com/g9Cjxm2.jpg =x600)
---
<table>
<tr>
<td><img src="https://i.imgur.com/6YDQxCP.jpg" height="600"></td>
<td><img src="https://i.imgur.com/At95Jef.jpg" height="600"></td>
</tr>
</table>
---
# 總結
ESP32 在測試過後,仍正常運作
---
### 但是鋰電池和水銀電池
### 在這種極端環境下
### 都沒辦法正常運作
---
## LINE Beacon 實測
## 2019/10/04
---
# 廣播資料格式不同
![](https://i.imgur.com/JO66YlB.png)
---
![](https://i.imgur.com/Ao5mavX.png =x600)
---
# 結論
* iBeacon 和 LINE Beacon 的
訊號切換間隔大約是 <span style="color: lime">150 毫秒</span>
* 時間戳記大約 <span style="color: lime">15 秒</span>增加一次
* 斷電期間時間戳記<span style="color: lime">不能歸零</span>
* 斷電期間時間戳記<span style="color: lime">不會增加</span>
---
# 參考資料
* [GitHub: line/line-simple-beacon](https://github.com/line/line-simple-beacon)
* [GitHub: taichunmin/line-simplebeacon-esp32](https://github.com/taichunmin/line-simplebeacon-esp32)
* [LINE Beacon,數位導覽的小幫手!(@陳佳新)](https://www.slideshare.net/jarsing/line-beacon-220894171)
* [LINE Simple Beacon,讓你的 bot 不 Simple (@Hazel)](https://www.slideshare.net/linecorp/line-simple-beaconbotsimple)
* [Mac 也能當 LINE Beacon!](https://stringpiggy.hpd.io/mac-line-simple-beacon/)
* [Line Beacon 實作 (Python/Golang)](https://ithelp.ithome.com.tw/articles/10209703)
* [玩玩看 LINE Beacon (NodeJS/Golang)](https://www.evanlin.com/til-nodejs/)
---
# 工作坊實做時間
遇到問題可以舉手發問喔!
<small>https://taichunmin.idv.tw/blog/2020-07-13-line-simple-beacon-workshop.html</small>
---
# [用 ESP32 自製八合一 LINE Beacon](https://hackmd.io/@taichunmin/chatbot-tw-202103)
---
# 感謝參與
# Q & A
{"metaMigratedAt":"2023-06-15T03:13:31.847Z","metaMigratedFrom":"YAML","title":"LINE Simple Beacon Workshop","breaks":true,"description":"<span style=\"font-size: 20px\">https://hackmd.io/@taichunmin/chatbot-tw-202002</span>","contributors":"[{\"id\":\"0d9a5e06-1f92-4142-b9df-fed4c8873573\",\"add\":10793,\"del\":5592}]"}