#include <WiFi.h>
#include <ThingSpeak.h>
// WiFi setup
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
unsigned long myChannelNumber = 2388926;
const char *myWriteAPIKey = "A2KMB0D98TQ0TNF7";
int statusCode;
#define PIN_TRIG 26
#define PIN_ECHO 25
unsigned int level = 0;
void setup() {
Serial.begin(115200);
// WiFi mode setup
WiFi.mode(WIFI_STA);
ThingSpeak.begin(client);
pinMode(PIN_TRIG, OUTPUT);
pinMode(PIN_ECHO, INPUT);
}
void loop() {
// WiFi connection setup
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(PIN_TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(PIN_TRIG, LOW);
// Read the result:
int duration = pulseIn(PIN_ECHO, HIGH);
float waterLevel = duration/58; // Water level in centimeters
Serial.print("Water level: ");
Serial.print(waterLevel);
Serial.println(" cm");
// Write data to ThingSpeak
ThingSpeak.setField(1, waterLevel);
statusCode = ThingSpeak.writeFields(myChannelNumber, myWriteAPIKey);
if (statusCode == 200) {
Serial.println("Channel update successful.");
} else {
Serial.println("Problem Writing data. HTTP error code :" + String(statusCode));
}
delay(5000);
}