#include <ESP32Servo.h>
#include <WiFi.h>
#include<ThingSpeak.h>
#include <NTPClient.h>
#include<time.h>
#define TRIG_PIN 23
#define ECHO_PIN 22
#define SERVO_PIN 26
#define DISTANCE_THRESHOLD 60
Servo servo;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
int servoPin123 = 3;
WiFiClient client;
unsigned long myChannelNumber = 2489652;
const char * myWriteAPIKey ="EMS8J1U7L7PKZPV7";
int statusCode;
WiFiUDP ntpUDP;
NTPClient timeClient(ntpUDP, "pool.ntp.org", 19800, 60000);
// variables will change:
float duration_us, distance_cm;
void setup() {
Serial.begin (9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
servo.attach(SERVO_PIN);
servo.write(0);
}
void wificonnection(){
Serial.println("Attempting to connect");
while (WiFi.status() != WL_CONNECTED) {
WiFi.begin(ssid, pass);
Serial.print(".");
delay(1000);
}
}
void channelupdation()
{
if(statusCode == 200) { //successful writing code
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
}
}
void loop() {
// generate 10-microsecond pulse to TRIG pin
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration_us = pulseIn(ECHO_PIN, HIGH);
distance_cm = 10 * duration_us;
if (distance_cm < DISTANCE_THRESHOLD)
servo.write(90);
else
servo.write(0);
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
Serial.println("<-------------------------------------->");
delay(500);
ThingSpeak.setField(1, distance_cm);
ThingSpeak.setField(2, duration_us);
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
channelupdation();
delay(1500);
}