Tag Archives: MCS

[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