Maker 不可不知的 「英特爾®XDK」 互連網解決方案

評論
評論

簡介

這篇文章主要詳述 2015 年 8 月 18 日至 20 日間位於加州舊金山的英特爾®開發研討會 (IDF15) 中,所發表的英特爾®物聯網 (IoT) 軟體開發套件 SFTL005。這份文件幫助開發者了解如何連接英特爾® Edison 平台,建造一個終端裝置間的物聯網解決方案,文中也陳述可應用於其他專案上的相關概念。其中包含一系列使用英特爾® Edison 平台的實做練習,讓開發者了解如何設定和使用英特爾® Edison 硬體和軟體環境、如何連接英特爾® Edison 平台至網路、整合與感測器的介面,以及如何傳送數據至雲端。同時也會教導開發者如何製作觸控監視應用軟體,讓開發者能遠距監控觸控感測器的狀態。

英特爾®互聯網軟體開發套件是一套完整的硬體和軟體的解決方案,幫助開發者遨遊物聯網,也幫助開發者實踐創新的專案。英特爾® Edison 開發平台是一個既小型又省電,專為原型設計製作、製造物聯網以及穿戴運算裝置所設計的強大運算平台。這個平台運用雙核心、雙線程 Intel® Atom™處理器系統單晶片至 500MHz,和 32-位元的 Intel® Quark 微控制器 100MHz,主打將無線網路和藍芽的連接合併在一起。

更多關於 英特爾® Edison 平台的資訊

英特爾® Edison 平台是建立於 Yocto 計畫的基礎之上。Yocto 計畫是一個開放資源合作計畫,提供開發者基礎系統範本、工具和方法來幫助開發者為嵌入式商品建立一個客製化的 Linux-based 系統。英特爾® Edison 平台用完整的 Linux 基礎計算機系統融合 Arduino 開發環境,允許開發者合併 Linux 系統的調用以及 Arduino 草圖中的操作系統服務。英特爾® Edison 平台是一個強力的控制器。開發者可以用 JavaScript 於 Intel® XDK, C/C++ 和 Eclipse、 Arduino IDE 開發他們的專案。還可以用 Wyliodrin、Python 於視覺化程式設計;或是如果您傾向使用命令行的環境,您也可以選擇在終端機開發專案。在這篇文章之中,我們會向您展現利用 Intel XDK 使用 JavaScript 去創造物聯網解決方案的過程,以及如何在物聯網裝置之中展開、執行和去除程式錯誤。

內容

  • 物聯網的關鍵要素
  • 硬體零件
  • 入門
  • 藉由更改設定而改變英特爾® Edison 平台
  • Seeed Studios Grove 入門套件加值版
  • 設置英特爾®函式庫物聯網版 (XDK IoT Edition)
  • 創造一個專案
  • 雲端
  • 利用模擬器製造一個觸控通知監控應用程式
  • 利用真實的移動裝置製造一個觸控通知監控應用程式

物聯網的關鍵要素

物聯網有四大關鍵要素:數據生產器、數據收集器、基於雲端服務和決策。數據生產器由感測器和促動器所組成。英特爾開發套件讓您輕鬆將感測器和促動器放入物聯網物件收集資訊。在裝置中感應到的資料會被傳送至基於雲端服務,然後傳輸到末端用戶。

硬體零件

在文件中條列的硬體零件如下:

  • 英特爾® Edison 計算模組
  • Arduino 擴充板
  • Grove 入門套件加值版
  • 兩個 MicroB 轉 Micro A 的 USB 線
  • 一個直流電源供應器

更詳盡教學於如何組裝英特爾 ® Edison 面板

ffig1
 圖片一:硬體圖示

入門

瀏覽英特爾® Edison 面板 軟體下載 頁面:. 下載最新的英特爾® Edison 面板和英特爾® Phone Flash Tool Lite 韌體。詳讀並安裝 英特爾® Phone Flash Tool Lite,更新英特爾® Edison 面板至最新韌體。讓我們來看看一些基本的步驟:

  1. 安裝微軟 Windows 的 64 位元安裝程式驅動軟體。此驅動軟體會安裝 Arduino IDE 軟體。
  2. 下載英特爾® Edison 板子最新韌體軟體 1 版。
  3. 下載並且安裝英特爾® Phone Flash Tool Lite。
  4. 用下載的韌體更新英特爾®Edison 平台。
  5. 設定序列終端機。

藉由更改設定而改變英特爾® Edison 平台

