7.寫入Google試算表(三)

本程式套用新的函式HTTPSRedirect ,讓esp8266 不須透過第三方服務轉址直接寫入Google Sheet

函式庫下載 HTTPSRedirect

Google Apps Script方Code

function doGet(e) {

var params = e.parameter;

var data = params.data;

var SpreadSheet = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1AArKJnr5OzPvQMkhGTuRhmllu7HwIhJMoZRJnQJUAFI/edit#gid=0'); //此處填入Google試算表的網址

var Sheet = SpreadSheet.getSheetByName('1'); //此處填入試算表的標籤名稱

//var LastRow = Sheet.getLastRow(); //資料上舊下新

Sheet.insertRowBefore(1); //資料上新下舊

//寫入資料

data = data.split(',');

data.forEach(function(e,i){

//Sheet.getRange(LastRow+1, i+1).setValue(e); //(開啟資料上舊下新模式)

Sheet.getRange(1, i+1).setValue(e); //(開啟資料上新下舊模式)

});

return ContentService.createTextOutput(1); //接收成功以後回傳"1"(類似Tingspeak)

}

*註解

試算表的網址直接複製網址列的那一串

即可

Esp8266 方 Code

#include "ESP8266WiFi.h"

#include "HTTPSRedirect.h"

const char* ssid = "填入Wifi SSID";

const char* password = "填入Wifi 密碼";

const char* host = "script.google.com";

const char *GScriptId = "AKfycbx7ni19fQc1Gr6CCGjDKiSXQ9W2JKYloSodKv7yNP4df8jFWZMU"; // Google script ID*(請見後方註解)

const int httpsPort = 443;

int i = 0;

HTTPSRedirect* client ;

void setup() {

Serial.begin(115200);

Serial.print("Connecting to wifi: ");

Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {

delay(500);

Serial.print(".");

}

Serial.println("");

Serial.println("WiFi connected");

Serial.println("IP address: ");

Serial.println(WiFi.localIP());

client = new HTTPSRedirect(httpsPort);

client->setPrintResponseBody(true);

client->setContentTypeHeader("application/json");

client->connect(host, httpsPort);

Serial.print("Connecting to ");

Serial.println(host);

}

void loop() {

i++;

String url3 = String("/macros/s/") + GScriptId + "/exec?data=";

url3 += i; //你要傳送的第一筆資料

url3 += ",";

url3 += 2*i; //你要傳送的第二筆資料

Serial.println("GET Data");

if (client->GET(url3, host)){

Serial.println("GET SUCCESS");

}

delay(4000);

}

*註解

GScriptId 的 來源請在 Google APPS Script中,請看下圖:

把上面那個網址複製下來後,複製紅色的位置(每個專案的GScriptId不同)

https://script.google.com/macros/s/AKfycbx7ni19fQc1Gr6CCGjDKiSXQ9W2JKYloSodKv7yNP4df8jFWZMU/exec