#include <WiFi.h>
#include <HTTPClient.h>
const int led = 18, trigPin = 5, echoPin = 19, ldrPin = 17;
float pingTime, targetDistance;
const int ldrThreshold = 500;
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* server = "http://api.thingspeak.com/update";
const char* apiKey = "7NXWEDLHKUGLU6PY";
void setup() {
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected!");
}
void loop() {
int ldr = analogRead(ldrPin);
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
pingTime = pulseIn(echoPin, HIGH, 30000);
targetDistance = (pingTime * 0.0343) / 2;
Serial.print("Distance (cm): ");
Serial.println(targetDistance);
Serial.print("LDR Value: ");
Serial.println(ldr);
if ((targetDistance <= 100) && (ldr < ldrThreshold)) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
String url = String(server) + "?api_key=" + apiKey +
"&field1=" + String(targetDistance) +
"&field2=" + String(ldr);
http.begin(url);
int response = http.GET();
if (response > 0) {
Serial.print("ThingSpeak Response: ");
Serial.println(response);
} else {
Serial.print("Send failed: ");
Serial.println(http.errorToString(response));
}
http.end();
}
delay(15000);
}