Smart Science IOT:Kit物聯網科學套件_使用IoT和Excel讓日期視覺化|奧斯丁國際有限公司 OURSTEAM Internationl
icon教學資源
2021/01/07

Smart Science IOT:Kit物聯網科學套件_使用IoT和Excel讓日期視覺化

使用IoT:kit透過ThingSpeak和IFTTT發出光線強度警報
 
使用IoT和Excel讓日期視覺化
我們的目標是使用micro:bit從感測器收集基本數據,並使數據在Excel中視覺化。
 
為此,將執行以下三個步驟:
  1. 對控制器編碼,收集感測器數據,並透過其內建的串行通訊端口傳送數據。
  2. 把micro:bit連接到PC的串行端口。
  3. 我們將在Excel中編寫一小段程序,從串行端口讀取數據到網格中。

從micro:bit到Excel

步驟一:對micro:bit進行編程
對micro:bit編碼是其中最簡單的事情。Microsoft實際上已經準備了一個以Web為基礎的開發環境(Microsoft是micro:bit的創始合作夥伴之一)。

您要做的就是瀏覽www.makecode.com,選用micro:bit作為開發設備,使用視覺化的「積木程式」編寫一段小程序。

為此實驗編寫的程式會從兩個可輕鬆使用的感測器(加速度計和光照水平)中收集數據,藉由串行通訊端口以每100毫秒的時間傳送一次感測器採樣。

示範編碼:


 
 

步驟二:將程式下載到micro:bit
現在要做的是將程序下載到Micro:Bit中。因此,請使用USB將micro:bit連接到個人電腦,會出現類似外接硬碟的圖示。

接著從MakeCode環境中下載HEX文件,並保存到設備中。幾秒鐘後程式會開始運行。
也可以從這裡下載:https://makecode.microbit.org/_cjvC4RU1CVUD

步驟三:與個人電腦連接
現在控制器已開始運作並發送數據,在嘗試匯入Excel之前,最好驗證一下個人電腦是否可確實看到傳入的數據流。因此您需要按照https://www.microbit.co.uk/td/serial-library上的說明操作。

基本上您需要做下列兩件事:
  1. 安裝驅動程序,使micro:bit作為串行端口「出現」在您的個人電腦上,可以在此處下載驅動程式
  1. 串連通訊終端模擬器必須用於測試。您需要配置正確的COM端口。在此環境中配置為COM3。我們假設Excel中的範例編碼是這樣,因此如果您的編碼不同,稍後則需要修改Excel編碼配置正確的端口。
 
完成此操作後,在模擬器中的數據流看起來像這樣:

如果數據來自終端模擬器,請至「設備管理器」選擇「端口」,找到「USB串行設備」。

單點右鍵查尋屬性,選擇端口設置,將第一個數據更改為「115200」。

點選「高級設置」,將「COM端口號」設定為「1」或「2」,點選確定。

輸入的數據流-光照水平和加速度
 
 
 

步驟四:在Excel中編程
現在已輸入了數據流,將其匯入Excel吧。電子表格包含兩個部分
  1. 用於與微控制器通訊的VBA代碼
  2. 基本的網格數據操作功能,用於分拆數據點並繪製成圖表。
在此可找到電子表格的副本:https : //techcommunity.microsoft.com,或在此處下載

當打開Excel副本時,會提示「The macro is forbidden」,點選「start macro」是很重要的步驟。

數據流無窮無盡,為了方便本實驗,我們將過濾收集到的最後30個數據樣本。

還有一點:從VBA中的串連通訊端口讀取數據時,最可靠的方法是逐字節讀取而不是整行讀取。還有其它可能會漏掉數據的情況(取決於通訊速度、VBA執行的速度等),這就是為什麼每行開頭都要寫入「D:」的原因。如果讀取的行不是以該行開頭,則該行將被視為垃圾數據而被忽略。


事不宜遲,以下是從VBA編碼中節錄的主循環:


此編碼段中有幾件事需要注意:
  1. 打開COM3:使用115,200 baud(Micro:Bit發送數據的速度)端口。
  2. 一次讀取一個字節,直到檢測到行尾(char(13))。
  3. 每當讀取一行時,它將被推入網格到固定列中的下一行。行號固定在2-31之間,簡化範例。
  4. 有個用於停止讀取的標誌,由停止鈕(來自另一個Macro)控制。
理解此編碼的最佳方法是在除錯模式下執行並逐步檢查,因此繼續下載範例並進行實驗吧!

現在我們已經可將數據匯入到Execel網格中並繪製了圖表。是時候使用正在收集的數據了!

為了保持通用性,VBA腳本按原始樣本將數據讀取到網格中,因此「E」列包含實際數據,而這些數據都是透過電線傳輸的。在我們的例子中,它是兩個數字,以逗號分隔。

因此,我們要做的第一件事是將其分成每行兩個不同的值:燈光水平和加速度值。我特意以這種方便閱讀的方式操作–使用FIND公式查找匯入數據中的「,」位置,接著使用NUMERVALUE和LEFT and RIGHT公式將字符串分開並將其轉換為兩個數值。

以下是的訊息是有關我用來分拆輸入數據字符串中的值的公式:

 
  • =FIND(",",E2,1):查找表格E2中第一個逗號的位置(其中包含逗號分隔值的原始字符串)。
  • =NUMBERVALUE(LEFT(E2,F2-1)):將字符串的左側移到逗號位置,將其轉換為數值,這個代表光線感測器的數值。Micro:Bit中的光線數值範圍為0到255。
  • =NUMBERVALUE(RIGHT(E2,LEN(E2)-F2)):與前面的公式類似,這裡僅使用右側數字,即加速度值。值可以在X、Y或Z軸上,也可以組合在一起。詳細說明在此。 
我另外還增加了1~30的固定「列」,因此圖表將會有X軸。

最後一部分為根據數值建立兩張圖表。在這兩個參數中,X軸是行號、Y軸是從感測器匯入的數據(光線或加速度)。看起來像下圖這樣:

步驟五:修改VBA代碼
  • 點選「View」選擇「macro」。
  • 選擇「StartBtn-clikc」並執行。
  • 為先前的端口值修改「COM」數值,此處的範例編碼為「2」。
  • 將Excel保存到右上角,並重新開啟。

最終成果-匯入的數據可即時視覺化!
 
  • 您現在所要做的就是點選「Start」,查看數據匯入並即時繪製圖表! 
../../_images/case_excel_07.jpg

 
如何適配HiveMQ平台
logo
iconiconiconiconicon
icon  電話:04-2375-3535
icon  傳真:04-2256-9949
icon  統編:90386785
icon  E-mail:service@oursteam.com.tw
icon  LINE ID:@oursteam
Inspire every child to create