#include <Servo.h>
#include"DHTesp.h"
#include<ThingSpeak.h>
#include<WiFi.h>
#define TRIG_PIN 4
#define ECHO_PIN 2
#define SERVO_PIN 26
#define DISTANCE_THRESHOLD 250
Servo servo;
float duration_us, distance_cm;
float duration;
long dis;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long myChannelNumber = 2117974;
const char*myWriteAPIKey = "XEA53209YB12ZY8Z";
int statusCode;
void setup() {
Serial.begin (9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
servo.attach(SERVO_PIN);
servo.write(0);
ThingSpeak.begin(client);
WiFi.mode(WIFI_STA);
}
void loop() {
if(WiFi.status() != WL_CONNECTED){
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED){
WiFi.begin(ssid,pass);
Serial.print(".");
delay(5000);
}
Serial.println("\nconnected.");
}
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
duration_us = pulseIn(ECHO_PIN, HIGH);
distance_cm = 0.017 * duration_us;
if (distance_cm < DISTANCE_THRESHOLD)
servo.write(90);
else
servo.write(0);
Serial.print("distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
delay(500);
Serial.println("Distance: "+String(distance_cm));
delay(10);
Serial.println("__________________");
delay(1000);
ThingSpeak.setField(1,String(distance_cm));
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode == 200){
Serial.println("channel updated");
} else {
Serial.println("problem in updating");
String(statusCode);
}
delay(15000);
}