lcd showing characters instead of blank spaces [SOLVED]

Hello,
first of all, happy GravMass to everyone!

I am having some problems with my i2c lcd, it is showing some weird characters instead of blank spaces, no matter what I have tried and searched to solve this problem.

Does anyone have a clue on how to solve this problem?

I am attaching two screen shots.

post your code. I suspect you're sending data you should not be sending

#include <SHT1x.h>
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x3F,20,4);  // set the LCD address to 0x3F for a 20 chars and 4 line display

// Specify data and clock connections and instantiate SHT1x object
#define dataPin  10
#define clockPin 11
SHT1x sht1x(dataPin, clockPin);

const int RELAY1=9; // variable which stores pin number
const int RELAY2=8; // variable which stores pin number
const int RELAY3=6; // variable which stores pin number
const int RELAY4=7; // variable which stores pin number

void setup()
{
  lcd.init();                      // initialize the lcd 
  lcd.backlight();
  Serial.begin(9600); // open serial port, set the baud rate to 9600 bps
  pinMode(RELAY1, OUTPUT);  //configures pin 9 as OUTPUT
  pinMode(RELAY2, OUTPUT);  //configures pin 8 as OUTPUT
  pinMode(RELAY3, OUTPUT);  //configures pin 6 as OUTPUT
  pinMode(RELAY4, OUTPUT);  //configures pin 7 as OUTPUT

}
void loop() {
   int fotosensore = analogRead(A0); //
   int umiditaterra = analogRead(A1);
   float temp_c;
   float temp_f;
   float humidity;
   
     // Read values from the sensor
  temp_c = sht1x.readTemperatureC();
  temp_f = sht1x.readTemperatureF();
  humidity = sht1x.readHumidity();
  
  if ( fotosensore < 30 &&  umiditaterra < 300)  // the point at which the state of pompa change 
    { 
      digitalWrite(RELAY1,HIGH);  //sets pompa ON
      delay(5000); //wait for XXXXX milliseconds
    }
  else
    {
      digitalWrite(RELAY1,LOW);  //Sets pompa OFF
    }
  if  (temp_c > 28)   // the point at which the state of vent change 
    { 
      digitalWrite(RELAY2,HIGH);  //sets vent ON
      //delay(5000); //wait for XXXXX milliseconds
    }
  else
    {
      digitalWrite(RELAY2,LOW);  //Sets vent OFF
    }
      if  (humidity < 50)   // the point at which the state of vent change 

       { 
      digitalWrite(RELAY3,HIGH);  //sets hulka ON
      //delay(5000); //wait for XXXXX milliseconds
    }
  else
    {
      digitalWrite(RELAY3,LOW);  //Sets hulka OFF
    }
      if  (temp_c < 24)   // the point at which the state of heater change 

       { 
      digitalWrite(RELAY4,HIGH);  //sets heater ON
      //delay(5000); //wait for XXXXX milliseconds
    }
  else
    {
      digitalWrite(RELAY4,LOW);  //Sets heater OFF
    }
{
      int val;
      val=analogRead(A0);   //connect photosensor sensor to Analog 0
      lcd.setCursor(0,0);
      lcd.print("L:");
      lcd.println(val,DEC);//print the value to serial        
      //delay(2000);
      //prints value moisture sensor soil
      delay(10);
      lcd.setCursor(10,0);
      lcd.print("M:");//connect moisture sensor to Analog 1
      lcd.println(analogRead(A1));  //print the value to serial  
      //delay(2000);
      // Print the values humidity temperature air to the serial port
  delay(10);
      lcd.setCursor(0,1);
  lcd.print("T:");
  lcd.print(temp_c, BIN);
  lcd.print("C");
  delay(10);
      lcd.setCursor(10,1);
  lcd.print("H:");
  lcd.print(humidity);
  lcd.println("%");
 delay(10);

  
}

All the lcd.println() statements are incorrect. It is not supported syntax and is creating non readable characters. Only use cursor positioning statements when using the lcd.

cattledog: All the lcd.println() statements are incorrect.

Thank you! Is working now!