#include "ThingSpeak.h"
#include <WiFi.h>
const int trigPin = 23; // Ultrasonic sensor trigger pin
const int echoPin = 22; // Ultrasonic sensor echo pin
const int redLedPin = 2; // Red LED pin
const int greenLedPin = 4; // Green LED pin
unsigned long channelNumber = 2511458; // ThingSpeak channel number
const char *writeAPIKey = "NYRG5SVBNKQC8T3S"; // ThingSpeak write API key
char ssid[] = "Galaxy S21 FE 5G 3524";
char pass[] = "1234567811";
WiFiClient client;
long duration;
int distance;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, LOW);
Serial.begin(9600);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
Serial.println("IP Address: ");
Serial.println(WiFi.localIP());
ThingSpeak.begin(client);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2; // Calculate distance in cm
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
if (distance <= 4) {
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, LOW);
} else {
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, HIGH);
}
// Update ThingSpeak channel every 10 seconds
ThingSpeak.setField(1, distance);
int response = ThingSpeak.writeFields(channelNumber, writeAPIKey);
if (response == 200) {
Serial.println("Data sent to ThingSpeak successfully!");
} else {
Serial.print("Error sending data to ThingSpeak. HTTP error code: ");
Serial.println(response);
}
delay(10000); // Delay 10 seconds before next update
}