Gibberish sings on Serial monitor while using Wemos D1 R2 board

Hi guys,
ok my problem is this, i cant get any readings from my sensor HCSR04 using my Wemos D1 R2 board on serial monitor, i use the same code that works with my other arduino nano board and same sensor, but serial monitor just shows some random signs in this case, i adjusted settings as shown below, baud rate on monitor and sketch are the same and this is the code:

#define echoPin1 D7 // Echo Pin D3 -- 0
#define trigPin1 D6 // Trigger Pin D4 -- 2


long duration, distance;
String sensor;

void setup()
{

Serial.begin (9600);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);

}

void loop()
{

  digitalWrite(trigPin1, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);
  duration = pulseIn(echoPin1, HIGH);
  distance = duration/58.2;
  sensor = String(distance);
  Serial.print(sensor);
  delay(2000);
}

and setting in Arduino IDE, as well as the serial monitor once the sketch is uploaded:

What's the baud rate in your sketch?
How about in serial monitor?

Your serial monitor is expecting data at 115200. You are sending it at 9600. Of course, what is received isn't going to look right.

Ok i cant i believe i overlooked that, now that i changed that in the code, i get the readings but still there is some error at the very start of the readings, and those signs appear again every time i reset my board :

There is no excuse for posting your code as a picture.

There is no excuse for wrapping distance in a String for printing. The Print class KNOWS how to print ints, longs, doubles, and floats.

There is excuse for posting as pic, i did so,so you can easily see that baud rates are correct in IDE, code and serial monitor, nothing else...

There is excuse for printing it as string, since i used this to send data to processing, so i needed it to be in string format, as processing is recieving data from arduino as String (if it can be recieved as int or float i didnt know that, will try though)..

so, back to subject...

so, back to subject...

No code, in code tags, equals no help. Every time.

What?? Ok, here is the code AGAIN (only thing that is changed is baud rate, now 115200) :

#define echoPin1 D7 // Echo Pin D3 -- 0
#define trigPin1 D6 // Trigger Pin D4 -- 2


long duration, distance;
String sensor;

void setup()
{

Serial.begin (115200);
delay(500);
pinMode(trigPin1, OUTPUT);
pinMode(echoPin1, INPUT);

}

void loop()
{

  digitalWrite(trigPin1, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin1, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin1, LOW);
  duration = pulseIn(echoPin1, HIGH);
  distance = duration/58.2;
  sensor = String(distance);
  Serial.println(sensor);
  delay(2000);
}

Serial.print converts numbers to text; as @PaulS says, no need to convert to String.

I sometimes see funny characters after boot (but not as many as you) ; adding a short delay in setup() before the first print (wherever that is) has solved it up to now.

I dont know, i still have those appearing on my serial monitor, even with delay in setup() ...
btw everytime i upload a code to the board i get this message below, it always uploads cca 230kB of code to flash memory and it mentions flushing the memory,closing bootloader etc., does the same thing happen to you guys with this board, is it normal or ...?

The picture you showed is not of the serial monitor. Those messages are from uploading to the board, and are perfectly normal.

Wemos D1 Mini only likes a baud rate of 74880.
Put this code in your setup()

Serial.begin(74880);