#include "DHTesp.h"
#include <WiFi.h>
#include "ThingSpeak.h"
const int DHTPIN = 15;
const int RELAYPIN = 13;
const int LEDPIN = 27;
const char* Wifi_name = "Wokwi-GUEST";
const char* password = "";
const int channelNumber = 2499913;
const char* writeAPIKey = "YQRXHSTGHPVCOKEI";
const char* readAPIKey = "M54GUQC1UB3R9R1R";
const char* server = "api.thingspeak.com";
// Deklarasi objek
DHTesp dhtSensor;
WiFiClient client;
void setup() {
// Inisialisasi serial
Serial.begin(115200);
dhtSensor.setup(DHTPIN, DHTesp::DHT22);
pinMode(LEDPIN, OUTPUT);
pinMode(RELAYPIN, OUTPUT);
WiFi.begin(Wifi_name, password);
// Hubungkan ke WiFi
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
// Tampilkan informasi WiFi
Serial.println("WiFi connected");
Serial.println("local IP: "+ String(WiFi.localIP()));
// Inisialisasi ThingSpeak
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
TempAndHumidity data = dhtSensor.getTempAndHumidity();
ThingSpeak.setField(1,data.temperature);
ThingSpeak.setField(2,data.humidity);
int x = ThingSpeak.writeFields(channelNumber, writeAPIKey);
// Baca data dari ThingSpeak
float hasilbaca_t = ThingSpeak.readFloatField(channelNumber, 1, readAPIKey);
float hasilbaca_h = ThingSpeak.readFloatField(channelNumber, 2, readAPIKey);
Serial.println("Temp :"+ String(hasilbaca_t)+ "℃");
Serial.println("Humidity:"+ String(hasilbaca_h)+ "%");
if (data.temperature < 23) {
digitalWrite(LEDPIN, HIGH);
}else if (data.humidity < 60 && data.temperature > 27){
digitalWrite(RELAYPIN, HIGH);
}else if (data.temperature < 35) {
digitalWrite(RELAYPIN, HIGH);
digitalWrite(LEDPIN, HIGH);
delay(1000);
digitalWrite(LEDPIN, LOW);
delay(1000);
} else {
digitalWrite(LEDPIN, LOW);
digitalWrite(RELAYPIN, LOW);
}
// Periksa status pengiriman data
if (x == 200) {
Serial.println("Data sudah terkirim");
} else {
Serial.println("Data tidak terkirim"+String(x));
}
Serial.println("---");
delay(10000);
}