Skip to content

water level indicator with IoT #12008

Closed as not planned
Closed as not planned
@khrnsyfa

Description

@khrnsyfa
#define BLYNK_PRINT Serial
#define BLYNK_AUTH_TOKEN " "
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd_i2c(0x27, 16, 2); 
//#include <ESP32_Servo.h>
//Servo myServo;
//int servoPin = 18;
//int pos=0;
//int pos1=180;


// ULN2003 Motor Driver Pins
#define IN1 15
#define IN2 13
#define IN3 12
#define IN4 14
#define LEDRED 19 //pin bebas
#define LEDGREEN 21
int value = 0;
int echo = 5;
int trigger = 17;
int duration;
int dist;
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = " "; 
char pass[] = " "; 
#include <Stepper.h>
bool notif= false;
const int stepsPerRevolution = 2048;  // change this to fit the number of steps per revolution
Stepper myStepper(stepsPerRevolution, IN1, IN3, IN2, IN4);

BlynkTimer timer;
BLYNK_CONNECTED() {
  Blynk.syncVirtual(V2);
  Blynk.syncVirtual(V3);
  Blynk.syncVirtual(V4);
  Blynk.syncVirtual(V5);
 
}
BLYNK_WRITE(V2) {
  digitalWrite (LEDRED, param[0].asInt());
}
BLYNK_WRITE(V3) {
  digitalWrite (LEDGREEN, param[0].asInt());
}


BLYNK_READ(V4) {
  Blynk.virtualWrite(V4, dist);
}
void distSensor() {
   
  digitalWrite(trigger, LOW);
  delay(5);
  digitalWrite(trigger, HIGH);
  delay(5);
  digitalWrite(trigger, LOW);
  duration = pulseIn(echo, HIGH);
  dist = duration * 0.034 / 2;
  Blynk.virtualWrite(V4, dist);
  if (dist== 8 && notif == false ) {
    Blynk.notify("Your water is low, fill the tank");
    digitalWrite(LEDRED, LOW);
    digitalWrite(LEDGREEN, HIGH);
  }
  else {
    digitalWrite(LEDRED, HIGH);
    digitalWrite(LEDGREEN, LOW);
  }

  if (dist== 3 && notif == false ) {
   Blynk.notify("Your water is full, turn off the tap");
   digitalWrite(LEDRED, LOW);
    digitalWrite(LEDGREEN, HIGH);
  }
  else {
    digitalWrite(LEDRED, HIGH);
    digitalWrite(LEDGREEN, LOW);
  }
}

BLYNK_WRITE(V5) {
  myStepper.step(param.asInt());
}
 
void setup()
{
  
   lcd_i2c.begin  ();
  lcd_i2c.backlight();
  digitalWrite(LEDRED, HIGH);
  digitalWrite(LEDGREEN, HIGH);
  Serial.begin(9600);
  Blynk.begin(auth, ssid, pass, "  ", ); 
  pinMode(LEDRED, OUTPUT);
  pinMode(LEDGREEN, OUTPUT);
  pinMode(echo, INPUT);
  pinMode(trigger, OUTPUT);
  
  myStepper.setSpeed(15);
  
  Serial.begin(115200);
  // myServo.attach(servoPin);

  timer.setInterval(1000L, distSensor);
   //lcd_i2c.setCursor(2, 0);
// lcd_i2c.print("Water level");

  //timer.setInterval(1000L, servo_button1);
  //timer.setInterval(1000L, servo_button2);
}

void loop()
{
  lcd_i2c.setCursor(0, 0);
 lcd_i2c.print("Water level IoT");

  
  Blynk.run();
  timer.run();
 
 // lcd_i2c.setCursor(2, 0);
 //lcd_i2c.print("Water level");

  int u;
  lcd_i2c.setCursor(0, 1);
  lcd_i2c.print("Innovation of Industry 4.0");
  for (u = 0 ; u < 16; u++) {
    lcd_i2c.scrollDisplayLeft();
    //lcd.scrollDisplayRight();
    delay(500);
  }
}

Metadata

Metadata

Assignees

Labels

Type: InvalidOff topic for this repository, or a bug report determined to not actually represent a bug

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions