WFduino第26課資料存取

當scratch程式關閉後,原來使用中的資料也跟著不見了,資料無法的保存實在可惜。

WFduino運用擴充積木裡的檔案存取積木,可以將資料存在本機電腦中,也可以讀取本機電腦裡面的資料,加以運用。

資料存取格式可以同一列有許多欄位,方便儲存及應用。

線上版scratch資料也可以存在本機喔!

也可以文字檔案轉換試算表檔案,可以利用試算表的附加功能做出統計圖表或做其他的資料處理。

例如:

使用scratch擴充積木讀取LASS資料庫的資料,再將讀取的資料儲存在自己的電腦,方便日後作分析。
可以設定自動記錄的時間間隔,資料的詳細度可以自己決定。
也可以使用擴充積木讀取儲存在本機的資料,用scratch來處理資料。

其他感測器偵測到的資料當然也可以用相同的方法儲存與應用。

也可以讀取LASS資料庫裡其他監測站的資料做比較分析喔!

——————————-

首先要開啟WFduino離線版,然後將[雲端積木]打勾,再開啟範本(雲端/IO)。

一、存資料

第一個空格為要寫入的資料內容

第二個空格為檔案名稱,檔案格式為 [文字檔 ] ,檔案內定存放位置為放程式的資料夾,檔名可以加上路徑。

第三個選擇寫入的方式,Append:在下一行新增一筆資料;Write:覆寫原有檔案,原來的資料會不見。

1.[LASS設備編號…..],設定要讀取LASS設備

2.設定[時間]、[pm2.5]、[溫度]、[濕度]等變數的值為LASS設備讀取到的值。

3.[將資料(…)加到檔案(…)模式],將變數值存入檔案

4.等待60秒再重複記錄一次。(一般LASS資料大概一分鐘記錄一次)

注意:

1.寫入一次資料,就換一行。如果不同的資料要寫在同一列,需要加上 [ , ] 來做區隔,下次讀取資料時才能分辨。

2.讀取網路資料因為網路速度有異,最好加等待時間。

程式下載存資料.sb2

儲存範例檔案: LASS.txt,格式如下

二、讀取資料

讀取存在本機電腦中的文字檔,可以指定要讀取第幾列的第幾欄資料。

1.製作[time]、[pm]、[T]、[H]等清單來存放讀取資料,設定變數N來指定要讀取第幾筆(列)資料。

2.使用[delete(全部)of(time)],將原來(time)清單裡的資料刪除。[pm]、[T]、[H]也是同樣刪除資料。

3.[讀取檔案(d:LASS.txt)],選擇要讀取的文字檔名稱。

4.[設定變數N為0],設定變數N從0開始

5.[重複(筆數)次],重複讀取所有資料的次數

6.[將變數N改變1],從第一筆資料開始讀取

7.[移到第N筆資料的第1欄],準備讀取第1筆(列)資料的第1欄

8.[等待0.2秒],因為電腦速度太慢,資料會填錯清單位置,先等一下

9.[將(資料)加到(time)],將(第1筆(列)資料的第1欄資料)加到(time)清單

10.[移到第N筆資料的第2欄],準備讀取第1筆(列)資料的第2欄

11.[將(資料)加到(pm)],將(第1筆(列)資料的第2欄資料)加到(pm)清單

12.接著依序將第1筆(列)資料的其他欄資料,加到其他清單

13.然後[將變數N改變1],變成讀第2筆資料,一直到讀完所有筆(列)數的資料。

程式下載讀資料.sb2

三、畫出折線圖

將讀取的資料畫成折線圖,方便判讀。

在讀取資料的程式下面再加上畫圖程式。

[pm2.5]、[溫度]、[濕度]等3項資料,因此使用3個腳色,用3種顏色來表示。

範例程式只是簡單的示範使用資料的呈現方式。

程式下載:LASS畫圖.sb2

延伸:

加上標題、座標標籤、圖例,做成像下面的時間變化關係圖

圖片來源:http://airmap.g0v.asper.tw/site#LASS-WF_12977044

四、資料處理

文字檔案轉換試算表檔案,可以利用試算表的附加功能做出統計圖表或做其他的資料處理。

A、Google試算表

1.登入google雲端硬碟,新增一個Google試算表後,點選[檔案],[匯入]

2.點選[上傳],[從您的電腦中選取檔案],選擇之前儲存的[資料文字檔],[開啟]

3.[匯入]

4.轉換成試算表檔案完成。

B、Microsoft Excel試算表

1.新增一個Excel試算表後,點選[檔案],[開啟舊檔],[所有檔案],選擇之前儲存的[資料文字檔],[開啟]

2.選[分隔符號],[下一步]

3.選[逗點],[下一步]

4.選[日期],[完成]

5.轉換成試算表檔案完成。

轉換後的範例檔案LASS.xlsx

五、模擬捷運顯示站名及下一站

模擬捷運車廂,播報站名,螢幕顯示站名及下一站。

利用鍵盤按鍵來控制播放站名。

使用存取檔案功能,從[站名]文字檔案取出站名,到站時播報站名,並在螢幕上顯示站名及下一站。

建立[這一站站名]及[下一站站名]2個變數,方便在螢幕上顯示。

[讀取檔案(d:文湖線.txt)],準備讀取存在D磁碟根目錄下的站名資料

[循環(筆數)次],[新增項目(資料)(站名))],重複讀取站名資料,存到站名清單上。

[循環(筆數)次],等待按下鍵盤任一按鍵,依序將清單上的站名顯示在螢幕上,並讓電腦說出站名。

文湖線文字檔:文湖線.txt

程式下載:捷運站名廣播系統.sb2

延伸:

參考WFduino第31課JSON格式資料運用(http://blog.ilc.edu.tw/blog/blog/868/post/97509/677614)

從捷運公開資料網站中擷取捷運即時資料,在螢幕上顯示。

—————————

相關連結:

PM2.5環境監測超簡單(第二十四課)
http://blog.ilc.edu.tw/blog/blog/868/post/97509/652136

新DiFi課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/104089/678192

WFduino(Arduino)課程目錄
http://blog.ilc.edu.tw/blog/blog/868/post/97509/641433 

roc

宜蘭縣國小資訊小站

您可能也會喜歡…