#include <WiFi.h>
#include <WiFiClient.h>
#include "ThingSpeak.h"
const char* WIFI_NAME = "Wokwi-GUEST";
const char* WIFI_PASSWORD = "";
const int myChannelNumber = 2502965;
const char* myApiKey = "BYX3FXOM1GG7LX9";
const char* server = "api.thingspeak.com";
const int triggerPin = 27;
const int echoPin = 25;
const int potentiometerPin = 17;
WiFiClient client;
void setup() {
Serial.begin(115200);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("Connected to WiFi");
ThingSpeak.begin(client);
}
void loop() {
long duration, distance;
float voltage;
// Ultrasonic sensor
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
distance = (duration * 0.034) / 2;
// Potentiometer
voltage = analogRead(potentiometerPin) * (5.0 / 4095.0);
// Print values to Serial Monitor
Serial.print("Distance: ");
Serial.print(distance);
Serial.print(" cm\tPotentiometer Voltage: ");
Serial.print(voltage);
Serial.println(" V");
// Send values to ThingSpeak
ThingSpeak.setField(1, distance);
ThingSpeak.setField(2, voltage);
int x = ThingSpeak.writeFields(myChannelNumber, myApiKey);
if (x == 200) {
Serial.println("Channel update successful.");
} else {
Serial.println("Problem updating channel. HTTP error code " + String(x));
}
delay(2000); // Update interval
}