hi. this is my aquaponic code but i have some problem with 2 ultrasonic sensor where both of them cant read the value ( ultrasonic 1 = waterlevelSENSOR | ultrasonic 2 = foodlevelSENSOR) … can you check my code . any mistake ?
#include <SoftwareSerial.h>
SoftwareSerial DebugSerial(2, 3);
#define BLYNK_PRINT DebugSerial
#include <BlynkSimpleStream.h>
#include <SimpleTimer.h>
//#include <dht.h>
#include <LiquidCrystal.h>
LiquidCrystal LCDone(21, 22, 23, 24, 25, 26);
LiquidCrystal LCDtwo(28, 29, 30, 31, 32, 33);
LiquidCrystal LCDthree(34, 35, 36, 37, 38, 39);
const int WLTRIGPIN = 4;
const int WLECHOPIN = 5;
const int FLTRIGPIN = 6;
const int FLECHOPIN = 7;
const int AQUAPUMPPIN = 8;
const int FOODALERTPIN = 9;
long duration, distance;
long duration1, distance1;
WidgetLED AQUAPUMPLED(30);
WidgetLED FOODALERTLED(31);
char auth[] = "1f3c6399849144d6881ae751597b11a6";
//dht DHT;
SimpleTimer timer;
void setup()
{
DebugSerial.begin(9600);
Serial.begin(9600);
Blynk.begin(auth, Serial);
// dht DHT;
LCDone.begin(16, 2);
LCDtwo.begin(16, 2);
LCDthree.begin(16, 2);
pinMode(WLTRIGPIN, OUTPUT);
pinMode(WLECHOPIN, INPUT);
pinMode(FLTRIGPIN, OUTPUT);
pinMode(FLECHOPIN, INPUT);
pinMode(AQUAPUMPPIN, OUTPUT);
pinMode(FOODALERTPIN, OUTPUT);
timer.setInterval(1000, waterlevelSENSOR);
timer.setInterval(1000, foodlevelSENSOR);
}
void waterlevelSENSOR()
{
digitalWrite(WLTRIGPIN, LOW);
delayMicroseconds(2);
digitalWrite(WLTRIGPIN, HIGH);
delayMicroseconds(10);
digitalWrite(WLTRIGPIN, LOW);
duration = pulseIn(WLECHOPIN, HIGH);
distance = (duration/2) / 29.1;
Serial.print("WATER LEVEL: ");
Serial.println(distance);
if( distance >= 50 || distance <=0)
{
AQUAPUMPLED.off();
//Serial.println("WATER LEVEL IS OKAY");
digitalWrite(AQUAPUMPPIN, LOW);
LCDthree.print("PUMP2 OFF");
LCDthree.setCursor(1,0);
}
else
{
//Serial.println("WATER LEVEL IS lOW: AQUAPUMP ACTIVATED");
AQUAPUMPLED.on();
digitalWrite(AQUAPUMPPIN, HIGH);
LCDthree.print("PUMP2 ON");
LCDthree.setCursor(1,0);
}
}
void foodlevelSENSOR()
{
digitalWrite(FLTRIGPIN, HIGH);
delayMicroseconds(2);
digitalWrite(FLTRIGPIN, LOW);
delayMicroseconds(10);
duration1 = pulseIn(FLECHOPIN, HIGH);
distance1 = (duration1/2) / 29.1;
Serial.print("FOOD LEVEL: ");
Serial.println(duration1);
if( distance1 >= 50 || distance1 <=0)
{
//Serial.println("FOOD LEVEL IS OKAY");
FOODALERTLED.off();
digitalWrite(FOODALERTPIN, LOW);
}
else
{
//Serial.println("FOOD LEVEL IS LOW: SENDING NOTIFICATION");
FOODALERTLED.on();
digitalWrite(FOODALERTPIN, HIGH);
Blynk.notify("FISH FOOD LEVEL IS LOW");
}
}
void loop()
{
Blynk.run();
timer.run();
}