Remy_Martin
(Permpol Thanapunnamas)
1
#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);
}
}