Tag Archives: lattepante

[LattePanda教學] lattepanda + Azure #2 上傳類比資料到Azure IoT hub

作者/攝影  曾吉弘
時間  3小時
成本  Lattepanda
難度  * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

請參閱 [LattePanda教學] lattepanda + Azure #1 環境建置] 本文將介紹如何上傳類比資料(電位計)到Azure IoT hub,並可在 Visual Studio 與 Power BI 中檢視資料。

環境建置

硬體

在此有兩種做法,使用 Lattepanda 感測器套件 中的 Analog Rotation Potentiometer sensor 接在 Lattepanda 上的 Gravity 4號接腳上,請參考下圖:

或採用一般的電位計,中央腳位接到 Lattepanda A0腳位,另外兩隻腳一端接 5V,一端接GND即可,完成如下圖:

Lattepanda Arduino

 

請上傳StandardFirmata Lattepanda Arduino 晶片中,別忘了 Board 要選 Arduino LeonardoCOM port 請根據 Windows裝置管理員為準,本程式中為 COM4

Lattepanda Windows端:

請用 git client 下載 azure iot sdk,請安裝 Windows git 工具之後在 powershell (cmd + r 之後搜尋 powershell )下執行以下指令把檔案下載到 lattepanda。在此我們預設的路徑皆為 C:\Users\Lattepanda:

git clone https://github.com/Azure/azure-iot-sdks.git

完成之後在其中的 /build 資料夾中找到 dev-setup.cmd,點擊兩下即可開始安裝程序。安裝完成之後可在同路徑下看到多了一個 node_modules 資料夾。

安裝Node.js所需套件

請在powershell 中執行以下指令,johnny-five serialport 這兩個是我們在 app.js 中會用到的套件:

npm install johnny-five serialport

 

建立Azure storage

Azure Storage

Azure Storage 是微軟所提供的雲端儲存方案,提供不同客戶在耐用性、取得性以及規模彈性上的各種需求,大到科學、金融用的數百TB以上資料,小到個人網站,都可在此完成。

請登入Azure portalNew -> Storage -> Storage account。並根據以下參數來建立 Storage account:

Name:自行取一個名稱,在此為 cavedu

Storage service ecryption: Disabled

Subscription: Free Trial (根據您帳號而定)

Resource group: Create new 或 USe existing 都可以,在此我建立一個新的: cavedu

location: 根據您所在地,在此我選 East Asia

建立完成後會看到以下畫面,請注意右下角的 URL 要記起來,後續與 Power BI 連接時會用到

Settings / Access Keys 下面的 key1 / key2也記起來,請任選一組輸入在後續要執行的程式中。

程式說明

Lattepanda Arduino

請確認 StandardFirmata 程式已經上傳 Lattepanda Arduino 晶片並執行,如果不確定的話可以再上傳一次或按下板子上的 Reset 鈕讓 Arduino 晶片重新執行程式。Arduino端程式一定要先執行,後續 app.js 去呼叫 Arduino COM port 時才可正常運作,否則就會顯示錯誤訊息。

Lattepanda Windows

請開啟power shell,切換到您解壓縮 azure-iot-sdk的資料夾下,(我們的路徑是 C:\Users\lattepanda),使用您喜歡的編輯程式建立一個名為 app.js 的檔案並貼入以下內容。您只要修改 accountNameaccountKeytableName這三筆資料即可,如下圖:

app.js

var azure = require('azure-storage');
var five = require('johnny-five');

var accountName = 'XXX'; // Enter your Azure storage account name
var accountKey = 'OOO'; // Enter your Azure storage account key
var tableName = 'MyLightSensorData'; // Name of your table to store the light sensor data

var arduinoPort = 'COM4';// Enter your Arduino Port

var tableService = azure.createTableService(accountName, accountKey);

if (CreateTable()) {
InitializeBoard();
}

// Create a table in Azure storage
function CreateTable() {
tableService.createTableIfNotExists(tableName, function (error, result, response) {
  if (error) {
    console.log(error);
    return false;
  }
});
return true;
}

// Initialize the Arduino board with Johnny-Five
function InitializeBoard() {
var board = new five.Board({ port: arduinoPort });

board.on('ready', function () {
  lightSensor = new five.Sensor({
    pin: "A0",
    freq: 30000 // 上傳間隔30秒
  });

  lightSensor.on('change', function () {
    InsertValue(this.value);
  });
});
}

function InsertValue(value) {
console.log('Value to insert: ' + value);

//建立一個實體,將光感測器值與日期存在資料表中
var entGen = azure.TableUtilities.entityGenerator;
var entity = {
  PartitionKey: entGen.String('Light'),
  RowKey: entGen.String(String(Date.now())),
  intValue: entGen.Int32(value),
  dateValue: entGen.DateTime(new Date().toISOString()),
};

//將實體插入Azure storage table
tableService.insertEntity(tableName, entity, function (error, result, response) {
  if (error) {
    console.log(error);
  }
});
}

 

執行與檢視資料

請在powershell 下切換到您的您解壓縮 azure-iot-sdk的資料夾下(我們的路徑是 C:\Users\lattepanda),執行以下指令來執行程式。 /XX 資料夾之後執行以下指令:

node app.js

即可看到以下畫面,由console中可看到程式已經陸續上傳多筆資料了。後續我們會在 VisualStudio 中檢視您所上傳的資料。

回到 Azure portal 的 storage acount,在左側選單中找到 Activity log選項,可以看到方才執行的動作。

