#include <WiFi.h>
#include <ThingSpeak.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
WiFiClient client;
unsigned long myChannelNumber = 2728330;
const char * myWriteAPIKey = "BVRID7VTYVC2DDAL";
const int ldrPin = 36;
const int relayPin = 23;
const int trigPin = 5;
const int echoPin = 18;
int ldrValue = 0;
int threshold = 500;
long duration, distance;
void setup() {
Serial.begin(115200);
pinMode(ldrPin, INPUT);
pinMode(relayPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
digitalWrite(relayPin, LOW);
connectToWiFi();
ThingSpeak.begin(client);
}
void loop() {
ldrValue = analogRead(ldrPin);
Serial.print("LDR Value: ");
Serial.println(ldrValue);
// Ultrasonic sensor code
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
Serial.print("Distance: ");
Serial.println(distance);
if (ldrValue < threshold || distance < 100) {
digitalWrite(relayPin, HIGH);
} else {
digitalWrite(relayPin, LOW);
}
ThingSpeak.setField(1, ldrValue);
ThingSpeak.setField(2, distance);
int x = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (x == 200) {
Serial.println("Channel update successful.");
} else {
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
delay(20000);
}
void connectToWiFi() {
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
}