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