ok i put thet bit in and it works but had to add in a line to clear the last val it stayed on the lcd
lcd.setCursor(11, 2);
lcd.print(" ");
lcd.setCursor(11, 2);
lcd.print(inData);
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,21);
char inData[24];
byte index;
boolean started = false;
boolean ended = false;
void setup()
{
Serial.begin(9600);
Serial.println("Temperature & Humidity");
lcd.init();
lcd.backlight();
lcd.begin(20, 4);
lcd.setCursor(6, 1);
lcd.print("WELCOME");
delay(3000);
lcd.clear();
delay(100);
}
void loop()
{
lcd.setCursor(0, 0);
lcd.print("Temp:");
lcd.setCursor(0, 1);
lcd.print("Humidity:");
lcd.setCursor(0, 2);
lcd.print("Moisture:");
lcd.setCursor(0, 3);
lcd.print("Voltage:");
while(Serial.available() > 0)
{
char aChar = Serial.read();
if(aChar == '<')
{
started = true;
index = 0;
inData[index] = ' ';
}
else if(aChar == '>')
{
ended = true;
}
else if(started)
{
inData[index] = aChar;
index++;
inData[index] = '\0';
}
}
if(started && ended)
{
// Use the value
if(inData[0] == 'T')
{
inData[0] = ' ';
int TempVal = atoi(inData);
Serial.println(" ");
Serial.print("Temp:");
Serial.print(inData);
Serial.print("C");
Serial.println(" ");
lcd.setCursor(11, 0);
lcd.print(inData);
lcd.setCursor(18, 0);
lcd.print("C");
}
else if(inData[0] == 'H')
{
inData[0] = ' ';
int HumidityVal = atoi(inData);
Serial.println(" ");
Serial.print("Humidity:");
Serial.print(inData);
Serial.print("%");
Serial.println(" ");
lcd.setCursor(11, 1);
lcd.print(inData);
lcd.setCursor(18, 1);
lcd.print("%");
}
else if(inData[0] == 'M')
{
inData[0] = ' ';
int MoistureVal = atoi(inData);
Serial.println(" ");
Serial.print("Moisture:");
Serial.print(inData);
Serial.println(" ");
lcd.setCursor(11, 2);
lcd.print(" ");
lcd.setCursor(11, 2);
lcd.print(inData);
}
else if(inData[0] == 'V')
{
inData[0] = ' ';
int VoltageVal = atoi(inData);
Serial.println(" ");
Serial.print("Voltage:");
Serial.print(inData);
Serial.print("Volts");
Serial.println(" ");
lcd.setCursor(11, 3);
lcd.print(" ");
lcd.setCursor(11, 3);
lcd.print(inData);
lcd.setCursor(18, 3);
lcd.print("V");
}
started = false;
ended = false;
index = 0;
inData[index] = ' ';
}
}