#include<ThingSpeak.h>
#include<WiFi.h>
#define trigger 26
#define echo 25
#define LOWLED 18
#define MIDLED 19
#define HIGHLED 21
#define MOTOR 27
unsigned int level = 0;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
WiFiClient client;
long myChannelNumber = 2695816 ;
const char * myWriteAPIKey = "0LSZ0KB6XS0OSTWE";
int statusCode;
void setup() {
Serial.begin(115200);
ThingSpeak.begin(client);
if(WiFi.status() != WL_CONNECTED)
{
Serial.print("Attempting to connect");
while(WiFi.status() != WL_CONNECTED)
{
WiFi.begin(ssid, pass);
Serial.print(".");
delay(5000);
}
}
pinMode(LOWLED,OUTPUT);
pinMode(MIDLED,OUTPUT);
pinMode(HIGHLED,OUTPUT);
pinMode(MOTOR,OUTPUT);
digitalWrite(LOWLED,HIGH);
digitalWrite(MIDLED,HIGH);
digitalWrite(HIGHLED,HIGH);
digitalWrite(MOTOR,LOW);
Serial.begin(115200);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
}
int Ultra_sonic(){
digitalWrite(trigger, HIGH);
delay(100);
digitalWrite(trigger, LOW);
float recieved= pulseIn(echo, HIGH);
float converted=(recieved*0.034/2)+1;
return(converted);
}
void loop() {
int level= Ultra_sonic();
Serial.println(level);
delay(1000);
// Start a new measurement:
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
// Read the result:
int duration = pulseIn(echo, HIGH);
Serial.print("level in CM: ");
Serial.println(duration / 58);
Serial.print("level in inches: ");
Serial.println(duration / 148);
level = duration / 58;
if (level < 100)
{
digitalWrite(LOWLED,LOW);
digitalWrite(MOTOR,HIGH);
digitalWrite(HIGHLED,HIGH);
digitalWrite(MIDLED,HIGH);
Serial.println("The motor is ON");
tone(27,5000);
}
else if ((level > 200) && (level <400))
{
digitalWrite(LOWLED,HIGH);
digitalWrite(HIGHLED,HIGH);
digitalWrite(MIDLED,LOW);
noTone(27);
}
else if (level >= 400 )
{
digitalWrite(HIGHLED,LOW);
digitalWrite(MIDLED,HIGH);
digitalWrite(LOWLED,HIGH);
digitalWrite(MOTOR,LOW);
Serial.println("The motor is OFF");
noTone(27);
}
ThingSpeak.setField(1, level );
statusCode = ThingSpeak.writeFields(myChannelNumber,myWriteAPIKey);
if(statusCode == 200) { //successful writing code
Serial.println("Channel update successful.");
}
else {
Serial.println("Problem Writing data. HTTP error code :" +
String(statusCode));
}
delay(1000);
}