打造 IoT 應用程式 (二)| 條件作動

Morris Lu
SoftChef Blog_CN
Published in
4 min readSep 30, 2019

你也有關注兩個星期前 Apple 2019產品發表會嗎?先不論是否要買新的 iPhone。Apple Watch 使用者的分享讓我對這個產品有不一樣的認識。

Dear Apple: Face to Face — Apple Watch

影片中提到,當使用者心跳異常時會收到通知,跌倒時無法在時間內回應則會通知 119 及緊急連絡人,當然我們不希望時常使用到這個功能,但確實它即時的觸發設定好的條件,避免更嚴重的意外發生。(好想買!)

上一篇文章介紹了如何讓設備連線並建立在雲端上,以及同事 Jared 的文章資源存取與控制中分享物聯網中的認列及控制。今天讓我們來了解什麼是 條件作動,如何串連各種服務有更好的使用者體驗。

我們都需要數據,但經過處理後的數據更為重要。當你要留意工廠的設備是否運作正常、空氣品質不佳要打開家中空氣清淨機、若今天會下雨提醒你出門帶傘,事情越來越多時,難道要一個個打開應用程式來操作嗎?

設備連網後不斷將數據往上送,隨時隨地都可以監控。手機讓我們在移動中也能檢視及操作設備,若設定好條件,設備在異常或達到設定值時主動通知,而不用開啟各個應用程式或像待命一樣不停查看。

情境的設定

如果你喜歡智慧家電產品,想必一定有幾個可以操作的設備。以小米的智慧插座為例,你可以透過 app 遠端操作這個開關。在 iOS 13.1 最新的捷徑功能裡,新增了自動化的場景,條件的設定變得更加彈性。

當你離開或抵達了指定的地點,可以執行某個 app 裡設定好的捷徑,而不需再打開應用程式操作。

還有什麼情境?

到健身房時開啟行事曆及播放運動播放清單。

離開公司時,顯示公車到站時間及開啟代辦事項。

在家中長輩床頭放置的感測器偵測到起床時,判斷是否氣溫過低而開啟暖氣,以防溫差過大導致意外發生。

我看到這個功能很興奮,自動化操作在正確的時刻提醒你,即使生活忙碌也不會漏掉重要的事項,條件作動 正一步步建立在你的生活中。

而也有一些的產品能夠實現你對智慧家庭的構想

MESH 推出的智慧積木,能自訂情境,像是溫度高於多少數值而觸發動作,MESH app 讓你不需寫程式也能透過圖像化的操作完成模組與模組之間的溝通,並串連 IFTTT 讓更多服務串連起來。

上面不斷提到情境,要方便設定情境,你可能需要:

  • 容易操作介面 (圖像化)
  • 易懂的數值 (百分比、級距的呈現)
  • 符合使用者的需求 (一定的彈性讓使用者設定)

我們盡力設計出容易操作的介面,使用者能輕鬆完成情境設定,那麼要怎麼監控設備在雲上的數據?條件作動要怎麼實現呢?

數據在雲上的樣子

{
"reported": {
"airQuality": {
"fan": "off",
"reportInterval": 3,
"led": "off",
"co2": 203,
"error": "二氧化碳濃度(200)過高"
}
}
}

上圖是空氣品質感測器的數值在雲端上所呈現的樣子,我們在雲服務上建立規則,只要數據上傳時就檢查 “co2” 的數值超過 200 就通知此設備的使用者數值過高。也可以建立規則將每一次的數值都存到資料庫中,作為之後圖表的資料來源。

你可能要煩惱推播通知要發給誰呢?歷史資料要如何取得?條件設定的程式碼要怎麼寫?

每個服務往往都需要時間學習,sensor.live 將服務複雜的設定簡化,設備開發者只需提供對應的資訊即可啟用服務。

sensor.live 將設備與使用者關聯,在條件觸發後能夠知道是誰認列此設備,並發送通知。另外提供 API 可取得儲存在雲端的資料,可將指定時間的數據回傳給使用者,也可將資料用圖表呈現。

手機應用程式不是必須,若能結合手機地理位置、適時發送通知、不受場域限制檢視並與操作設備等,應用程式便能提升使用者體驗。

經過這幾篇認識了物聯網與 App 在其中的角色,我們來實作一個植物濕度感測器吧!過程會有如何串接硬體、監測濕度、控制澆水以及結合 sensor.live 能實現什麼功能。

謝謝你看完今天的文章,我們下次見。

--

--