LINE 在 2017 年就宣佈要佈局物聯網了,介紹了『LINE Things』這個平台,一直到 2018 年年底的開發者大會,我們才看到一些端倪,而在 2019 年年初釋出了相關 API 文件。LINE 的想法是制定一個協議(規範)給 IoT 廠商走,他們就不需要為了這個裝置去開發 App,所以可以省下開發成本,而我們使用者可以很容易的利用 LINE 來控制相關的 IoT 裝置。

底下操作是參考官方給的文章去實作,若有任何錯誤或是其他問題,歡迎留言討論。

LINE的設定

  1. 創建一個新的頻道(機器人),並加為好友。
  2. 建立 LIFF 應用程序,這是要做一個網頁來控制藍芽,其中 Endpoint URL 先隨便填寫(後面步驟我們回過頭來填),然後記得要將 BLE feature 選 ON。
  3. 建立完成後,會看到 LIFF URL 產生了一個網址,line://app/xxxxxxxx-xxxxxxxx。line://app/ 後面就是你的 liffId (LIFF APP ID)。
  4. 接者我們要靠 LINE Things API 去註冊你的產品。curl 下的指令如下:
curl -X POST https://api.line.me/things/v1/trial/products \
-H 'Authorization: Bearer 你的 token' \
-H 'Content-Type:application/json' \
-d '{
    "name": "你的產品名稱",
    "liffId": "剛剛取得的 LIFF APP ID"
}'
成功之後回傳內容大概會有下列幾個項目,請把 serviceUuid 記下來。
{
    "id": {productId},
    "name": "{trial product name}",
    "actionUri": "{LIFF APP URL}",
    "channelId": {channelId},
    "type": "BLE",
    "serviceUuid": "{serviceUuid}",
    "psdiServiceUuid": "{psdiServiceUuid}",
    "psdiCharacteristicUuid": "{psdiCharacteristicUuid}"
}

LIFF 裡面的控制頁面程式

  1. 如果你沒有自己的 Web 空間,你可以利用 GitHub 頁面託管。請 fork 這個程式碼 https://github.com/line/line-things-starter/
  2. 修改 life-app/liff.js 這個檔案,將第 2 行 const USER_SERVICE_UUID 後面的 id 改為上一個步驟取得的 serviceUuid 字串。
  3. 我們要發佈,所以改完後執行 Settings,跳轉到設定頁面往下找到 GitHub Pages,將 Source 項目 None 改為 master branch 並儲存。
  4. 這時你應該會看到上面出現訊息:Your site is ready to be published a https://你的github帳號.github.io/line-things-starter
  5. 所以你的 LIFF 應用程序的 Endpoint URL 可以填寫了 https://你的github帳號.github.io/line-things-starter/liff-app/

開發版的程式

在硬體方面,需要藍芽功能,因此我準備了一塊 Espressif ESP32-DevKitC、LED 燈、電阻。接法如圖:

程式請複製官方範例 https://github.com/line/line-things-starter/blob/master/esp32/arduino/sample/sample.ino
一樣需要修改 serviceUuid,找到 #define USER_SERVICE_UUID “91E4E176-D0B9-464D-9FE4-52EE3E9F1552″,將後面的字串 91E4E176-D0B9-464D-9FE4-52EE3E9F1552 換成上面步驟取得的 serviceUuid。

開始啟動你的第一個 LINE Things 

手機記得先開啟藍芽,然後開啟 LINE 掃描這個 QRCode。

請依照指示操作之後,若可以在『可連結的裝置』中看到你的開發版,恭喜你已經完成了!

資料參考

你或許會想要看:
  • 暫無相關文章

2 Comments

  1. 是說這樣卡User service UUID 跟 PSDI真的太麻煩…
    無法以現有裝置整合進去, 還要回頭改藍牙的部分才能連:(

    ChengYang Huang
    1. 目前看來都是試驗階段,猜想之後的相關ID參數,應該不會這樣子還要手動修改吧?!

      simon

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *