#include <WiFi.h>
#include "ThingSpeak.h"
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// ThingSpeak channel details
unsigned long myChannelNumber = 3045102;
const char* WriteAPIKey = "83Q99SYMY95HI7EF";
WiFiClient client;
const char* SSID = "Wokwi-GUEST"; // For simulation
const char* PASSWORD = ""; // No password needed for Wokwi-GUEST
// Ultrasonic Sensor
const int trigPin = 17;
const int echoPin = 16;
// Variables
long duration;
float distanceCM;
void setup() {
Serial.begin(115200);
// Start wifi - 2 parameter (ssid, password)
WiFi.begin(ssid, password);
Serial.println("Connecting to Wifi.....");
//Coonect ESP32 & Wifi
while(WiFi.status() != WL_CONNECTED){
delay(500);
Serial.print(".");
}
// Connection Info
Serial.println("");
Serial.println(" WiFi Connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// Initialize ThingSpeak client
ThingSpeak.begin(client);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// Read distance
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCM = duration * 0.034 / 2;
// Display on Serial
Serial.print("Distance: ");
Serial.print(distanceCM);
Serial.println(" cm");
// Send to ThingSpeak
ThingSpeak.setField(1, distanceCM);
//Write to ThingSpeak
//2 parameters 1. channel #, 2. WAPIKey
int x = ThingSpeak.writeFields(myChannelNumber, WriteAPIKey);
if (x == 200) {
Serial.println("Data pushed successfully");
} else {
Serial.println("Push error: " + String(x));
}
Serial.println("---");
delay(15000);
}