โค้ต esp8266 + IFTTT และ Google Sheet

#define BLYNK_PRINT Serial    // Comment this out to disable prints and save space
#include <ESP8266WiFi.h>
#include <ESP8266WiFiMulti.h>
//#include <WiFiManager.h>  
ESP8266WiFiMulti wifiMulti;
//#include <Bridge.h>
#include <BlynkSimpleEsp8266.h>
#include <SimpleTimer.h> //Blynk
SimpleTimer timer;
#define WIFI_LED 13
//#define D1          12    // R1 output pin
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
const char* resource = "https://maker.ifttt.com/trigger/var1/with/key/7LnGrileCw2E47dOtlERO";
const char* server1 = "maker.ifttt.com";  
char auth[] = "7e5f198a50af4677852200ef5ade9dce";
char server[] = "128.199.173.118";
char ssid[] = "ArcHeR-OMEN";
//char ssid[] = "ArcHeR";
char pass[] = "Bb20072536";
char ssid1[] = "";
char pass1[] = "";
int port = 8080;
char _HIGH = LOW;
char _LOW = HIGH;
bool isFirstConnect = true;
int slider;
bool lock1 = false;
String textIn1;
String textIn2;
String textIn3;
char Relay1 = 12;
char Relay2 = 5;
char Relay3 = 4;
char Relay4 = 15;






BLYNK_CONNECTED() {
if (isFirstConnect) {
Blynk.syncAll();
//Blynk.notify("Device 2 Starting!!!!");
isFirstConnect = false;
Serial.println(String("แอพเริ่มทำงาน!!"));  // used for debugging
}
}

void CheckUserWiFi()
{
  String ssid1 = textIn1;
  String pass1 = textIn2;
  //char* f(String ssid1);
  //char* s(String pass1);
 


Serial.println(String("textIn1 : ")+ ssid1);  // used for debugging
Serial.println(String("textIn2 : " + pass1));  // used for debugging
//Serial.println(String("f : ")+ f);  // used for debugging
//Serial.println(String("s : " + s);  // used for debugging
 //wifiMulti.addAP(ssid, pass);
 //wifiMulti.addAP(copy1, copy2);
}

BLYNK_WRITE(V0) {
  textIn1 = param.asStr();  // Text Input Widget - Strings
  makeIFTTTRequest();
  delay(1000);
}
BLYNK_WRITE(V1) {
  textIn2 = param.asStr();  // Text Input Widget - Strings
   makeIFTTTRequest();
   delay(1000);
}

BLYNK_WRITE(V2) {
textIn3 = param.asStr();  // Text Input Widget - Strings
   makeIFTTTRequest();
   delay(1000);
}





void setup()
{
  Serial.begin(115200);
  Serial.println("\n Starting");
  //WiFi.begin(ssid, pass);
  if (lock1 == false){
  wifiMulti.addAP(ssid, pass);
  //wifiMulti.addAP(ssid1, pass1);
  Serial.println("SSID1");
  }else{
  wifiMulti.addAP(ssid1, pass1);
  Serial.println("SSID2");
  }
  //wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
  //wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
  Blynk.config(auth, server, port);
    Blynk.connect();   // for a local server requiring WiFi connection
  pinMode(Relay1, OUTPUT);
  pinMode(Relay2, OUTPUT);
  pinMode(Relay3, OUTPUT);
  pinMode(Relay4, OUTPUT);
  pinMode(WIFI_LED, OUTPUT);
  digitalWrite(Relay1, LOW);
  digitalWrite(Relay2, LOW);
  digitalWrite(Relay3, LOW);
  digitalWrite(Relay4, LOW);
  // Replace with your unique IFTTT URL resource
  
    

  Serial.println("Connecting Wifi...");
    if(wifiMulti.run() == WL_CONNECTED) {
        Serial.println("");
        Serial.println("WiFi connected");
        Serial.println("IP address: ");
        Serial.println(WiFi.localIP());
    }

makeIFTTTRequest();
  timer.setInterval(15000, reconnectBlynk); // check every 15 seconds if we are connected to the server
  timer.setInterval(10000L, CheckUserWiFi);
} 

void reconnectBlynk() // reconnect to server if disconnected, timer checks every 15 seconds
{                        
  if (!Blynk.connected()) {
    if(Blynk.connect()) {
      BLYNK_LOG("Reconnected");
      digitalWrite(WIFI_LED,LOW);
    } else {
      BLYNK_LOG("Not reconnected");
      digitalWrite(WIFI_LED,HIGH);
    }
  }
}

// Make an HTTP request to the IFTTT web service
void makeIFTTTRequest() {
 Serial.print("Connecting to ");
 Serial.print(server1);

 WiFiClient client;
 int retries = 5;
 while(!!!client.connect(server1, 80) && (retries-- > 0)) {
 Serial.print(".");
 }
 Serial.println();
 if(!!!client.connected()) {
 Serial.println("Failed to connect...");
 }

 Serial.print("Request resource: ");
 Serial.println(resource);
 
 String jsonObject = String("{\"value1\":\"") + textIn1 + "\",\"value2\":\"" + textIn2 + "\",\"value3\":\"" + textIn3
+ "\"}";

 client.println(String("POST ") + resource + " HTTP/1.1");
 client.println(String("Host: ") + server1);
 client.println("Connection: close\r\nContent-Type: application/json");
 client.print("Content-Length: ");
 client.println(jsonObject.length());
 client.println();
 client.println(jsonObject);

 int timeout = 5 * 10; // 5 seconds
 while(!!!client.available() && (timeout-- > 0)){
 delay(100);
 }
 if(!!!client.available()) {
 Serial.println("No response...");
 }
 while(client.available()){
 Serial.write(client.read());
 }

 Serial.println("\nclosing connection");
 client.stop();
}



void loop()
{
 if (Blynk.connected()) {   // to ensure that Blynk.run() function is only called if we are still connected to the server
    Blynk.run();
} 
timer.run();
 if(wifiMulti.run() != WL_CONNECTED) {

        Serial.println("WiFi not connected!");
        delay(1000);
    }
   
}