#include <WiFi.h>
#include <HTTPClient.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>
#define DHTPIN 15 // Pin data DHT22
#define DHTTYPE DHT22 // Tipe sensor DHT22
const char* ssid = "Wokwi-GUEST"; // SSID Wi-Fi
const char* password = " "; // Password Wi-Fi
const char* server = "https://api.thingspeak.com/update?api_key="; // URL Thingspeak
String apiKey = "LBJBRMIEPIZSA4ZJ"; // API Key Thingspeak
int ldrPin = 34; // Pin LDR
int redPin = 12; // Pin LED RGB merah
int greenPin = 13; // Pin LED RGB hijau
int bluePin = 14; // Pin LED RGB biru
float humidity; // Variabel kelembapan
float temperature; // Variabel suhu
float luminosity; // Variabel intensitas cahaya
float lux; // Variabel lux
DHT dht(DHTPIN, DHTTYPE); // Inisialisasi sensor DHT22
void setup() {
Serial.begin(115200); // Inisialisasi serial monitor
pinMode(ldrPin, INPUT); // Inisialisasi pin LDR sebagai input
pinMode(redPin, OUTPUT); // Inisialisasi pin LED RGB merah sebagai output
pinMode(greenPin, OUTPUT); // Inisialisasi pin LED RGB hijau sebagai output
pinMode(bluePin, OUTPUT); // Inisialisasi pin LED RGB biru sebagai output
dht.begin(); // Inisialisasi sensor DHT22
WiFi.begin(ssid, password); // Koneksi ke Wi-Fi
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("Connected to WiFi");
}
void loop() {
humidity = dht.readHumidity(); // Membaca kelembapan dari sensor DHT22
temperature = dht.readTemperature(); // Membaca suhu dari sensor DHT22
int ldrValue = analogRead(ldrPin); // Membaca nilai LDR
luminosity = (1023 - ldrValue) / 10.23; // Menghitung intensitas cahaya
lux = luminosity * 12; // Menghitung lux
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.print(" *C\t");
Serial.print("Luminosity: ");
Serial.print(luminosity);
Serial.print("\tLux: ");
Serial.println(lux);
String data = "field1=" + String(temperature) + "&field2=" + String(humidity) + "&field5=" + String(luminosity)+ "&field6=" + String(lux);
HTTPClient http;
http.begin(server);
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.POST(data);
http.end();
if (temperature > 35) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, HIGH);
digitalWrite(bluePin, LOW);
}
else (temperature > 40) {
digitalWrite(redPin, HIGH);
digitalWrite(greenPin, LOW);
digitalWrite(bluePin, LOW);
}