ARM mbed IoT 開發入門 (Part 4) - DIY 溫度感測裝置

準備工作

  1. 取得 ARM mbed 開發板,本文使用的 Arch Pro 是由 Seeed Studio 設計與生產的 ARM mbed IoT ethernet kit。
  2. 申請 wotcity.com 帳號。
  3. DIY 溫度感測裝置

DIY 溫度感測裝置

使用 Arch Pro 手作一個溫度感測裝置,需要準備以下零件:

  • Arch Pro 開發板
  • Base Shield
  • Grove Temperature(溫度感測器)
  • Grove - Universal 4 Pin 20cm Unbuckled Cable(杜邦線)
  • mbed WiFi Shield

以下是基本零件:

溫度感測裝置零件

七段顯示器僅作為本地測試使用,非必備。要讓 Arch Pro 上網,可直接連接 RJ45 乙太網路,或使用 WiFi 上網。要使用 WiFi 乙太網路,必須再安裝 mbed WiFi Shield:

WiFi Shield

組裝完成圖:

完成圖

使用本文範例,請使用杜邦線將溫度感測器,連接至 Base Shield 上的 A0 插槽。使用杜邦線連線溫度感測器與 Base Shield 時,要注意黑線是接地(GND)。Pin 腳在電路板上有印刷字體。

Step 1:匯入 ARM mbed 專案

依照以下步驟匯入範例:

  1. 點選 workspace 上方選單的 Import 選項
  2. 進入 Import Wizard 後,點選 Click here to import from URL.(如圖 3.2)
  3. 輸入專案網址 https://developer.mbed.org/users/jollen/code/Mokoversity_WoT_Wifly_Temperature/,如圖 3.3
  4. 匯入成功後,可以在 Program Workspace 看到 Mokoversity_WoT_Wifly_Temperature 專案
  5. 將專案展開後,可以找到 main.cpp 主程式
  6. 完成專案匯入

圖 3.2:Import Wizard

圖 3.2:Import Wizard

圖 3.3:輸入專案網址

圖 3.3:輸入專案網址

Step 2:使用 WiFi

前面的教學使用 RJ45 乙太網路,不過使用 WiFi 好像比較酷。所以這個範例將使用 Arch Pro + mbed WiFi Shield。根據 Step 1 匯入範例後,請開啟 main.cpp,找到以下程式碼:

WiflyInterface eth(D1, D0, D5, LED4, "<SSID>", "<Password>", WPA);  

修改為 WiFi 熱點名稱;將 修改為 WiFi 熱點密碼。例如:

WiflyInterface eth(D1, D0, D5, LED4, "jollenchen", "12345678", WPA);  

Step 3:取得 Device Name

既然都能推送即時的度數據了,不打造一個有點樣子的 Web App Frontend,怎麼樣都說不過去。以下暫時以 WoT.City 平台進行「實驗」;未來,這會換成自已架設的平台,到時就不需要 WoT.City 了。

http://wotcity.com/ 申請帳號並登入。依照以下步驟取得 Device Name:

  1. 點選 http://wotcity.com/account 頁面左邊的 Device Manager
  2. 點撃 Launch New Device 按扭
  3. 系統會建立一個新的裝置
  4. 從列表中的 Device Name (Physical Object) 欄位 Copy 裝置名稱,如圖 1.4

圖 3.4:取得 Device Name

圖 3.4:取得 Device Name

Step 4:修改 main.cpp

延續 Step 1,將 main.cpp 開啟後,找到以下程式片斷:

    /*
     * We use WoT.City Websocket channel service.
     * See: https://www.mokoversity.com/wotcity
     */
    Websocket ws("ws://wot.city/object/[Object Name]/send");
    while( !ws.connect() );
    led2 = 1;

修改 Websocket 的 URI,將 [Object Name] 替換為 Step 2 取得的 Device Name。例如:

    /*
     * We use WoT.City Websocket channel service.
     * See: https://www.mokoversity.com/wotcity
     */
    Websocket ws("ws://wot.city/object/5547870f4dd3e08d63000007/send");
    while( !ws.connect() );
    led2 = 1;

Step 5:開始 Data Push

更新 firmware 並啟動 Arch Pro 後,溫度感測器數據就會開始推送(Data Push)到 Internet。要知道目前的 Data Push 情況,可以使用 WoT.City 的監視看功能:

  1. 登入 http://wotcity.com/
  2. 點選 http://wotcity.com/account 頁面左邊的 Device Manager
  3. 在列表中找到所使用的 Device Name
  4. Status 欄位會切換為 Live,表示目前裝置已連上 Internet,如圖 3.6
  5. 點撃 Manage 欄位中的 Watch 按紐,即可看到即時的推送數據(JSON 格式的文件)

圖 3.6:裝置顯示為 Live

圖 3.6:裝置顯示為 Live

點撃 Manage 欄位中的 Live App 按紐,可以開啟這個裝置的 web app。

其它