#include <DHTesp.h>
#include <WiFi.h>
#include <ThingSpeak.h>
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
long channelnum = 2683758;
const char *apiKey = "ULS8EV5RCH3XKIHL";
int statuscode;
int rled=25, yled=13, gled=12;
int pir=19, ip=0, ac=0;
DHTesp Basha;
TempAndHumidity data;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
pinMode(rled, OUTPUT);
pinMode(yled, OUTPUT);
pinMode(gled, OUTPUT);
pinMode(pir, INPUT);
Basha.setup(15, DHTesp::DHT22);
}
void loop() {
// put your main code here, to run repeatedly:
if(WiFi.status() != WL_CONNECTED)
{
Serial.print("CONNECTING...");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nConnected.");
}
delay(2000);
ip=digitalRead(pir);
if(ip==1){
digitalWrite(rled, HIGH);
digitalWrite(yled, HIGH);
Serial.println("LIGHTS ARE ON");
Serial.println("DOORS ARE OPEN");
}
else{
digitalWrite(rled, LOW);
digitalWrite(yled, LOW);
Serial.println("LIGHTS ARE OFF");
Serial.println("DOORS ARE CLOSED");
}
data=Basha.getTempAndHumidity();
delay(1000);
Serial.println("TEMPERATURE");
Serial.println(int(data.temperature));
Serial.println("HUMIDITY");
Serial.println(int(data.humidity));
Serial.println("------------------------------------------");
if(data.temperature>25 && data.humidity>25 && data.humidity<65){
digitalWrite(gled, HIGH);
ac=1;
Serial.println("AC IS ON");
}
else{
digitalWrite(gled, LOW);
ac=0;
Serial.println("AC IS OFF");
}
ThingSpeak.setField(1, data.temperature);
ThingSpeak.setField(2, data.humidity);
ThingSpeak.setField(3, ip);
ThingSpeak.setField(4, ip);
ThingSpeak.setField(5, ac);
statuscode = ThingSpeak.writeFields(channelnum,apiKey);
if(statuscode == 200) { //successful writing code
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem Writing data. HTTP error code :" +
String(statuscode));
}
}