#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
// WiFi credentials
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Google Script deployment URL
const char* googleScriptURL = "https://script.google.com/macros/s/AKfycbzShXXqf3RYHLsb4NM2NHX2cSkD1JOYYzTa9LhxWsGA-Ob9SgMRWVqY9ViNhbu5bh0H/exec";
// Sensor pins
const int trigPin = 5;
const int echoPin = 18;
const int buzzerPin = 15;
// Variables
long duration;
float distance;
void setup() {
Serial.begin(115200);
// Initialize pins
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(buzzerPin, OUTPUT);
// Initialize Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin("Wokwi-GUEST", "");
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print(".");
}
Serial.println("\nConnected to WiFi");
}
void loop() {
// Read distance from ultrasonic sensor
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.034) / 2;
Serial.print("Distance: ");
Serial.print(distance);
Serial.println(" cm");
// Trigger buzzer if distance is below threshold
if (distance < 10.0) {
digitalWrite(buzzerPin, HIGH);
} else {
digitalWrite(buzzerPin, LOW);
}
// Prepare data to send to Google Sheets
if (WiFi.status() == WL_CONNECTED) {
HTTPClient http;
http.begin(googleScriptURL);
http.addHeader("Content-Type", "application/json");
// Create JSON payload
StaticJsonDocument<200> doc;
doc["distance"] = distance;
String json;
serializeJson(doc, json);
int httpResponseCode = http.POST(json);
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println(httpResponseCode);
Serial.println(response);
} else {
Serial.print("Error on sending POST: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("WiFi not connected");
}
delay(5000); // Delay 5 seconds before next read
}