當您已經設定好序列終端機,您可以開始改造英特爾®Edison 平台。

  • 在英特爾®Edison 平台的控制頁面,打上 configure_edison --setup
  • 遵循設定提醒,更改面板名稱和 root 密碼。因為連接英特爾 XDK 需要使用者名稱和密碼,所以這個步驟不能夠省略。
fig2
   圖二:更改 Edison- 命令列

 

請確認自己的使用者名稱是獨一無二的。請不要使用 Edison 來當作您的使用者名稱,因為在實務上常常造成 mDNS 方面的問題。

fig3
圖三:命名裝置

 

更多詳細解說明 如何連接英特爾®Edison 平台至本地端的無線網路 .

  • 連接本地端的無線網路後,輸入:wpa_cli status
  • 確認連接狀態 已經完成 ,分發到一個 IP 位址
fig4
圖四:連接狀態

 

Seeed Studios Grove 入門套件加值版

Grove 入門套件加值版包含各式各樣基準的感測器和促動器。物聯網開發者可以都不必焊接,直接利用套件開發方案。套件包括多種基本輸入和輸入組件以及感測器。更多 介紹如何安裝 Grove 基本擴充板和如何連接 Grove 元件

設置英特爾®函式庫物聯網版 (XDK IoT Edition)

連結  XDK IoT Edition 下載、安裝並且連接英特爾 XDK 至英特爾 ®Edison 平台。此工具是免費的。英特爾 XDK 物聯網 Edison 允許開發者在英特爾的物聯網平台創造、測試、去除錯誤和執行應用程式,且平台提供可與感測器和促動器互動的範例程式。此外,平台也提供一系列的實體移動裝置,讓開發人員用來測試他們的應用程式。

創造一個新專案

您可以使用一個範本或是空白頁開始一個新的專案。這一部分會帶您理解如何製作一個簡單的光線感測器英特爾 XDK 專案的步驟。

fig5
圖五:開始一個新專案

 

創造一個空白範本,然後將其命名為 LightSensor。

fig6_0
圖 6:創造一個空白範本

 

Sensors 下載光線感測器的範例程式。瀏覽光線感測器的範例程式,

  • 於左欄下方的 Connection Type,選擇 AIO
  • 在右邊列表中選擇 Grove Light Sensor。
fig7
圖 7:於 Connection Type 中選擇感測器
  • 拷貝 Grove 光線感測器 JavaScript 範例程式,貼在 Light Sensor 專案中的 js
  • 連接英特爾®Edison 組件和電腦至同一個無線網路

英特爾®Edison 組件的無線網路和密碼必須在上列「藉由更改設定而改變英特爾® Edison 平台」的步驟中設定完成。

  • 若要改變無線網路,請於英特爾®Edison 平台的控制台
  • 若要恢復 IP 位址,請於英特爾®Edison 平台的控制台中輸入:wpa_cli status
fig8
圖 8:連結英特爾®XDK 至英特爾®Edison 組件

 

這個範例程式將光感測器當成類比輸入 AIO 腳位 0。簡單地連結光感測器至類比腳位 0。

fig9
圖 9:光線感測器硬體連接

 

利用英特爾®函式庫物聯網版 (XDK IoT Edition) 建造並上傳 LightSensor 專案。

fig10
圖 10:LightSensor 專案樣本

 

執行 LightSensor 專案。

fig11
圖 11:執行 LightSensor 專案。

雲端

有非常多物聯網可用的雲端應用程式。在這篇文章之中,我們會提到其中的 ThingSpeak 。 ThingSpeak 提供許多雲端應用程式,幫助物聯網建造連接到雲端的應用程式和發行連接到雲端的產品。

ThingSpeak 

ThingSpeak 是一個提供建造物聯網應用程式服務的平台。收集及處理即時數據、形象化數據至表格和圖表,有創造 ThingTweet 、 ThingHTTP* 、 TweetControl* 、 TimeControl* 、 React* 等插件和應用程式的能力是 ThingSpeak 的一大特點。

第一步是在 ThingSpeak 註冊帳號,然後創造一個新頻道。

fig12
圖 12:ThingSpeak- 新頻道

「頻道」是一個您的應用程式市集和復原在 ThingSpeak API 中任何種類的數據

的地方。每個頻道都有一個獨一無二的頻道 ID 。當應用程式從頻道讀取數據時需要識別頻道 ID 。一個頻道提供最多八個數據域。成立頻道之後, ThingSpeak 會刊登並處理數據,然後您的計劃會收回數據。如果您設定頻道為公開,其他人可以找到您的數據並且存取它。若您設定頻道為隱私,那只有使用者本人可以存取頻道。

