20160415_jeffrey - silenceuncrio/diary GitHub Wiki

Index

  • 0830 - How to parse JSON data in Android
  • 0920 - LinkIt CGI app json
  • 1110 - cgi app 控制 iplug on/off
  • 1130 - review
  • 1305 - review
  • 1440 - 室內定位
  • 1450 - review IoT 架構
  • 1610 - mantis wiki IoT Platform Architecture

0830

複習一下昨天學到的東西

How to parse JSON data in Android 這篇真的寫得很棒... 趕緊再複習一次

0920

來寫一隻 run 在 LinkIt 上的 CGI 讓 app 呼叫並印出 json 內容

1110

目前已改寫了 app
並加入了 cgi 讓 app 呼叫
cgi 可以控制 iplug 做 on/off 的動作

1130

好好的來 review 一下截至目前所做的

先把功能大方塊列出來

  • gatt_client

    • source code: D:\git\gatt_client
    • 目標板: CSR BLE Module
  • uart

    • source code: D:\ubuntu_share\linkit\uart
    • 目標板: LinkIt Smart 7688
  • cgi

    • source code: D:\ubuntu_share\linkit\cgi
    • 目標板: LinkIt Smart 7688
  • JsonParsing

    • source code: C:\Users\JEFFREY\AndroidStudioProjects\JsonParsing
    • 目標板: Android 裝置

1305

繼續 review

功能大方塊間的連接方式如下, 加上了 O'SMART Plug

[O'SMART Plug]---[gatt_client]---[uart]---[cgi]---[JsonParsing]

加上目標板

[O'SMART Plug  ]---[gatt_client   ]---[uart]--------[cgi]---[JsonParsing]
[O'SMART Plug  ]---[CSR BLE Module]---[LinkIt Smart 7688]---[Android 裝置]

所以從板子的角度來看各大軟體方塊的話

  • O'SMART Plug
    • 第三方
  • CSR BLE Module
    • gatt_client
  • LinkIt Smart 7688
    • uart
    • cgi
  • Android Device
    • JsonParsing

用更抽象的角度來看

  • BLE Device
  • BLE Module
  • IoT Device
  • Android Device

1440

剛剛 jammy 分享他去上課的內容給我們
投影片準備的相當不錯
主題是 室內定位

1450

先趁這個機會從架構面再來好好 review 一下 IoT 架構
把 AMEBA 一起拉進來
從最抽象面來看看有那些 IoT Device

  • Smart Phone
    • 目前幾乎人手一支的智慧手機
    • 用來控制 IoT Gateway
  • IoT Gateway
    • IoT 中樞設備
    • 可以跟多個 IoT WiFi Box 溝通
    • 可以跟多個 IoT BLE Box 溝通
  • IoT WiFi Box
    • 具有 WiFi 介面與外部設備溝通
    • 可以接不只一種 IoT 周邊, 所以稱為 IoT Box
  • IoT BLE Box
    • 具有 BLE 介面與外部設備溝通
    • 可以接不只一種 IoT 周邊, 所以稱為 IoT Box

再從實際面來看目前被拿來時做的設備

  • Smart Phone
    • Android 手機
  • IoT Gateway
    • LinkIt Smart 7688
  • IoT WiFi Box
    • AMEBA
    • 接了一些 IoT 周邊
  • IoT BLE Box
    • 只有接一個繼電器包裝成智慧插頭
    • 第三方廠商提供我們公司貼牌
    • O'SMART Plug

實際面來看的設備目前我實作的軟體

  • Smart Phone
    • JsonParsing
  • IoT Gateway
    • uart
    • cgi
    • gatt_client(CSR BLE Module)
  • IoT WiFi Box
    • 工讀生們實作
  • IoT BLE Box
    • 第三方廠商提供
    • 搭配文件說明控制方式

1610

修改公司的 mantis wiki 的 IoT Platform Architecture 如下

Application Scenario

image

IoT Gateway

image

IoT WiFi Box

image

IoT BLE Box

image

感覺這樣的架構更加抽象化
更方便從上層的應用端來做討論

1635

gateway 與 box 之間有了 binding 之後便可以開始做溝通
不管是 WiFi binding 或是 BLE binding

溝通的目的有甚麼呢?

  • gateway 想知道 某 box 上有什麼 IoT 周邊
  • gateway 想知道 某 box 上某 IoT 周邊的狀態 - 例如溫度
  • gateway 想控制 某 box 上某 IoT 周邊 - 例如繼電器
  • box 想通知 gateway 某 IoT 周邊狀態改變 - 例如偵測到聲音

WiFi Binding 我們用的是 RESTful HTTP API
不管是 gateway 或是 WiFi box
都同時扮演著 HTTP Server 與 Client 的角色

BLE binding 用的是 BLE - Bluetooth Low Energy
BLE 有自己定義的一套溝通方式

非常想很溝通的內容抽想化成幾種後同時套在 WiFi 及 BLE 上面
但又怕跟 HTTP Protocol 或 BLE 搞混

套用 icos 的字眼似乎是不錯的 idea
先回憶一下 icos 現成的動作有哪些

  • init - 叫某個模組做初始化
  • get setting - 要某個模組的 setting
  • set setting - 設定某個模組的 setting(未套用)
  • apply setting - 要某個模組套用 setting
  • get status - 要某個模組的 status

好想有點搞頭喔
下禮拜繼續