步驟 5
截至目前為止,我們已經可以把資料傳到雲端試算表了。但如果仔細檢查試算表寫入的資料,會發現寫入的時間並不均勻,而且寫入的時間間隔也不用那麼密集,所以還要做一些調整。
- 其實 Webduino 的感測模組,一般情況下是感測值有變化才會產生新的事件,也就是說,在以下的程式碼中,photocell.measure 裡面那個函數,是感測值有變化才會被呼叫。而呼叫之後,會把新的感測值寫入 photocell.detectedVal 中。
photocell.measure(function (val) {
photocell.detectedVal = val;
$('#lightvalue').text(val);
1
2
3
2
3
雖然 photocell.measure 被呼叫的時間不均勻,但 photocell.detectedVal 的值一直會被更新成最新的值。我們可以另外使用進階功能中的等待模組,裡面有一個每隔多少時間執行程序的積木來寫入資料。像下面這樣:
把它的 JavaScript 程式碼找出來。這邊 setInterval 有兩個參數,第一個是要執行的函數,第二個是每隔多少毫秒執行一次。
setInterval(function () {
myData= {};
myData.sheetUrl = 'https://';
myData.sheetName = '工作表1';
myData.column0 = "";
myData.column1 = "";
writeSheetData(myData);
}, 1000);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
把我們上一個版本中,寫入資料的程式碼部份取出來,改放到上面的 setInterval 的第一個函數中。記得要量測值的欄位改成 photocell.detectedVal,另外,把 1000 加長,例如改成 3000(每 3 秒寫入一筆資料)。
試著執行看看結果如何。從下表可以看出來,幾乎都是每隔 3 秒寫入一筆資料,只有一筆例外。(可能跟程式或網路的延遲有關?)