#include <WiFi.h>
#include "ThingSpeak.h"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* thingSpeakApiKey = "99F2BQ6BXEU26MCM";
const int ThingSpeakChannelID = 2282512;
const char* server = "api.thingspeak.com";
const float GAMMA = 0.7;
const float RL10 = 50;
#define LDRanalog 34
#define LDRdigital 26
#define LED 18
WiFiClient client;
void setup() {
Serial.begin(115200);
pinMode(LED, OUTPUT);
connectToWiFi();
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
}
void loop() {
int nilaiDigital = digitalRead(LDRdigital);
int nilaiADC = analogRead(LDRanalog);
float voltage = nilaiADC * 5 / 4095.0;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.print("Nilai Digital = ");
Serial.println(nilaiDigital);
Serial.print("Nilai ADC = ");
Serial.println(nilaiADC);
Serial.print("Lux = ");
Serial.println(lux);
Serial.print("Tegangan = ");
Serial.println(voltage);
if (lux > 500) {
digitalWrite(LED, HIGH);
} else if (lux < 500) {
digitalWrite(LED, LOW);
} else {
digitalWrite(LED, LOW);
}
if (WiFi.status() == WL_CONNECTED) {
ThingSpeak.setField(1, lux);
int httpCode = ThingSpeak.writeFields(ThingSpeakChannelID, thingSpeakApiKey);
if (httpCode == 200) {
Serial.println("Data sent to ThingSpeak successfully.");
} else {
Serial.println("Error sending data to ThingSpeak. HTTP code: " + String(httpCode));
}
} else {
Serial.println("WiFi not connected. Reconnecting...");
connectToWiFi();
}
delay(15000);
}
void connectToWiFi() {
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi...");
}
Serial.println("WiFi connected.");
}