下一步是命名您的數據域,讓您清楚數據應該放在哪個數據域。

fig13
圖 13:ThingSpeak- 成立一個新頻道

接下來,移至 API Keys 標籤,並且取得 APIwriteKey和「readKey」來寫入頻道。

fig14
圖 14:ThingSpeak-「writeKey」和「readKey」

手動使用 URL 編碼去改變數據域的數值是上傳數據最簡單的方法。若瀏覽視窗顯示結果為 0 ,代表系統在試圖傳送您的提交物時發生了錯誤。否則代表您的提交物成功了。上傳提案的「api_key」是圖 14 中顯示的 ThingSpeak 頻道的「writeKey」。

螢幕截圖 2015-12-01 19.25.19

上傳多個欄位的值:

螢幕截圖 2015-12-01 19.26.11

ThingSpeak 是一個開放資源的物聯網編碼應用程式。在串行終端機上安裝 thingspeakclient 組件,開始在英特爾®Edison 平台上使用 ThingSpeak :

fig15
圖 15:安裝 thingspeakclient 組件

 

現在您已經準備好開始用 ThingSpeakClient 編輯一個範例程式。

螢幕截圖 2015-12-01 19.28.23

預設處理每個頻道間的更新需求的逾時數值為真。若要關閉用戶端的逾時設定:

螢幕截圖 2015-12-01 19.29.05

預設每個頻道中更新的逾時數值是 15 秒。下列是一個例子教您如何將其設定成 20 秒。

螢幕截圖 2015-12-01 19.30.49

首先只用 ThingSpeak writeKey 或是 ThingSpeak readKey 和 writeKey 來依附頻道。選擇性的結果回呼 (callback) 會送回錯誤並且做出反應。

螢幕截圖 2015-12-01 19.31.58
範例程式 1:ThingSpeak –依附頻道
螢幕截圖 2015-12-01 19.33.37
範例程式 2:ThingSpeak- 更新頻道

下列是一個讀取數據的方法:

螢幕截圖 2015-12-01 19.34.23
範例程式 3:ThingSpeak- getLastEntryInFieldFeed()

ThingSpeak 範例 Sketch

下列的範例程式結合了圖 10 中提及的光線感測器的例子和 ThingSpeak 範例程式。此編碼讀取光線感測器的數值,然後將其上傳至 ThingSpeak。

螢幕截圖 2015-12-01 19.36.17
範例程式 4:使用 Twilio 範例傳送簡訊 光線感測器數據即時的經由頻道的欄位 3「Light」發佈至

ThingSpeak。

fig16
圖 16:ThingSpeak – 即時的光線感測器數值

ThingTweet

ThingTweet 應用程式連結您的 Twitter 帳號至 ThingSpeak,利用一個簡易的 API 傳送 Twitter 訊息。

若要連結 Twitter 帳號,

  • 登入 https://thingspeak.com/
  • 在 Apps 標籤中點選 ThingTweet,然後再點選 Link Twitter Account 以授權給 ThingSpeak 在 Twitter 帳號中的權限。
fig17
圖 17:ThingSpeak- 連結 Twitter 帳號

如果您沒有 Twitter 帳號,請於 https://twitter.com 註冊,並授權給應用程式。

fig18
圖 18:授權給應用程式

現在您可以藉由通過 Twitter 使用者名稱和下列的 Tweet 訊息在 updateChannel() 中傳送 Twitter 訊息。

螢幕截圖 2015-12-01 19.40.23
範例程式 5:ThingSpeak -- getLastEntryInFieldFeed()
螢幕截圖 2015-12-01 20.02.05
圖 19:從 UpdateChannel() 發送的 Tweet 訊息

ThingHTTP

ThingHTTP 應用程式允許您經由 HTTP 指令連接事物和網路服務。ThingHTTP 的方法有 GET、 POST、PUT 和 DELETE。Twilio 也是一個簡訊和電話的雲端溝通平台。Twilio 也支援 HTTPs 的方法,且它也能夠依英特爾®Edison 平台連接 ThingHTTP 應用程式。下列是一個使用 Twilio 藉由 ThingHTTP 應用程式傳送一封簡訊的例子。

