#include <ThingSpeak.h>
#include <WiFi.h>
#define ledPin 14
#define CM_TO_INCH 0.393701
const int trigPin = 23;
const int echoPin = 22;
// defines variables
long duration;
float distance;
float distanceInch;
//sambungin ke wifi kita
const char *ssid = "Wokwi-GUEST"; //your network SSID (name)
const char *pass = ""; //your network password
WiFiClient client;
//thingspeak settings
unsigned long channel = 2030941; //your channel ID number** dari channel thingspeak yg telah kita buat
const char *apiKey = "WYPVM1GJ5IBRDEK4"; //your channel write API Key
//int lum, i = 0;
void setup() {
pinMode(ledPin, OUTPUT);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(115200);
delay(10);
//connect to WiFi
Serial.print("Connecting to: "); Serial.println(ssid);
WiFi.begin(ssid, pass);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected\n");
ThingSpeak.begin(client); //initialize ThingSpeak
}
void loop() {
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance cm
distance= duration*0.034/2;
distanceInch = distance * CM_TO_INCH;
if(distance<20){
digitalWrite(ledPin, HIGH);
delay(1000);
digitalWrite(ledPin, LOW);
delay(100);
}
else{
digitalWrite(ledPin, LOW);
}
// Prints the distance on the Serial Monitor
Serial.print("Distance (Cm): ");
Serial.println(distance);
// i++;
// lum = analogRead(34);
int x = ThingSpeak.writeField(channel, 1, distance, apiKey);
if(distance<20){
Serial.println("WARNING!");
Serial.println("distance(cm): " + String(distance));
}
else{
Serial.println("SAFE");
}
//tahan selama 1 detik, program tidak menjalankan yang lain
delay(2000);
}