#include <DHTesp.h>
#include <ESP32Servo.h>
#include <LiquidCrystal_I2C.h>
#include <WiFi.h>
#include <ThingSpeak.h>
const int DHT_PIN = 15;
const int ServoPIN = 2;
DHTesp dhtSensor;
Servo myservo;
LiquidCrystal_I2C lcd(0x27, 16, 2);
WiFiClient client;
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
unsigned long myChannelNumber = 2342609;
const char* myWriteAPIKey = "HSLRUJWCWFVQR4E3";
const char* server = "api.thingspeak.com";
int temp;
int hum;
int pos = 0;
void setup() {
Serial.begin(9600);
dhtSensor.setup(DHT_PIN, DHTesp::DHT22);
myservo.attach(ServoPIN, 500, 2400);
lcd.init();
lcd.backlight();
WiFi.begin(ssid, pass);
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(100);
}
Serial.println("WiFi Connected!");
Serial.println(" ");
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to reconect");
while(WiFi.status() != WL_CONNECTED){
Serial.print(".");
delay(100);
}
Serial.println("\nConnected.");
}
lcd.setCursor(0,0);
lcd.print("ABE80");
lcd.setCursor(0,1);
lcd.print("EXER8");
temp = dhtSensor.getTemperature();
Serial.print("Temperature,C = ");
Serial.print(temp);
Serial.println(" ");
lcd.setCursor(8,0);
lcd.print("T,C = ");
lcd.print(temp);
hum = dhtSensor.getHumidity();
Serial.print("Humidity,% = ");
Serial.print(hum);
Serial.println(" ");
lcd.setCursor(8,1);
lcd.print("H,% = ");
lcd.print(hum);
if(temp >= 35 && hum >= 85){
for(pos = 0; pos <= 180; pos += 1){
myservo.write(pos);
delay(15);
}
for(pos = 180; pos >= 0; pos -= 1){
myservo.write(pos);
delay(15);
}
}
ThingSpeak.setField(1, temp);
ThingSpeak.setField(2, hum);
int x = ThingSpeak.writeFields(2342609, "HSLRUJWCWFVQR4E3");
if(x = 200){
Serial.println("Channel update successful.");
}
else{
Serial.println("Problem updating channel. HTTP error code" + String(x));
}
Serial.println(" ");
delay(20000);
lcd.clear();
}