#include <WiFi.h>
#include<Arduino.h>
#include <ThingSpeak.h>
const char* ssid = "Wokwi-GUEST";
const char* pass = "";
const unsigned long myChannelNumber = 3043760;
const char* myWriteAPIKey = "7Q3AXO8MHZCVZ513";
int led = 18, trigPin = 5, echoPin = 19, ldr = 17;
float pingTime, targetDistance;
WiFiClient client;
void connectWiFi() {
Serial.print("Connecting to WiFi");
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected!");
}
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(ldr, INPUT);
pinMode(echoPin, INPUT);
connectWiFi();
ThingSpeak.begin(client);
}
void loop() {
if (WiFi.status() != WL_CONNECTED) {
connectWiFi();
}
int ldrValue = digitalRead(ldr);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
delayMicroseconds(15);
pingTime = pulseIn(echoPin, HIGH);
targetDistance = (pingTime * 0.0343) / 2;
Serial.print("Distance: ");
Serial.print(targetDistance);
Serial.println(" cm");
Serial.print("LDR Value: ");
Serial.println(ldrValue);
if ((targetDistance <= 100) && (ldrValue == 0)) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
ThingSpeak.setField(2, Light);
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);
}
delay(1000);
}