#include <WiFi.h>
#include <ThingSpeak.h>
// WiFi Credentials
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
// ThingSpeak Details
unsigned long myChannelNumber = 3030773;
const char *myWriteAPIKey = "8NP7I4J55NIRJQQ6";
WiFiClient client;
// Pin Definitions
#define LDRPIN 34
#define LED1 21
#define LED2 18
#define LED3 5
void setup() {
Serial.begin(115200);
pinMode(LDRPIN, INPUT);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
WiFi.mode(WIFI_STA);
WiFi.begin(ssid, pass);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi Connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
// Read LDR value
int ldrVal = analogRead(LDRPIN);
Serial.print("LDR Value: ");
Serial.println(ldrVal);
// LED Control
if (ldrVal > 1500) {
digitalWrite(LED1, HIGH);
digitalWrite(LED2, HIGH);
digitalWrite(LED3, HIGH);
Serial.println("LEDs ON");
} else {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("LEDs OFF");
}
// Send data to ThingSpeak
ThingSpeak.setField(1, ldrVal);
int statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (statusCode == 200) {
Serial.println("Channel update successful.");
} else {
Serial.print("Problem writing data. HTTP error code: ");
Serial.println(statusCode);
}
Serial.println("---------------------");
// ThingSpeak free account update interval
delay(15000);
}