Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Full-stack IoT Development - 以 BLE 閘道器帶來的全新開發模式為例

018b7a3847658fb9b80b67e0f6966f5b?s=47 hedy
October 26, 2016

Full-stack IoT Development - 以 BLE 閘道器帶來的全新開發模式為例

A BLE network gateway solution for full-stack web developers to integrate machines and webapps

018b7a3847658fb9b80b67e0f6966f5b?s=128

hedy

October 26, 2016
Tweet

Transcript

  1. Full-stack IoT Development 以 BLE 閘道器帶來的全新開發模式為例 Hedy Wang System Application

    Engineer hedy.wang@sivann.com.tw
  2. About Me • 王雅慧 (Hedy, hedywings@github) • 學歷 ▪ 台北科技大學電子工程系

    • 經歷 ▪ 系統應用工程師 愛文西門科技 2 沒了? WTF?
  3. 3 圖片來源

  4. Internet of Things (IoTs) • 智慧家庭 • 智慧電網 • 智慧建築

    • 農工業與醫療設備 • 市鎮級感測網路 • … 4 Internet Of Things
  5. So Many Protocols… • 物聯網標準眾多 ▪ WiFi, Bluetooth, ZigBee, 6LoWPAN,

    Thread, Z-Wave… ▪ MQTT, CoAP, XMPP, LWM2M • 協定多又雜,卻沒有統一的標準 5
  6. How Machines are Connected 6 橋接 多對多 一對多 圖片來源: 1,

    2, 3, 4 閘道器 雲端伺服器 一對一
  7. Bluetooth/BLE 7 Classic Dual Mode Single Mode

  8. Bluetooth Low Energy (BLE) • 低功耗、低成本 • BLE Protocol Stack

    8 Application Host Controller
  9. Connection Roles • Central (master) ▪ 週期性地掃描可連線的廣告封包 ▪ 掃到合適封包後初始化 connection,向周邊裝置發起連線

    • Peripheral (slave) ▪ 週期性地發出可連線的廣告封包,並接受接入連線 ▪ 連線後遵循 central 的 timing ,並與其交換資料 9
  10. Data Model • 基於 ATT/GATT ▪ ATT Client/Server Model ▫

    資料如何在兩個裝置間流動 ▪ GATT ▫ 屬性的組織方式 - 階層式的資料結構 ▫ Attribute 是最小資料元素 ▫ Characteristic 由Attributes 組成 ▫ Service 由 Characteristics 組成 ▫ 整套 attributes 的集合就是一張 table 10 GATT Table
  11. BLE Applications • 普遍的應用裝置 ▪ 穿戴式裝置 ▪ 手機/平板 11 圖片來源:

    1, 2, 3
  12. BLE? IoT? 12 ?

  13. Development Models • 準備跟 Smart Phone 說分手?淺談 BLE 開發模式 •

    從 BLE 開發模式切入,探討進入物聯網需跨越的門檻 • 開發模式 ▪ 純嵌入式 ▪ 手機 App ▪ BLE Gateway 應用 13
  14. Develop with Embedded SoCs • 適用於周邊節點開發 • 點對點應用 (如 gecko

    switch) • 開發工具 ▪ IC vendor 提供 SDK 與 HDK 開發板 TI CC2540 Development Kit Bluetooth Smart Starter Development Kit 14 圖片來源: 1, 2, 3, 4 一對一控制
  15. Develop with Smart Phones/Pads • 適用於個人型網路應用 ▪ 智慧手環、手錶、運動配件 ▪ 智慧插座、電燈

    • 開發工具 ▪ 手機作業系統提供與底層藍芽晶片溝通的 Library 或 APIs ▪ Android - Bluetooth network stack ▪ iOS - Bluetooth for Developers 15 圖片來源: 1, 2, 3
  16. • 適用於小型區域網路 ▪ 智慧家庭 ▪ 工廠自動化 • 開發工具 ▪ TI

    - Bluetooth Smart-to-Wi-Fi Gateway solution ▪ RedBear Duo - A small and powerful Wi-Fi+BLEIoT board Develop with Gateways 16 圖片來源: 1, 2
  17. Compatibility 17 ? 圖片來源: 1, 2, 3

  18. SIG’s Positive Response 18 “We heard the demand for gateway

    functionality, not just from our members, but from consumers, who want a connected home but are not satisfied with current capabilities.” - Steve Hegenderfer Director Developer programs, Bluetooth SIG
  19. Bluetooth Secure Gateway • SIG 今年 2 月初發布了 BLE Gateway

    解決方案 19 圖片來源: 1 Node.js 15 RESTful APIs
  20. Node.js • 為 Real-time Web 應用開發而生的平台 • 非同步 I/O、事件驅動模型 ▪

    單執行緒 (userland) ▪ 非同步、非阻塞 I/O、以事件迴圈為基礎 (libuv) • Node.js 有強大靈活的套件管理員 ▪ node package manager, npm ▪ 目前已經有上萬個協力廠商模組 20
  21. Node.js Web Frameworks • 前/後端皆使用 JavaScript ▪ Google V8 Engine

    (Client: Chrome, Server: Node.js) • 框架 – 在別人搭好的舞台上表演 ▪ 框架為開發者定義好整體架構並實作部分功能,減輕開發 者的負擔,加快開發流程 • Back-end Web Frameworks ▪ 建立大規模、real-time、可擴展 Web 應用程式 (webapps) 21
  22. Web Front-end Frameworks • Web Application (網路版應用程式) • Front-end Web

    Frameworks / CSS / DOM / Tools ▪ 因前端技術繁多,以下只是列出其中一部分 22
  23. We are Family • 仍有困難需克服 ▪ 手機開發不利於物聯網應用 ▪ 進入 BLE

    Gateway 開發有門檻 ▪ 傳統 BLE Gateway 無法實作應用 ▪ BLE 裝置間沒有相容性 23 是 BLE 刷存在感的時候了 BLE 裝置要能上網! 也可以漫步在雲端! 黏踢踢的手機也需要被解放!
  24. BLE Shepherd Can Help • BLE 開發應用框架 • 它是驅動程式 (HCI

    Host) • 它是 BLE 應用程式環境,也是 BLE 網路管理器 • 可以接上 http 伺服器,很容易跟其他前端框架整合 • 也可以讓 BLE 裝置們通通上雲端 • 你能設計 RESTful 介面,從網外存取網內 BLE 裝置 24 https://github.com/bluetoother/ble-shepherd
  25. No Smart Phone? Kidding Me? 25 那用什麼開發? JavaScript & HTML5

    + BLE Shepherd 真的!不蓋你! 而且,複雜的底層封包處理,它全包辦了! 還免費贈送 BLE 網管功能!
  26. 26 BLE Shepherd 有很重要的使命 成為將 BLE 內嵌於多協定物聯網閘道器的先驅 解放阿公、阿嬤健康照護周邊小玩意兒!

  27. BLE Shepherd (BShep) • BLE central device 之擴充 • 基於

    Node.js • 無痛建立 BLE 機器網路 27 BShep BLE App TI CC254X BLE Network Processor BLE4.0 USB Adapter cc-bnp noble Hardware & PHY HCI Controller Driver @Node.js HCI Host Network Control and Management Layer Application Layer
  28. Bluetooth Machine Network 28 Read / Write BLE Peripheral Bluetooth

    device User Cloud Ind / Notif App server BLE Gateway ble-shepherd Manage Control Local area Monitor BLE Central 小型/區域網路 系統化 智慧物件模型 管理介面
  29. BLE Shepherd Provides… 29 自動掃描周邊裝置 自動發起連線 自由組態連線參數 裝置連線狀態通知 協助管理網路裝置 內建輕量型資料庫

    自動儲存裝置資訊 輕鬆操作連線裝置 它的心願就是 幫助開發者專注於應用的業務邏輯!
  30. SIG Gateway v.s. BLE Shepherd 30 BLE Secure Gateway ble-shepherd

    Security RESTful APIs GATT GAP noble HTTP Server peripheral central Web Application Security Management APIs peripheral Application Server (BLE Apps) GATT BIPSO GAP central cc-bnp noble Web Application
  31. GATT Table on BLE Device • 如何規劃 GATT Table ▪

    SIG-defined GATT Services ▪ SIG-defined GATT Characteristics ▪ User-defined Services & Characteristics • Mix Them Up ▪ 組成描述裝置所需的資料體 31 但是,這樣的彈性卻是一把雙面刃! 各家廠商定義自己的私有規範 裝置之間沒有任何相容性
  32. IPSO – IP-based Smart Object • IPSO Alliance & IPSO

    Model ▪ 對真實世界的物件資料模型進行標準化 ▪ 已定義 51 種 Smart Objects,增加中 ▪ 採用階層化資料模型 (Object, Object Instance, Resource) 32
  33. Unified Data Model for BLE • BLE 的資料模型混亂 ▪ SIG

    定義的 Characteristic 不易套用至實際 IoT 裝置 ▪ 自由度高,廠商大多自訂且彼此不能相容,僅能自家使用 • BIPSO 借鏡 IPSO 模型,試圖解決相容性問題 ▪ 定義 Characteristics-SmartObject 映射,共 51 種 ▪ 曾與 IPSO 聯盟與 OCF 進行討論,BIPSO 是國際標準 組織的資料模型制定參考之一 33 BLE Shepherd 原生支援!無縫接軌!
  34. IPSO Official Website 34

  35. Quick Demo 35 BShep Node.js JavaScript HTTP Websocket React.js

  36. Open Source IoT Gateways 36 In its early stage

  37. Thank You! Hedy Wang hedy.wang@sivann.com.tw