03 上傳資料到Google試算表

(2021/02/02 於嘉義HOTEL HI 新民店 )

前陣子取得一塊micro:bit新的物聯網模組DFRobot的WiFi IoT Module模組,想利用它將micro:bit的光線感測值及溫度感測值上傳到Google試算表,之前利用IFTTT積木完成了,今天想用HTTP的GET積木來做同樣的事,但發現 Google Apps Script (GAS)不接受get積木的上傳動作,還好最後找到了替代方法....

一、Google試算表的處理

  • 到Google雲端硬碟新增一個Google試算表

    • 再進入【指令碼編輯器】

    • 撰寫如下程式

    • 此部份是有兩種資料會上傳上來,A欄的變數是light(光線感測值),B欄的變數是temp(溫度感測值)

        • function doGet(e) {

        • //取得參數

        • var params = e.parameter;

        • var light = params.light;

        • var temp = params.temp;

        • //sheet資訊

        • var SpreadSheet = SpreadsheetApp.openById("1N26_Qj8i2flJrG7ZvVB56nj12FvNkc8RINpbmHNzKu8");

        • var Sheet = SpreadSheet.getSheets()[0];

        • var LastRow = Sheet.getLastRow();

        • //存入資訊

        • Sheet.getRange(LastRow+1, 1).setValue(light);

        • Sheet.getRange(LastRow+1, 2).setValue(temp);

        • //回傳資訊

        • return ContentService.createTextOutput("成功");

        • }

  • 上面藍色部份可從試算表的網址取得

    • 先存檔再部署,要記得先存檔才不會出錯

    • 選擇【網頁應用程式】的部署類型

    • 改成【所有人】都可以存取,後按【部署】,完成部署工作

    • 授予存取權

    • 選取自己的帳戶

    • 這個應用程式未經Google驗證,點擊【進階】

    • 會產生一個網址,並把它複製下來

  • 輸入網址後,出現【成功】兩字

    • 到Google試算表看到剛新增的資料,利用GET的方式上傳成功。

二、Makecode程式部份

  • 這次使用micro:bit V2 + DFRobot的WiFi IoT Module模組來上網

  • WiFi IoT Module模組的擴展積木,這次使用I2C介面

    • 使用I2C介面:https://github.com/DFRobot/pxt-DFRobot_WiFi_IoT_I2C

    • 使用UART介面:https://github.com/DFRobot/pxt-DFRobot_WiFi_IoT_UART

    • 官方積木涵蓋了常用的IOT積木

  • 採用上面GET積木來寫程式,如下:

      • 如果還要找一個平台來轉換,那是不是用IFTTT就好了,因為IFTTT也可以使用Webhooks來將資料上傳Google試算表

三、pushingbox的使用

    • 點擊Add a service

    • 加入CustomURL的服務

    • 輸入GAS網址及GET

    • 點擊 My Scenarios

    • 輸入Scenario名稱

    • 加入ACTION

    • 加入之前新增的服務

    • 並在空格輸入?light=$light$&temp=$temp$

    • 完成

  • 最後再利用MakeCode來寫程式

    • 按A鍵後,資料成功上傳上去了

    • 經過轉一個彎後,終於成功了

Postman

https://andy6804tw.github.io/2020/08/04/google-app-script-post/

https://www.wfublog.com/2017/01/google-apps-script-spreadsheet-write-data.html