在 Visual Studio中檢視資料

開啟VisualStudio時,請點選Connect to Azure並用您的Azure帳號登入。

在工具列的 View 中,點選 Server Explorer

登入您的 Azure 帳號之後,即可在 Storage 選項中找到您所建立的 Table 名稱(MyLightSensorData),點選即可看到資料喔!

在PowerBI中檢視資料( 選用)

Power BI 是微軟提供的商務分析工具套件,可用來分析資料及共用深入資訊。透過自行定義或預設的儀表板模組,使用者可以匯入、分析並取得資料中的重要資訊,協助決策。

登入Power BI 之後,您可以在此檢視 Azure storage 中的資料,就是上述我們所執行的程式結果。請點選下圖的 [取得 資料庫],並登入您的 Azure 帳號再輸入您的 server 路徑以及資料庫名稱,完成之後即可看到同一筆資料了

參考資料:

 

  1. 建議使用powershell,開啟方法:win+R快捷見,然後輸入powershell就可以開啟了
  2. 建議使用git,下載網址:https://git-scm.com/download/win

Git – Downloading Package

The entire Pro Git book written by Scott Chacon and Ben Straub is available to read online for free. Dead tree versions are available on Amazon.com.

git-scm.com

  1. 打開powershell,cd 到你想裝的地方,預設是直接在使用者的家目錄,然後輸入git clone https://github.com/Azure/azure-iot-sdks.git

Azure/azure-iot-sdks

azure-iot-sdks – SDKs for a variety of languages and platforms that help connect devices to Microsoft Azure IoT services

github.com

  1. 根據教學文它需要把其中node的submodule一併裝進來,所以輸入:git submodule update –init — node

這樣就搞定了

 

相關文章:

 

[LattePanda教學] lattepanda + Azure #1 環境建置

作者/攝影  曾吉弘
時間  3小時
成本  Lattepanda
難度  * * * * *
材料表
  • 個人電腦 (作業系統可用 Windows, Mac OSX 與 Linux,本範例使用 Windows 7)
  • Lattepanda Windows 單板電腦

本文說明如何在lattepanda上建置 Azure IoT 相關環境,包含:

  1. 下載相關檔案
  2. 安裝Visual Studio 2015
  3. 設定Azure portal 與 Storage acount

STEP 1 下載相關檔案

接下來要說明如何建置Microsoft Azure IoT SDK for Node.js的開發環境(您也可以採用C#來開發 Azure 相關應用,後續我們會專文介紹)請根據以下步驟操作:

  • 安裝 Node.js http://nodejs.org/,您可在 cmd 中用這個指令檢查 Node.js的版本,本專案需要 0.12.x 以上:node –version
  • 在cmd下輸入 node 進入 Node.js command prompt,切換到方才從 github 下載並解壓縮的 azure-iot-sdks /node 資料夾中。請執行 build\dev-setup.cmd 完成環境建置,如下圖:

STEP2 設定微軟IoT Hub

  接下來將介紹如何在 Azure 中建立一個 IoT hub,接著讓您的裝置與 IoT hub 完成介接,兩者即可通訊了。

建立一個IoT hub

  請由 Azure Portal 建立一個可用於您裝置(Lattepanda或其他聯網裝置)的IoT hub。

  1. 登入Azure Portal,如果尚未具有帳號的話請申請一個。
  2. 請點選左上角的[+ New] -> Internet of Things,由畫面右側找到Azure IoT Hub

3.這時需要新增訂閱帳戶,在此請先點選 Free Trial 為期一個月的免費試用方案,日後您可根據個人需求選擇合適的付費方案。請注意,Free trial 一樣須完成電話號碼與信用卡認證,但Free trial 不會向您收取任何費用。

4.New IoT Hub視窗中輸入相關訊息,打*者代表必填欄位,完成如下圖。

  • Name:幫您的IoT hub取個名字吧,系統會自動檢查您希望的名稱是否可用,以綠色勾勾表示。
  • Pricing and scale tier:使用預設的S1 – Standard 即可。
  • Resource group:您可建立新的資源團體或選擇既有的。請參考 Using resource groups to manage your Azure resources
  • Location :請選擇您所在地區即可。

5.IoT hub設定好之後請點選Create ,在此須等候一小段時間。完成之後即可在Azure portal 看到它,您可以自由更改 protal 上各元件的位置。

6.建立好IoT hub之後,點選它,記下右上角的 hostname URI(例如下圖的 lattepanda.azure-devices.net )之後點選左側選單的 Shared access policies.

7.在Shared access policy中,選擇iothubowner(代表我們需要 registry write, service connect 與 device connect 等最高權限),最後把最右側的 Connection string (HostName=lattepanda.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey=OOOXXX 這一大串) 記下來,後續會用到。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

請由此申請一個 Azure Storage Accout(https://azure.microsoft.com/en-us/documentation/articles/storage-create-storage-account/#create-a-storage-account  ,需登記信用卡,但在此不會收取任何費用)

IoT hub建立完成了,上一部的connection string 需搭配 iothub-explorer 或 Device Explorer工具來使用。這個字串可讓外部應用程式在IoT hub 上執行相關的管理動作,例如在 IoT hub 上新增裝置。

STEP3: 安裝Visual Studio

STEP4: 設定Azire Storage account

下一篇將告訴您如何將 Lattepanda 的類比腳位資料上傳到 Azure IoT hub,您可在這個腳位上使用電位計、光敏電阻或彎曲度電阻等類比元件。  

 

相關文章: