#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define SensorPin A0
#define Offset 0.00
unsigned long int avgValue;
#define TdsSensorPin A1
#define VREF 5.0
#define SCOUNT 30
int analogBuffer[SCOUNT];
int analogBufferTemp[SCOUNT];
int analogBufferIndex = 0, copyIndex = 0;
float averageVoltage = 0, tdsValue = 0, temperature = 25;
int led1 = 2;
int led2 = 3;
void setup()
{
pinMode(13,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(TdsSensorPin, INPUT);
Serial.begin(115200);
led();
}
void loop()
{
pHsensor();
ECsensor();
}
void led()
{ lcd.init();
lcd.clear();
lcd.backlight();
lcd.setCursor(3, 0);
lcd.print("WELCOME TO");
delay(2000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("Smart farm");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Staring Work.");
delay(1000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("Staring Work.");
delay(100);
lcd.setCursor(0, 1);lcd.print("*");delay(100);
lcd.setCursor(1, 1);lcd.print("*");delay(100);
lcd.setCursor(2,1 );lcd.print("*");delay(100);
lcd.setCursor(3, 1);lcd.print("*");delay(100);
lcd.setCursor(4, 1);lcd.print("*");delay(100);
lcd.setCursor(5, 1);lcd.print("*");delay(100);
lcd.setCursor(6, 1);lcd.print("*");delay(100);
lcd.setCursor(7, 1);lcd.print("*");delay(100);
lcd.setCursor(8, 1);lcd.print("*");delay(100);
lcd.setCursor(9, 1);lcd.print("*");delay(100);
lcd.setCursor(10, 1);lcd.print("*");delay(100);
lcd.setCursor(11, 1);lcd.print("*");delay(100);
lcd.setCursor(12, 1);lcd.print("*");delay(100);
lcd.setCursor(13, 1);lcd.print("*");delay(100);
lcd.setCursor(14, 1);lcd.print("*");delay(100);
lcd.setCursor(15, 1);lcd.print("*");delay(100);
lcd.clear();
}
void pHsensor()
{
int buf[10];
for(int i=0;i<10;i++)
{
buf[i]=analogRead(SensorPin);
delay(10);
}
for(int i=0;i<9;i++)
{
for(int j=i+1;j<10;j++)
{
if(buf[i]>buf[j])
{
int temp=buf[i];
buf[i]=buf[j];
buf[j]=temp;
}
}
}
avgValue=0;
for(int i=2;i<8;i++)
avgValue+=buf[i];
float phValue=(float)avgValue*5.0/1024/6;
phValue=3.5*phValue+Offset;
Serial.print("pH:");
Serial.print(phValue,2);
Serial.println(" ");
digitalWrite(13, HIGH);
delay(800);
digitalWrite(13, LOW);
lcd.setCursor(0, 0);
lcd.print("PH :");
lcd.print(phValue);
delay(100);
}
void ECsensor()
{
}