Tag Archives: MCS

[ 教學技術文 ] MCS事件觸發功能進階教學——如何用更新後的 Webhook 功能連動外部服務?

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文

 

在之前的文章中,聯發科技的工程師介紹了在原型開發階段,事件觸發功能的最佳化,包含支援觸發條件的資料通道新增網頁警告的視覺化提示,以及如何自行定義該警告提示的嚴重性名稱而在這一篇文章,他們要教讀者們如何使用最佳化的 Webhook 功能,並以一個實例進行教學。若您尚未閱讀之前的文章,建議可看完後再回本文閱讀,以利交互搭配新功能一起使用。一起來閱讀吧!

延續之前的介紹,讀者們可看見連接MCS的工廠機台,在分別發生警告嚴重性為橘色 / 警告名稱為 Medium,以及警告嚴重性為紅色 / 警告名稱為High 兩種事件時,在測試裝置頁面的呈現,請參考下面2張圖:

圖1 顯示各別資料通道的網頁警示 | mcs.mediatek.com

 

圖2 在裝置列表頁面,僅顯示該裝置所有資料通到中警告嚴重性最高的警示燈號。 | mcs.mediatek.com

 

現在,除了網頁警告提示外,如果讀者們希望在事件發生的同時,能更進一步連動到某個遠端的實體裝置,例如智能音箱、無線燈泡⋯⋯等等,以提示在該地點的管理者,能否透過MCS實現呢?答案是可以的。

 

首先,我們必須選擇想要連動的物聯網裝置。除了挑選情境適合的裝置外,這個物聯網裝置在技術上必須滿足以下條件:

  1. 有對外開放的 API 接口

  2. API 支援 HTTP Restful 的通訊協定

 

讓我們假設情境設定如下:

工廠機台發生上述兩種事件觸發的緊急狀況時,透過 MCS 連動到管理者家中臥房的無線燈泡,而且燈泡直接顯示紅色或橘色燈光。在這個案例中,我選擇使用彩色的Wifi LED智能燈泡——美國LIFX 燈泡(也可選擇較常見的Philip Hue,只是筆者 2 年多前剛好為嘗鮮而購入)。從該公司網站上,我們可以確定產品都支援HTTP Restful的 API 接口,以利外部服務並與其整合。

圖3 截圖來源:美國LIFX 官網 https://www.lifx.com/

 

回到MCS,我們以設定橘色警告燈的Medium 觸發事件1為例。回到原型下事件觸發設定的步驟三進行編輯,在動作類型的選項,下拉新增 Webhooks。

圖4

 

如果過去曾用過Webhook這個功能,眼尖的讀者應該發現目前的Webhook 設定介面,我們新增了三個欄位:動作(Actions)標頭(Headers)內文(Body),這樣的格式也是今日普遍的HTTP Restful 請求格式。

圖5 上圖左為舊版 Webhook功能設定,上圖右為新版 Webhook功能設定。 | mcs.mediatek.com

 

