#include<WiFi.h>
#include <HTTPClient.h>
const char * ssid = "Wokwi-GUEST";
const char * password = "";
String server = "http://maker.ifttt.com";
String eventName = "fire";
String IFTTT_Key = "geNrQhEwcOHJV1RpKpGLKjB5SDpIP1x0AMYDI1k2mMd";
String IFTTTUrl="https://maker.ifttt.com/trigger/{fire}/json/with/key/geNrQhEwcOHJV1RpKpGLKjB5SDpIP1x0AMYDI1k2mMd";
int led1=26;
int led2=27;
int led3=21;
int pir = 14;
int smoke=34;
int sensorThres = 400;
int pressure = 0;
int altitude = 0;
int value1;
String value2;
int value3;
float distance;
//size of bin in cm
void setup()
{
Serial.begin(115200); // Starts the serial communication
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT); // initalize LED as an output
pinMode(led3, OUTPUT); // initalize LED as an output
pinMode(pir, INPUT);
pinMode(smoke, INPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Viola, Connected !!!");
}
void sendDataToSheet(void)
{
String url = server + "/trigger/" + eventName + "/with/key/" + IFTTT_Key + "?value1=" + String((int)value1) + "&value2="+String((String)value2)+"&value3=" + String((int)value3);
Serial.println(url);
//Start to send data to IFTTT
HTTPClient http;
Serial.print("[HTTP] begin...\n");
http.begin(url); //HTTP
Serial.print("[HTTP] GET...\n");
// start connection and send HTTP header
int httpCode = http.GET();
// httpCode will be negative on error
if(httpCode > 0) {
// HTTP header has been send and Server response header has been handled
Serial.printf("[HTTP] GET... code: %d\n", httpCode);
// file found at server
if(httpCode == HTTP_CODE_OK) {
String payload = http.getString();
Serial.println(payload);
}
} else {
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
int val=0;
int val2=0;
void loop() {
val = digitalRead(pir);
val2=analogRead(pir); // read sensor value
if (val == HIGH) { // check if the sensor is HIGH
digitalWrite(led1, HIGH); // turn LED ON
digitalWrite(led2, HIGH); // turn LED ON
Serial.println("intruder detected");
String msg1="alert!... intruder... detected";
value2=msg1;
value1=val;
sendDataToSheet();
Serial.println("Email has been sent");
delay(60000);
}
if (val == LOW) { // check if the sensor is HIGH
digitalWrite(led1, LOW); // turn LED ON
digitalWrite(led2, LOW); // turn LED ON
Serial.println("intruder not detected");
delay(100);
}
int analogSensor = analogRead(smoke);
Serial.print("Pin d34");
Serial.println(analogSensor);
// Checks if it has reached the threshold value
if (analogSensor > sensorThres)
{
Serial.println("smoke detected");
digitalWrite(led3,HIGH);
String msg2=" alert!...fire... detected...Water turn on";
value2=msg2;
value3=analogSensor;
sendDataToSheet();
Serial.println("Email has been sent");
delay(60000);
}
if (analogSensor < sensorThres)
{
Serial.println("smoke not detected");
digitalWrite(led3,LOW);
}
}