#include <ESP32Servo.h>
#include <WiFi.h>
#include "ThingSpeak.h"
unsigned long myChannelNumber = 2336580;
const char * myWriteAPIKey = "WDZUSF0A4ZL0QJO1";
const char * myReadAPIKey = "L78T19PPLP1E3PBI";
const int servoPin = 18;
unsigned long lastTime = 30000;
int pos = 0;
float T = 0, H = 0;
Servo servo;
WiFiClient client;
void setup() {
Serial.begin(115200);
servo.attach(servoPin);
ThingSpeak.begin(client);
WiFi.begin("Wokwi-GUEST", "", 5);
while (WiFi.status() != WL_CONNECTED) {
delay(250);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
Serial.print("IP address: ");
Serial.println(WiFi.localIP());
}
void loop() {
if ((millis() - lastTime) > 30000) {
T = ThingSpeak.readFloatField(myChannelNumber, 1, myReadAPIKey);
H = ThingSpeak.readFloatField(myChannelNumber, 2, myReadAPIKey);
Serial.println("Temp: " + String(T, 2) + "°C");
Serial.println("Humidity: " + String(H, 1) + "%");
if ((T > 20) && (H > 50)) {
pos = map(H, 50, 100, 0, 180);
} else {
pos = 0;
}
Serial.print("<: ");
Serial.println(pos);
servo.write(pos);
lastTime = millis();
}
delay(1000);
}