讓我們到LIFX 官方的開發者頁面,找到改變燈泡行為(Set State的教學頁面(https://api.developer.lifx.com/docs/set-state),並將觸發該燈泡所需必要資訊填入MCS上的 Webhook 觸發動作頁面:

圖6

 

圖7 動作類型選取Webhook後的設定選單,填入LIFX 開發者頁面相關資訊。 | mcs.mediatek.com

 

動作:PUT

 

控制此燈泡的 HTTP 要求動作:

URL: https://api.lifx.com/v1/lights/:selector/state

其中selector為變數,可為all、label:[value]、id:[value] 任一種識別資訊指定想要連動的燈泡。

 

標頭Authorization:Bearer XXXXXXXXXXXX Content-Type:application

其中 Authorization 的值為使用者的識別碼,需在登入 LIFX cloud Home 頁面後,創建該 personal access tokens(LIFX 教學頁面有說明如何創建)。內文格式則為json。

 

內文

{
“power”: “on”,
“color”: “orange”
}

 

LIFX 的官方文件中有針對燈光的細節,例如亮度、燈光持續時間、模式等提供更完整說明,且對應的物件都可以放入內文。此情境中僅放入 power 及 color 兩個物件。接著,按下寄發 Webhook 按鈕,測試打到 LIFX服務的 Webhook 是否成功觸發燈泡開啟橘色燈光。讀者們可看見下圖中燈泡成功開啟橘光,按下儲存便完成這個事件觸發設定的更新。

圖8 按下測試按鈕,確認該燈泡有正確開啟橘色燈光。 | mcs.mediatek.com

 

依此類推,讓我們複製同樣設定在高警告嚴重性的 High事件——即當機台運轉狀態轉為弱時,同時觸發家中臥房的 LIFX 燈泡,開啟紅色燈光。在此設定中,除了內文的 「color」修改為「red」外,其餘資訊皆和事件1相同。

圖9 事件2的觸發事件設定內容 | mcs.mediatek.com

 

完成後,可看到在觸發條件和動作列表中,兩個告警事件後方的觸發動作下,已新增 Webhooks。至此,我們完成了工廠機台發生狀況時,透過 MCS 遠端連動家中臥室燈光的設定。

圖10

 

透過MCS事件觸發中的簡單設定,我們可輕鬆遠端連動除了智能燈泡外不同的物聯網裝置。除本文中的 LIFX燈泡或其它物聯網的硬體裝置外,當然也可透過 Webhook 的功能,在事件發生時連動到其他支援HTTP Restful 的軟體服務,如IFTTT、Slack 或 Line⋯⋯等等,讀者們可針對您所需的應用,選擇適當軟硬體產品,並參照該服務網站上的相關說明。

 

最後特別說明一下,這個案例是透過 MCS 本身的 Webhook功能控制 / 連動遠端軟硬體服務;相反地,若要透過第三方的軟體服務和MCS互動,則需透過申請appId及appSecret的方式,並透過該服務的webhook來和MCS互動。有興趣的讀者,可以複習此篇教學。

 

現在,馬上開始建立您的事件觸發情境吧!

 

相關文章

[ MCS雲端服務 ] 我知道MCS可以設定觸發條件和動作並得到系統通知,但是怎麼運用哩???來,讓這一篇教會您

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文

上一篇文章,我們跟大家介紹,將已開發MediaTek Cloud Sandbox(以下簡稱MCS) 的最新功能:可設定觸發條件和動作並得到系統通知。這一篇,我們將根據這個主題,分享多個新增的功能及實際應用情境。若讀者們過去對於事件觸發條件及動作功能並沒有任何使用經驗,歡迎前往 MCS 官網上的教程進一步了解。

 

過去裝置的事件觸發條件中,支援顯示類別的浮點數整數兩種類型的資料通道作為該事件觸發的觸發條件:

圖1 原事件觸發功能支援作為觸發條件的資料通道 | mcs.mediatek.com

 

聯發科技的工程師們接觸到更多不同應用的開發者後,發現現有的資料通道類型已不足以涵蓋日益增加的物聯網應用情境。比如說,針對裝置多段顯示的不同狀態,分別設定推播告警、針對裝置開/關狀態的推播告警⋯⋯等等。所以,聯發科技的工程師們,決定在事件觸發的「條件」中,增加支援顯示/控制類別的開關分類字串16進位制這四種類型的資料通道類型,以及個別通道對應的觸發條件,如下:

圖2 此表格針對事件觸發與動作設定中的「條件」加以說明 | mcs.mediatek.com

 

以分類型資料通道為例,若使用者正運用MCS開發一個針對工廠應用的裝置,裝置會上傳3種不同的運轉狀態,在顯示類別的分類資料通道以//作為表示。若使用者希望當該裝置上傳狀態為時,透過MCS寄送郵件通知使用者,則可於實際MCS操作介面的條件設定如下:

圖3

 

若使用者希望裝置上傳狀態和當下狀態相較有任何改變時,都寄送警告通知,那麼在編輯觸發條件選擇數值異動,則裝置上傳的最新狀態資料點和前次上傳資料點不同時,則寄送通知,設定如下圖:

圖4

 

以上需要注意的是,上面的觸發條件皆僅能透過裝置上傳的資料點(value)去進行事件觸發,若是透過MCS介面進行操控的改變,並不適用此觸發事件。

 

全新的網頁警示功能及告警燈號提示,如下圖5:

圖5 此圖表示一個煙霧偵測裝置在不同的觸發事件滿足下,設定網頁警示的視覺呈現 | mcs.mediatek.com

 

除了在觸發條件新增支援的資料通道外,觸發動作的動作類型也有新增,除現有的郵件通知、手機推播、Webhooks外的第四種觸發動作是網頁警示。這個功能的設計是針對大量的商業應用場景,例如工廠、魚塭、農業等應用領域。當觸發條件滿足時,該裝置及觸發條件滿足的資料通道卡片,都將呈現使用者定義的警示效果,達成視覺化監控。若讀者過去有使用MCS的Android App,也可達成同樣的效果。

 

以前面提到的工廠應用為例,假如該工廠機台共有運轉狀態機台溫度機台開關三種資料通道。那在這個應用裡,當機台溫度超過55或機台因不明運轉狀態轉為時,都需要特別注意或第一時間採取應對措施。所以,我們可在事件觸發的情境裡,設定網頁警示類型的觸發動作,我們舉下面的兩個事件為例,說明此功能:

 

事件一:機台超過 55 度進行網頁警示觸發。設定完觸發條件後,在動作類型選擇新增的網頁警示,在下方警告嚴重性下拉選取名稱為 「Medium」的橘色警示燈警告。

圖6

 

圖7

 

當機台溫度超過55度時,除了手機推播及寄送電子郵件外,設定觸發的資料通道卡片左上角,將根據使用者選擇的警告名稱(Medium)跳出橘色警示燈,如下圖:

圖8

 

圖9

 

注意:若一個資料通道被設定兩個不同嚴重性的警告,則顯示最後發生的警告。

 

同時,在使用者的測試裝置列表,也會在該裝置內有資料通道被觸發時,於裝置卡片左上角進行警告提示。若要解除警告,就必須進入裝置頁面,並於提示下拉後進行解除。

圖10

 

事件二:當機台運轉狀態轉為弱時,進行網頁警示觸發。因爲這項事件比較緊急,下方警告嚴重性下拉選取名稱為「High」的紅色警示燈警告。

圖11

 

圖12

 

當兩個觸發事件同時發生時,兩個資料通道左上角將分別跳出個別設定的警示燈,如下圖13;而在裝置列表的層級,則會顯示警告嚴重性最高的警告名稱,如下圖13-1:

圖13 顯示各別資料通道之網頁警示 | mcs.mediatek.com

 

圖13-1 於裝置列表頁面僅顯示該裝置所有資料通到中警告嚴重性最高的警示燈號 | mcs.mediatek.com

 

修改警告嚴重性等級

上面我們舉的例子,是以預設的三個警告嚴重性(High:紅色警示燈/Medium:橘色警示燈/Low:黃色警示燈)設定網頁警示。除了預設的三種警告嚴重性外,使用者也可針對不同應用情境,增加或修改警告嚴重性,並設定自己希望呈現在畫面上的顏色,如下:

圖14 在觸發條件與動作的標籤下,可以看到所有的「警告嚴重性等級」。S1至S3分別為預設的警告嚴重性,嚴重性由大至小排序,不可修改警告名稱但可修改顏色 | mcs.mediatek.com

 

圖15 增加第四級警告嚴重性警告,並設定警示燈號為紫色,最多可增加至10種警告| mcs.mediatek.com

 

圖16 之後在設定事件觸發選擇網頁警示時,就可以看到新增的第四級警告嚴重性的警告名稱了| mcs.mediatek.com

 

現在,當讀者們的裝置發生事件觸發時,就可在個別裝置內,以及個別的測試裝置列表中,看到不同的警告名稱及警示燈號,並且需要進行手動解除。下一次,我們將會分享另一個觸發事件的功能更新——Webhook 優化,最後教讀者如何打造一個包含各種警示燈號、做到視覺化呈現的物聯網監控場景。

 

備註:某些使用者會碰到瀏覽器鎖住Cache的問題,導致較慢更新到新的版本。若讀者發現您的事件觸發功能尚未更新,請在登入MCS 後,強制重整瀏覽器(Ctrl + F5)以體驗最新功能。

 

相關文章

[MCS雲端服務] 透過「服務提供者」功能,讓LINE Bot與MediaTek Cloud Sandbox連動(上)

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文
時間
成本
難度
材料表

以物聯網概念將剩餘車位資訊送至MCS服務上

這一次,MCS( MediaTek Cloud Sandbox 的簡稱)的工程師們,要教讀者如何透過外部服務與 MCS 進行互動,以達成客製化應用。

 

情境

您目前正經營一個停車場,某天您剛好去保養付款機台時,聽到一位常客抱怨無法在抵達前知道剩餘的車位,到現場時才能從顯示屏上得知停車位已滿的訊息,而必須繞路至附近另一間停車場或在現場苦等。

 

因此,您希望提供一個更便利的方式,讓常客們可更有效率造訪您的停車場。您想達成兩個目標:第一是讓用戶可透過手機查詢目前停車場的剩餘車位;第二是當剩餘車位低於某個數字時,主動推播提醒該位常客。

 

對於這兩個目標,我們要考量到以下幾點:

  1. 若獨立開發一個停車場的 App 服務,用戶需做較多操作,除增加行車危險性,且用戶額外安裝一個  App 的意願也不高。

  2. 開發一個停車場 App 的開發時間及成本

  3. 目前絕大多數台灣人隨時隨地都在使用 LINE

 

因此,您決定透過開發一個簡單的 LineBot 聊天機器人,使常客可透過將這個聊天機器人加入 LINE 好友,與您的停車場互動並達成上述兩個目標。

 

接下來,就將針對如何透過 LINE Bot 設定、MCS及自動化程式平台,說明如何開發這個簡單的 LINE Bot 聊天機器人。

 

首先,我們要開發一個簡單的物聯網裝置,連結停車場的車位管理設備,並讀取剩餘車位的資訊。當有用戶停車時,這個物聯網裝置會將更新後剩餘車位的數值送至 MCS 的雲端服務上,如下圖:

圖1 該裝置在測試裝置頁面示意,位置資訊在此裝置內為固定 | mcs.mediatek.com

 

這裡要特別介紹一個概念:目前大部分的 MCS 的使用者,都是透過裝置與 MCS 服務做互動。但除了裝置外,MCS 也允許使用者開發的外部服務,透過在 MCS 上所申請的憑證與 MCS 互動 ,這組憑證即為 appId 和 appSecret。下圖為 MCS 官網上針對以外部服務讀取資料點的說明。

圖2 無論是讀取或上傳資料點,外部服務皆可透過憑證與MCS互動 | mcs.mediatek.com

 

由於我們後續必須透過外部服務讀取這個裝置的剩餘車位資訊,這組憑證對接下來的開發將非常關鍵,我們將運用下一篇文章針對此部分進行詳細說明。

 

申請一個 LINE Bot 機器人及 Automate.io 簡介

接著,我們要去 LINE 申請一個 LINE Bot。

 

網路上已經有相當多關於如何申請 LINE Bot 的文章,在此我們就不多著墨。以下為在 LINE developers 後台內,該 LINE Bot 的設定畫面,我們為這個 LINE Bot 取一個很酷的名字 :互動式停車場-中山北路

圖3 Line developers 的後台設定頁面

 

LINE Bot 所提供的 Messaging API 允許開發者建立可接收訊息並回覆給加入LINE Bot 的用戶。此 LINE Bot 的程式處理架構為:LINE 公司的訊息伺服器(Messaging Server)負責接收及回應用戶端的訊息,並且管理 LINE 應用程式的權限。當 LINE 訊息伺服器收到用戶端的訊息時,它會把訊息轉送給我們所開發 Linebot 程式的網站,我們的網站程式會把我們設定要回覆給用戶的訊息傳回給 LINE 伺服器,最後再由 LINE 伺服器將訊息回覆給用戶。

 

在 LINE Bot 的設定頁面,請檢查以下設定:

  1. Issue 一個 Channel access token(後面LINE Bot回覆訊息時,會需要用到此變數)。

  2. Use webhooks 欄位修改為Enabled

  3. 將下方的自動回覆(Auto-reply messages)功能關閉

  4. 輸入 webhook 的 URL

圖4 LineBot 設定頁面,可拉至最底端掃描這個 LINE Bot 的 QR Code,將機器人加入您的LINE好友,以利後續測試。

 

以上1至3點設定完畢後,我們只差第4點尚未完成——輸入 Webhook URL(上圖的黃框)。LINE Server 會透過這個Webhook將訊息送至我們的開發 LINE Bot 程式的網站 ,而LINE官方範例使用Heroku這個服務做為開發 LINE Bot 程式網站的後端平台,並接收 LINE Server 的訊息(若讀者有興趣使用此後端服務開發LINE Bot,可直接上網搜尋「Building a sample bot with Heroku)。但在此,我們直接使用一個非常好用的自動化程式平台Automate.io (https://automate.io/),可以讓我們透過簡單的設定,取代寫程式開發這個 LINE Bot 程式。而我們等一下也將透過Automate.io生成圖4中LINE Bot 設定頁面所需輸入的 Webhook URL 。

圖5 Automate.io 是個自動化程式平台,很類似 Zapier/IFTTT,可讓使用者建立自動化程式(Bot),透過簡單的 REST、Webhook等設定,串連使用者所用的網路服務而不需撰寫程式,進而節省使用者的開發時間。

 

決定以 Automate.io 取代程式開發後,我們的 LINE Bot 聊天機器人服務架構就成為下面這張圖:

圖6 LINE Bot聊天機器人 / 自動化程式平台 / Mediatek Cloud Sandbox開發架構示意圖 | mcs.mediatek.com

 

現在,我們有了整個 LINE Bot 的開發雛型。下次,我們將會向讀者說明,如何透過Automate.io連通MCS及LINE server,並完成LINE Bot 的開發。

 

相關文章

[MCS雲端服務] 根據聯發科技,MCS雲服務最新功能:可設定觸發條件和動作並得到系統通知

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)網站上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文
時間
成本
難度
材料表

當我們在建構某些物聯網應用時,例如智慧門禁系統或空汙偵測裝置,往往,我們透過感測器將偵測到的資料上傳至雲端,會需要當上傳的資料滿足某一些條件,雲端系統會自動透過一些方式通知我們。像是當空氣中的某種物質達到一定程度,我們的行動裝置可收到空汙通知;又或著當智慧門禁系統的紅外線被觸動,我們也可以收到警示。

 

為此,聯發科技的雲端服務Cloud Sandbox(以下簡稱MCS)新推出了一個功能,就是強化trigger action的功能,例如設定的條件及含括更多型態的資料通道。針對action的部份,MCS新增了alert的功能,可強化更多使用的場景特別是Scene。另外,針對webhook的呼叫,MCS提供了更大的彈性。

 

實際上該怎麼使用呢?一起來看看以下的教學:

 

使用者可設定觸發條件和動作,當特定資料通道回傳的值符合使用者所設定的條件,系統將會發出通知提醒。

以下是支援設定觸發條件的資料通道

  1. 開關
  2. 分類
  3. 字串
  4. 十六進位值
  5. 整數
  6. 浮點數

並可套用以下的條件

  1. 大於
  2. 小於
  3. 等於
  4. 介於~之間
  5. 數值異動

當資料通道上傳的數值符合設定條件時時,會觸發通知動作。以下是四種支援的通知動作:

 

  1. 電子郵件

有權限能訪問這個裝置的使用者,皆能收到電子郵件通知,包括裝置的擁有者、管理者及一般檢視。

 

  1. 手機推播

必須先安裝 MediaTek Cloud Sandbox 手機應用程式,並登入 MCS 帳號。

 

  1. Webhook

MCS 會發送一個 HTTP 請求至使用者指定的網址(Callback URL)。

 

  1. 網頁警告

當觸發條件成立時,在 MCS 網頁上會顯示相關提醒,包含觸發的嚴重等級。

 

設定觸發條件與動作

您可在產品原型頁面下設定觸發條件和動作,此觸發規則會套用在此原型下的所有裝置。之後,使用者可在各個裝置底下,修改條件的觸發數值。詳細操作步驟:

 

Step1:當使用者點入產品原型頁面後,點選「觸發條件和動作」分頁 -> 點擊「新增觸發條件和動作」

圖1

 

Step2:在「新增觸發條件和動作」視窗中,填入必要的資訊。

(1)觸發條件名稱之後將會顯示於網頁警告的訊息中。

圖2

 

(2)使用者可設定多個比對條件,當這些條件同時成立時(AND 邏輯)則會觸發通知。請注意,要讓條件同時成立,使用者必須將此條件有用到的資料通道數值同時上傳至 MCS,意思是寫在同個 HTTP 上傳的請求當中。

圖3

 

(3)至少選擇一個觸發動作,當條件成立時,發送通知。稍後將會針對觸發動作有更詳細的介紹。

圖4

 

使用者在產品原型中設定的觸發條件和動作,會被產品原型下所有的測試裝置所繼承。在測試裝置中,使用者只能更改觸發條件的值,或著是選擇打開或關閉此觸發條件和動作。

圖5

 

需要注意的是,只有透過裝置上傳的資料點(上傳資料點時,在 HTTP 表頭帶有deviceKey或是透過MQTT協定發布資料)才會觸發動作。使用者透過 MCS 網頁操作資料通道而產生的資料點,將不會觸發。

 

觸發動作詳細介紹

設定手機推播

若使用者有多個手機裝置,MCS 能讓使用者設定,是否每隻手機裝置都要收到手機推播通知。使用者能於兩個地方設定:

 

  1. 個人檔案」頁面中,設定是否手機要收到全部來自 MCS 的推播通知。

  2. 測試裝置」頁面中,設定是否手機要收到來自特定測試裝置的推播通知。

 

在「個人檔案」頁面中,使用者可看到所有他有安裝 MCS 手機應用程式的手機列表。使用者可在此設定,是否每隻手機要收到或不收到全部來自 MCS 的推播通知。

圖6

 

「測試裝置」頁面中,展開「管理您的觸發動作」,使用者可看到所有他有安裝 MCS 手機應用程式的手機列表。使用者可在此設定,是否特定手機要收到或不收到特定測試裝置的推播通知。

圖7

 

設定 Webhook

要使用webhook觸發動作,使用者只需在設定觸發條件時,選擇webhook作為觸發動作,並且輸入欲收到此觸發通知的網址。當觸發條件成立時,MCS會發送一個HTTP 請求至使用者提供的網址。

圖8

 

當使用者選擇 webhook 觸發動作後,他可使用測試按鈕,測試是否通知有被送出。送出的資訊包含 裝置名稱、device ID及觸發值。

 

設定網頁警告

當使用者在觸發條件與動作中設定網頁警告時,也必須指定此警告的嚴重性等級。

圖9

 

當觸發條件成立,網頁警告訊息會立即出現在網頁上,並顯示嚴重性等級等資訊。網頁警告會出現在以下三個頁面:

 

1.資料通道卡片

當資料通道的數值符合觸發條件,該資料通道上便會出現網頁警告標籤。展開後可看到更詳細的觸發資訊,包括觸發條件名稱警告發生時間。在此範例中,資料點是在「2018-07-19 11:36」,上傳並觸發一個名叫「Water is too hot」的觸發條件。

 

當使用者點擊「解除」之後,這個警告則會被解除不會顯示在網頁上,直到下次使用者的裝置在上傳符合此觸發條件的資料點。

圖10

 

2.測試裝置列表

在測試裝置列表中,嚴重性最高的警告會顯示在測試裝置的卡片上。

 

以上面的範例來說,當測試裝置底下有兩個資料通道皆觸發了網頁警告,一個嚴重等級為「High」,另一個為「Medium」,那麼裝置卡片上的警告等級,會顯示「High」。當High的警告解除後(可能是使用者按下了「解除」按鈕,或重新上傳一個不符合觸發條件的資料點),則會顯示下一等級的警告「Medium」。

圖11

 

3.場景圖

在場景圖中,警告標籤的呈現方式與測試裝置列表ㄧ樣。

圖12

 

在通知內容中使用變數

MCS 預先定義了多個變數,讓使用者可在通知的名稱與內容欄位中使用,這些變數代表的是動作被觸發時,當下的真實數據。目前支援的變數包含有:

  • ${deviceId}:設備的 ID
  • ${deviceName}:設備的名稱
  • ${value}:資料通道的數值
圖14

 

舉例來說,使用者可將Email的內容設定成:

目前 ${deviceName} 的溫度是 ${value}.

當通知寄發給使用者時,其中的變數會被置換成當前的真實數據,例如:

目前 我的客廳 的溫度是 30.

以上就是MCS新功能「觸發條件與動作」的教學,盼望透過這篇教學文,使讀者們未來建構物聯網應用時,可以更加得心應手。

 

相關文章

[MCS雲端服務] 如何透過 Scene (場景)功能快速打造物聯網應用情境 (二)

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文
時間
成本
難度
材料表

上一篇文章,我們介紹了如何透過上傳物聯網的場景圖,使裝置可在圖片上呈現。

但如果這個場域很大,或整個場域有多層式的關係時,無法透過一張場景圖呈現所有裝置的話,該怎麼做呢?以下,我們繼續以上篇文章的養殖場為範例:

假設這個魚塭養殖場的業主有多個魚池且彼此相連,而業主需要一次管控多個魚池,那麼業主可先上傳一張俯瞰多個魚池的圖片,如下圖:

圖1 一個魚塭養殖區的俯瞰圖 | mcs.mediatek.com

 

上篇文章中有提到,由於每個場域圖的網址本身皆為獨立的Url,所以我們可將某多個場景嵌入至這個俯瞰圖上。點擊左側的網址項目,貼上該場景的Url 連結,以及其顯示在這個俯瞰圖中的名稱,將這個場景的「網址元件」,一樣透過拖拉的方式,拉至這個俯瞰圖上。

圖2 將上一篇建立的場景網址嵌入到此俯瞰圖內 | mcs.mediatek.com

 

圖3

 

圖4 圖3、4說明,使用者可透過多個網頁Tab切換場景,或將不同場景個別顯示於多重螢幕上,做到中央控管。 | mcs.mediatek.com

 

應用至智慧產線上會像這樣:

圖5

 

點擊填充機台的 Url項目,可進一步看見該填充機台的場景。

圖6 可點擊右上角的展開圖示,觀看整個場景圖(若再按F11使瀏覽器變全螢幕,就會只剩下完整的場景圖了)。 | mcs.mediatek.com

 

當然,Url 項目的功能也提供更多客製化的彈性。假設某位業主希望進一步看見「原料容器」這個裝置的歷史資料,整合進公司內部的物流程系統,或以其它第三方的軟體呈現(例如Google Sheet、Tableau等),則使用者可將透過MCS API,以其它方式收集的長期數據圖表的Url連結,嵌入至該裝置的附近(如下圖),以利業主做進一步查看。

圖7

 

然而,使用者也需注意在不同場景鏈結中,各個使用者針對不同場景是否皆具有權限。

透過這兩篇的介紹,讀者們是否更了解場景的功能了呢?快回MCS建立屬於你自己的場景吧!

Thanks to Michael Hsu.

 

相關文章

[MCS雲端服務] 用Scene(場景)功能快速打造物聯網應用情境(一)

作者/攝影

本文改編自聯發科技Cloud Sandbox(MCS)官方部落格上的文章,特此感謝聯發科技的授權,圖文版權均屬於聯發科技。

文章分類教學技術文
時間
成本
難度
材料表

  聯發科技雲沙堡(MEDIATEK Cloud Sandbox,以下簡稱MCS)是一個非常方便的雲端平台,使用者能在MCS上開發出各樣物聯網應用。

 

  然而,當使用者將產品透過 MCS 完成了 API 對接,以及測試驗證階段後,他們將面臨兩個選擇:(1)開始尋找其它公有雲方案,並針對產品應用架設自己的雲端平台;(2)尋找外包廠商開發終端業主的物聯網應用監控介面。至此,針對這個開發項目,使用者將短暫離開 MCS 平台,直至有下個產品開發及需求驗證。

 

  但因物聯網的監控頁面需做大量客製化,業主對使用者開發的介面進行不斷修改,因此使用者的開發時間從3個月增加至半年、8個月不等。好不容易終於耗時費力完成了一個業主的專案。接著,使用者回到 MCS 評估下個新產品,然後再次花費大把時間執行下個專案。

 

  所以,MCS的開發人員便開始思考,是否能針對不同垂直領域的物聯網應用場域,透過 MCS提供一站式使用體驗,進一步優化從完成產品驗證,至商業應用這段期間的開發流程,同時縮短開發時間?在與 MCS 的使用者(包含裝置開發商、系統整合商、模塊方案商等不同類型的使用族群)多次討論後,MCS開發人員決定開發「場景」(Scene)的功能。

 

  簡而言之,就是使用者可上傳一張物聯網場域的圖片,做為物聯網場景的監控背景頁面,接著再選擇已驗證完成的測試裝置或裝置,將不同裝置透過簡易拖拉(drag & drop)方式,將這些裝置定錨至場景圖上,以完成一個實際的物聯網遠端監控監控介面。此外,使用者還可將這些開發好的場景頁面,分享給內部管理者或終端業主,達成中、小型專案的商業應用。

圖1 透過三個步驟讓不同裝置呈現在場景圖內 | mcs.mediatek.com

 

建立一個魚塭監控頁面

  讓我們用一個智慧養殖漁業做例子。

Step1:先在場景頁面新增一個場景,並上傳該養殖池的實際照片,如下圖:

圖2 於場景列表新增場景 | mcs.mediatek.com

 

Step2:點擊下一步,會進入這個養殖池的場景編輯頁面。選擇點擊左側測試裝置裝置項目,下拉選單選取一個你在此 MCS 帳號中開發完成的測試裝置或裝置,加進此養殖池,並在這個裝置編輯頁面中:(1)重新命名此裝置在養殖池內的顯示名稱;(2)勾選裝置所有資料通道中欲顯示的關鍵資料通道,並決定關鍵資料通道從上至下的顯示順序;(3)選擇是否要顯示此裝置的圖片在卡片上方(圖片是在原型prototype開發過程中加入的)。

圖3 點擊左側裝置的「裝置」,進入編輯頁面 | mcs.mediatek.com

 

Step3:儲存後,此裝置卡片會出現在這張魚池的場景左上角,讀者可將這個裝置拖拉定錨至養殖池中的實際位置,裝置將即時顯示連線狀態及這些資料通道收到的數值。

圖4 於場景編輯頁面中,亦可隨時點擊裝置卡片右上角海苔條回到裝置編輯頁面 | mcs.mediatek.com

 

Step4:場景編輯完成後,點擊返回,就會進入檢視頁面,網址列會顯示這個場景的Url Link,讀者也可點擊右上角的編輯按鈕回到場景編輯頁面。

圖5 每個場景都有一個獨立的Url | mcs.mediatek.com

 

  下圖表示了一個魚塭的管理者,如何透過遠程監測和控制自己魚池內的裝置:

圖6 若該裝置具備多個資料通道,且不會一次全部顯示在各裝置卡片中,讀者可在場景檢視頁面內直接點擊裝置卡片,由場景層進入裝置層 | mcs.mediatek.com

 

  當然,讀者也可視場域需求放入室內平面圖或立體圖,甚至是一條智慧生產工廠的產線(如下圖)。

圖7 上傳一張智慧工廠的底圖,將透過MCS開發的裝置拖拉到這條產線上做即時監控 | mcs.mediatek.com

 

將建立的場景分享給客戶

  除了場景畫面的編輯外,讀者也可將此場景圖分享給其它 MCS 的使用帳號,並將該使用者設置為管理者角色或一般檢視角色。兩種身分最主要差異在於對場景編輯上的權限:管理者同樣可對該場景進行編輯,而一般檢視角色無法對該場景進行編輯。讀者也可加入多個 MCS 帳號比較差異。

圖8 在場景編輯頁面右上角可選擇編輯該場景的使用者權限 | mcs.mediatek.com

 

  在這裡要注意的是,場景的權限和裝置的權限是各自獨立的,因此若某個使用者具備共同編輯此場景的權限,但並未被分享場景內某些裝置的權限,則該使用者即便可編輯或檢視該場景,也看不到這些裝置。因此分享場景時,也要確定該使用者對這個場景內的裝置使用權限為何。場景權限及裝置使用者權限這樣的設計是為了針對物聯網監控應用中,不同的物聯網場景管理者對於不同裝置,通常會擁有不同的(通常為上、下級關係)監控權限。

 

  以下說明三種不同 MCS 使用者權限檢視的差異:

表一

 

圖9 系統整合業者畫面,可編輯場景。 | mcs.mediatek.com

 

圖10 業主/老闆檢視畫面,不可編輯場景。 | mcs.mediatek.com

 

圖11 業主/監視人員檢視畫面,僅能監看具有權限的裝置。 | mcs.mediatek.com

 

  未來MCS也將針對事件觸發提供優化,例如可在裝置上嵌入警告燈號,並可在場景中做提示,以及可設定透過顯示型資料通道,連動控制資料通道⋯⋯等等,提供使用者更接近物聯網場景的應用。

 

  下一篇,將會介紹如何將多個不同場景,透過嵌入Url的方式,將各個有關聯的場景彼此鏈結在一起。

 

相關文章

[課程紀錄]170724 物聯網教師研習@日新國小

作者/攝影 曾吉弘
課程時間 2017 7/ 24 25
課程講師 徐豐智、趙偉伶、陳煜倫
課程場地  台北市日新國小 / 台北市自造教育示範中心

0724~25 兩天感謝台北市自造教育示範中心邀請許多對於基礎物聯網教學有興趣的老師們,一起來認識如何將 LinkIt 7697 物聯網開發板應用於國中小教學(現場也有景美女中的老師),在此搭配了以 Google Blockly 為基礎的 Blocklyduino 圖形化介面來進行教學。換言之,老師們等於有兩套工具,圖形化介面讓學生快速完成各種專題,相關周邊如各種感測器的指令,還有Wi-Fi / BLE / 雲服務的指令也都有了,可以說是相當完整。

CAVEDU已經開始編寫7697書籍,希望明年初可以出版喔!

這兩天課程主題除了將7697作為Arduino來控制基礎元件、藍牙應用以及結合雲服務等三大面向之外,最重要的是將上課時可能會碰到各種技術性問題都和老師們分享,目的是讓各位老師真的願意把這套課程實際運用在課程中囉!

 

如果學校網路環境不太夠力的話,聯發科也提供了MCS lite 離線版雲服務,只需要一台一般等級的桌上型電腦就可以讓十多片開發板順利連線。這麼多面向都考慮到,也深受最近許多老師上課後的實際肯定。

 

Blocklyduino 各作業系統版本下載頁面

MCS lite 離線版雲服務下載頁面

 

投影片:


 

以下是課程花絮照片:

對於教學場域來說,重點在於如何正確取得資料與資料呈現(甚至分析)的方式,麻煩的網路通訊協定就等到小朋友長大再說吧。這時候MCS提供的檢視歷史資料功能就很有用了。除了可以看到最新一筆資料,也可以用折線圖的方式來呈現歷史資料,馬上知道數值的變化趨勢喔!

 

後續也可以取得單一或多筆資料點的 JSON格式資料:取得 Mediatek Cloud Sandbox 的資料點 (JSON)

有了手機app,就可以設定當感測器值滿足我們所設定的條件時,自動推播訊息給您,或是

寄送email以及透過webhook機智來觸發其他的網路服務(IFTTT, LINE等)

更多照片請參考台北市自造教育示範中心的Facebook粉絲頁,本文部分照片經中心同意只用之,特此感謝。

 

相關文章:

[好用的物聯網開發工具] 使用Node-RED工具,讀取聯發科雲端感測器資料(MediaTek Cloud Sandbox資料通道數值)

大家好!我是偉和

繼上次成功在Node-RED中顯示「當下時間」,既然Node-RED是讓開發者有更方便的環境去撰寫關於物聯網應用的程式,在眾多的雲服務中,本篇選用Mediatek Cloud Sandbox(以下簡稱MCS)作為資料傳輸、讀取的對象。

本篇要教導各位如何透過Node-RED將MCS裡的資料通道數值讀取,並且顯示至Node-RED的Debug上。

作者/攝影  偉和
時間  依個人而訂
成本  無
難度  * * *
材料表
  • 個人電腦(無系統限制)

1. 從方塊區的input中將Inject拉至程式撰寫區,此方塊控制我們讀取MCS的頻率

2. 快速點擊timestamp二下設定重複執行的條件

3. 勾選「Inject once at start?」

4. 從方塊區function中將function拉至程式撰寫區

5. 快速點擊二下function
在Name中輸入「header」、在Function中輸入 (將紅字更改為自己MCS的deviceKey)

msg.headers = {'deviceKey' : ':Your deviceKey'};
return msg;

6. 將「Function(header)」的左邊點點與「timestamp」右邊點點相接起

7. 從方塊區function中將「http request」拉至程式撰寫區

8. 快速點擊二下http request將下列網址輸入至URL欄中(將紅字更改為自己MCS的deviceID及datachannel)

http://api.mediatek.com/mcs/v2/devices/:Your deviceID/datachannels/:Your datachannel/datapoints.csv

9.在「Name」輸入想要的名稱,本篇使用「request」,完成後按下Done鈕就會變成如下圖的樣子

10.將「header」右邊的點點與「request」的左邊點點相接起來

11.從方塊區output中將「http response」拉至程式撰寫區

12.將「request」右邊的點點與「http(http response)」的左邊點點相接起來

13. 為了觀看從MCS中讀取到的資料通道之訊,我們從方塊區output中將「debug」拉至程式撰寫區,並與「request」相接

14. 點擊 執行,就可以在除錯區看到讀取到的資訊了!

 

相關文章:

[LinkIt One 教學] 連接 LinkIt ONE 到 MediaTek Cloud Sandbox

[誰偷喝我的五十嵐?] 使用7688 Duo與MCS雲服務打造小偷偵測系統

本文說明如何使用 7688 Duo 搭配 Mediatek Cloud Sandbox 雲服務做一個小偷偵測系統

作者/攝影  曾吉弘
時間  3小時
成本
  • 7688 Duo 開發板 = $600
  • PIR 紅外線感測器 = $
  • Webcam (Logitech C170) = $600
  • USB OTG轉接線 = $100
難度  * * * * * * *
材料表
  • 可聯網的個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7) 只要能SSH登入 7688 來編寫 Node.js程式即可
  • 7688 Duo 開發板
  • PIR 紅外線感測器
  • Webcam (Logitech C170)
  • USB OTG轉接線


1.MCS端設定

  • 請登入Mediatek Cloud Sandbox,建立一個原型,裡面需有一個 Image Display channel,在此 channelId 為 image。這筆資訊需寫在 Node.js 程式中不可寫錯

  • 針對這個原型建立一個測試裝置,並記下 DeviceId, DeviceKey

2.7688 Duo 端設定

    • 將PIR感測器接好,訊號腳位接到D7,另外的Vcc 與 GND 就這是因為 7688 Duo 的 GPIO(0)與MCU D7連通,所以我可以用 pin.read(); 語法去讀取PIR是否被觸發。
    • 如果您有 7688 Duo 擴充板的話,就可以直接把 webcam 接上擴充板上的 USB host 接口,不然就需要額外的 USB OTG轉接線。

    • 請先將您的7688 Duo 連上外部網路,並SSH登入。請先執行以下指令來更新與安裝必要的函式庫:
      1. $ opkg update      (更新可用軟體)
      2. $ opkg install fswebcam  (拍攝照片軟體)
      3. $ npm install mcsjs   (Node.js的 mcs 函式庫)
      4. $ npm install bluebird –save  (另一個本範例所需的函式庫)
    • 使用 vim 或 nano 開啟一個 .js 檔並貼上以下內容,請把相關資訊改為您的資料。

                  $ nano imageupload.js


var m=require('mraa');
var mcs = require('mcsjs');   //匯入所需函式庫
var exec = require('child_process').exec;
var Promise = require('bluebird');
var fs = Promise.promisifyAll(require("fs"));

var pin=new m.Gpio(0);  //GPIO(0) -> D7
pin.dir(m.DIR_IN);          //設定該腳位為輸入模式

var myApp = mcs.register({
  deviceId: 'XXXXX',
  deviceKey: 'OOOOO',   //在此填入您MCS test device 的 ID, Key
  host: 'api.mediatek.com'
});


checkButton();

function checkButton() {
  var btn=pin.read();  //讀取PIR腳位狀態
  if(btn==0) {
     //一秒之內只能按一次,這個偵測頻率可自行修訂
    setTimeout(checkButton,1000);   
    console.log('button pressed');
    takeSnapshot();
  }
  else setTimeout(checkButton,100);  //每0.1秒讀取一次D7狀態
}

function takeSnapshot() {

    child = exec('fswebcam -i 0 -d v4l2:/dev/video0 --no-banner -p YUYV --jpeg 95 --save /tmp/test.jpg',
      function (error, stdout, stderr) {
      console.log('stdout: ' + stdout);
      console.log('stderr: ' + stderr);
      if (error !== null) {
        console.log('exec error: ' + error);
      }
      //讀取已拍照的圖檔
      fs.readFileAsync('/tmp/test.jpg')
        .then(function(data) {
        myApp.emit('Image','', new Buffer(data).toString('base64'));
      });
    });
}

 

 

 

3.檔案確定都好了之後,使用 Ctrl + x離開 nano (vim 的話是 :wq),使用以下語法執行:

              $ node imageupload.js

4.請在PIR感測器前方,如果一直觸發或一直無法觸發,請調整PIR感測器上的十字鏍絲來得到比較好的偵測效果(應該說…  PIR的效果不算太好,受不了的話可以改用更簡單的 pushbutton)。您就能在MCS test device頁面上看到有照片被上傳了,可以點選該資料頻道右上角->打開歷史資料,就可以看到到底有幾張照片。

5.在此有個有趣的事情值得大家關注一下,我們每次照相的檔名都是 test.jpg,所以您如果在多次拍照之後,到 /tmp 資料夾中看看,一樣只有一張 test.jpg,因為每次都會覆寫掉前一張照片。但是這不會影響MCS上傳的功能。

 

相關文章:

[LinkIt Smart 7688] MCS新功能:即時影像串流頻道

 

大家好~ 我是偉和,最近MediaTek Cloud SandBox 加入了兩種新的資料通道:Video StreamImage,本文要來介紹如何在 MCS 上即時觀看 7688 上的 webcam 影像,這樣不論您人在何方,只要連到 MCS 就可以看到影像,遠端影像監控功能就完成啦!

請注意,MCS 說明每個裝置的每月流量為 3GB,但如果每個裝置是指測試裝置的話…   那只要重新建立測試裝置就好啦,ㄎㄎ

0001

160224 物聯網IoT體驗夜

原文網址

Continue reading