註冊 Twilio,點選 how API Credentials 取得 Twilio ACCOUNT_SID 和 AUTH_TOKEN 準備開始。

  • 傳送簡訊 URL: https://api.twilio.com/2010-04-01/Accounts/Twilio_ACCOUNT_SID/SMS/Messages ,撥 API 電話 https://api.twilio.com/2010-04-01/Accounts/Twilio_ACCOUNT_SID/Calls
  • HTTP Auth Username: Twilio ACOUNT_SID
  • HTTP Auth Password: Twilio AUTH_TOKEN
  • Method: POST
  • Body: “From” 是 Twilio 電話號碼, “To” 是接收簡訊的電話號碼,而 “Body” 是簡訊的內容
fig20
圖 20:製作 Twilio* SMS ThingHTTP*應用程式

TweetControl

TweetControl 聽取來自 Twitter 上的回覆進而做出動作。在以下的例子之中,TweetControl 聽到觸發文字「cool」後,執行 ThingHTTP「Twilio SMS」動作。

  • Twitter Account:Twitter 帳號中的使用者名稱。如果在 Anonymous TweetControl 欄中打勾,每個人都可以觸發您的 TweetControl
  • Trigger: 意謂著 Twitter 訊息中的關鍵字眼,用來觸發 TweetControl 開始處理工作。
  • ThingHTTP Action:選擇執行的 ThingHTTP 指令。
fig21_0
圖片 21:製作一個 TweetControl*應用程式

現在您已將 ThingHTTP 和 TweetControl* 設定完成,您可以從您的 Twitter 帳號傳送一個 Tweet 訊息。 Tweet 的架構是利用關鍵字過濾法來觸發的。為了讓 TweetControl 能夠順利執行,在您的 Tweet 訊息中包含了關鍵字過濾法。

Tweet 關鍵字為:

  • #thingspeak
  • thingspeak
  • #tweetcontrol
  • Tweetcontrol

Tweet 結構:

螢幕截圖 2015-12-01 20.07.22
螢幕截圖 2015-12-01 20.08.35
圖 22:Tweet 訊息範例

在 Tweet 訊息中發出“#thingspeak IntelEdison is so cool!”之後,TweetControl 會被觸發文字 “cool” 所觸發,然後就會引起 wilio SMS ThingHTTP 寄發“Hello Intel Edison”簡訊到您的移動裝置。

fig23
圖 23:移動裝置- 收到來自 Twilio 的簡訊

TimeControl

TimeControl 也執行 ThingHTTP 的指令,但是 TimeControl 會遵照已設定好的時間點和行事曆自動執行指令。創造一個新的 TimeControl,依照下列步驟填入表格中:

  • Name: TimeControl 的名稱
  • Date and Time: 選擇 TimeControl 執行的日期和時間
  • Action: 在此例之中,選擇 ThingHTTP 應用程式,然後選擇執行 ThingHTTP Twilio 簡訊指令
fig24
圖 24:製作 TimeControl

當 TimeControl 的時間觸發,Twilio 簡訊 ThingHTTP 應用程式會被執行並且傳送“Hello Intel Edison”到我們的移動裝置,就如圖 23 所顯示的一樣。

React

React 執行 ThingHTTP 的指令,或是當數據在我們的 ThingSpeak 頻道中遇到了特定的情況下傳送 Thingweet 訊息。瀏覽 http://community.thingspeak.com/documentation/apps/react/ ,其中教您如何使用 ThingTweet 製作一個光線 React。當光線數值低於 6 時,光線 React 會傳送“Your light is dim”(您的光線太昏暗了) 簡訊。

fig25
圖片 25:製作一個光線 React 應用程式

利用模擬器製造一個觸控通知監控應用程式

英特爾函式庫物聯網版 (XDK IoT Edition) 允許我們使用 HTML5 、 CCS 、 JacaScript 創造一個 Codova 應用程式以監控 Grove 感測器。這個應用程式可以用模擬器,或是真實的移動裝置來測試。我們會建造一個以無線方式接收數據的觸控通知監控應用程式。若觸控感測器被觸摸,感測器會無線通知使用者。此應用程式以 Grove 觸控感測器讀取觸控動作,並且會改變在裝置上的圈圈的顏色。

  • 瀏覽在左側的 Start a New Project,並在 Internet of Things Embedded Application section 欄中點選 Template,以觀看可用的樣板。
  • 選取 Touch Notifier,並繼續製作新專案
fig26
圖 26:製作物聯網- 嵌入式應用程式觸控通知樣板
  • 連接觸控感測器至 Grove Shield 的標籤 D2 插孔;連接 Buzzer 感測器至 Grove Shield 的標籤 D6 插孔
  • 連接英特爾 XDK 至英特爾®Edison 平台,然後在物聯網裝置建立並執行 Touch Notifier 應用程式
