Prints in serial monitor but not on the LCD display

Hello,

Newbie here, working on a simple thermostat kinda project. A DHT22 and a 20 x 4 LCD display. Most of the code is copied from a tutorial and I have started modifying it.

The project would turn on a motor when the humidity reached a certain point. I have an LED on a breadboard (motor I’d like to turn on). And it works! At 70%, from me breathing heavily on the sensor, the LED turns on. But as you can see in the code below, the display shows the temp and humidity on the 2nd and 3rd lines. An ‘if’ statement is supposed to add the text onto the first line “Monitoring Humidity” at 70%. It does print on the serial monitor but the display doesn’t change at all. I’m hoping some can point out how and where I went wrong.

I’m thinking, Do I have to rewrite the whole lcd.print paragraph a 2nd time, one for each possibility of the if statement? From what I’ve read so far the way I have it written should work, “if, turn led, else do nothing carry on with the program”, the else doesn’t need to be there. So the flow seems logical to me.

Thanks in advance

/* How to use the DHT-22 sensor with Arduino uno
   Temperature and humidity sensor
   More info: http://www.ardumotive.com/how-to-use-dht-22-sensor-en.html
   Dev: Michalis Vasilakis // Date: 1/7/2015 // www.ardumotive.com 
*/

//Libraries
#include <DHT.h>
#include <Wire.h> 
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

//Constants
#define DHTPIN 4     // what pin we're connected to
#define LEDPIN 5    //what pin led is connected to
#define DHTTYPE DHT22   // DHT 22  (AM2302)
DHT dht(DHTPIN, DHTTYPE); //// Initialize DHT sensor for normal 16mhz Arduino

//ALWAYS USE THIS WITH LCD I2C and Addres 0x3F
#define I2C_ADDR 0x27
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);

//Variables
int chk;
float hum;  //Stores humidity value
float temp; //Stores temperature value

int ledPin = 5;

void setup()
{
  Serial.begin(9600);
  dht.begin();
  lcd.begin(20,4);
  lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE);
  lcd.setBacklight(HIGH);
}

void loop()
{
   
  delay(2000);
  //Read data and store it to variables hum and temp
  hum = dht.readHumidity();
  temp = dht.readTemperature(true);

  //***LED test high humidity modified
digitalWrite(ledPin, LOW);
  
  if (hum>70) {
    digitalWrite(5, HIGH);
    Serial.print("MONITORING HUMIDITY:)   ");
    
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.println("MONITORING HUMIDITY:)   ");
//***End of My modification
  }
  
  //Print temp and humidity values to serial monitor
  Serial.print("Humidity: ");
  Serial.print(hum);
  Serial.print(" %, Temp: ");
  Serial.print(temp);
  Serial.println(" Farenheit");

  lcd.clear();
  lcd.setCursor(0,1);
  lcd.print("Temp: ");
  lcd.print(temp);
  lcd.print(" ");
  lcd.print((char)223);
  lcd.print("F");
  lcd.setCursor(0,2);
  lcd.print("Hum:  ");
  lcd.print(hum);
  lcd.print(" %");

  delay(2000); //Delay 2 sec.

}/code]
lcd.println("MONITORING HUMIDITY:)   ");

There are two mistakes there.

First of all, you can't use println on an LCD display. Try using print instead. If you want to move to the next line, that is what setCursor is for.

Second, you are trying to fit 24 characters into one line of a 20-character display. Remember that spaces count as characters, too.