fig27
圖 27:建立一個物聯網嵌入式應用程式 Touch Notifier
  • 因為 Touch Notifier 應用程式是於通訊埠 1337 以 io 連接 HTTP 服務,請確保在執行應用程式之前安裝好 socket.to 組件。
  • 記下通訊埠的號碼,您在稍後的圖 30 中會使用到。
fig28
圖 28:安裝 socket.io 組件
  • 瀏覽左側的 HTML5 Companion Hybrid Mobile for Web App,點選 Samples and Demos 後,再點選 General,建立一個 Apache Cordova*應用程式。
  • 點開 HTML5 + Cordova 的標籤,就可瀏覽範例
  • 點選 Touch Notifier Companion App,就可製作應用程式
fig29
圖 29:建立一個 Apache Cordova* Touch Notifier 應用程式

您現在已經到 Cordova Touch Notifier 專案頁面。

  • 點選 Emulate,然後在左上角的列表中選擇移動裝置。預設值是 Motorola 的 Droid 2。
  • 鍵入英特爾®Edison 面板的 IP 位址,連接 1337 號通訊埠後點選 Submit。在英特爾®Edison 平台的控制台鍵入“wpa_cli status”,可以檢索英特爾®Edison 面板的 IP 位址。若要搜尋通訊埠號碼,請往回看圖 27-建立一個物聯網嵌入式應用程式 Touch Notifier。注意:英特爾®Edison 平台必須和電腦連接同一個當地端的無線網路。
fig30
圖 30:英特爾®Edison 平台 IP 位址和通訊埠號碼

如果有一個跳出視窗顯示“Connection Error! Server Not Available”,請確認物聯網的嵌入式應用程式的觸控感測器的應用程式還在執行狀態中。現在觸碰觸控感測器,看看裝置的圓圈顏色轉綠,聽聽看 Buzzer 感測器發出的嗡嗡聲。

fig31
圖 31:在模擬器中執行 Apache* Cordova Touch Notifier 應用程式

利用真實的移動裝置製造一個觸控通知監控應用程式

若要在一個真實的移動裝置 (如手機、平板電腦或是蘋果 iPad) 上執行 Cordova 應用程式,

  • 從 Google Play、Window Store 或是蘋果 AppStore 下載並安裝英特爾® App Preview 應用程式
  • 在英特爾 XDK 中轉換成 Test 標籤頁面,然後點選 I have installed app preview
fig32_0
圖 32:英特爾® App Preview 安裝確認

若顯示以下的訊息,請點選 Sync 以同步測試服務。

fig33
圖 33:顯示與測試服務同步的彈出式視窗

為了可以互通有無,移動裝置、電腦和英特爾®Edison 平台必須連結同一個當地端無線網路。

  • 在移動裝置中打開英特爾® App Preview,轉到 ServerApps 頁面,然後選取 Touch Notifier 應用程式並執行。
  • 使用英特爾®Edison 平台 IP 位址以及 1337 號通訊埠登入。若訊息顯示“Connection Error! Server Not Available”,請確認物聯網嵌入式應用程式的觸控感測器是否還有運作。
fig34
圖 34:英特爾® App Preview- 選取一個專案

登入成功後,Touch Notifier 應用程式執行如同以下狀態。

fig35
圖 35:在真實的移動裝置上執行 Touch Notifier 應用程式

總結

在這篇文章之中敘述了如何設定   英特爾®Edison 平台,開始在 ThingSpeak 雲端服務中接合感測器和通訊數據。瀏覽 https://software.intel.com/en-us/iot/hardware/sensors ,試試在 Grove 入門套件加值版的不同感測器並體驗更多的感測器。這篇文章也展現了如何創造一個自動監控觸控感測器的觸控監控應用程式。想想看您想要創造什麼,然後體驗、享受英特爾®Edison 平台的力量。

參考

 

關於作者

Nancy Le 和 Whitney Foster 都是在英特爾公司的軟體和服務小組工作的軟體工程師,致力於 Intel® Atom™ processor scale-enabling 專案。

 

歡迎加入「Inside」Line 官方帳號,關注最新創業、科技、網路、工作訊息

好友人數

精選熱門好工作

客服服務品質稽核專員

樂購蝦皮股份有限公司
臺北市.台灣

獎勵 NT$20,000

(Backend)Senior Software Engineer

ShopBack 回饋網股份有限公司
臺北市.台灣

獎勵 NT$20,000

後端工程師

AsiaYo.com
臺北市.台灣

獎勵 NT$20,000

評論