Need help problems with Wemos I2C

Hello,

I’m trying to send some data via I2C from a Arduino nano to a Wemos D1 mini but it doesn’t work.

If i connect a Arduino to Arduino, there are no problems.
If i send from the Wemos to the Arduino, there are no problems.
But if i send from the Arduino to the Wemos i receive nothing.

Connections:

Arduino 5V to Wemos 5V
Arduino GND to Wemos GND
Arduino A4 to Wemos D2
Arduino A5 to Wemos D1

Transmitter (Arduino):

#include <Wire.h>

void setup() {
  Wire.begin(3); 
  Serial.begin(9600);
  Serial.println("Start");
}

byte x = 0;

void loop() {
  Wire.beginTransmission(5); 
  Wire.write("x is ");        
  Wire.write(x);              
  Wire.endTransmission();    
  Serial.println(x);
  x++;
  delay(500);
}

Receiver (Wemos):

#include <Wire.h>

void setup() {
  Wire.begin(5);               
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);         
}

void loop() {
  delay(100);
}


void receiveEvent(int howMany) {
  Serial.print("inc...");
  while (1 < Wire.available()) {
    char c = Wire.read();
    Serial.print(c);       
  }
  int x = Wire.read(); 
  Serial.println(x);    
}

I hope someone can help me.
Thank you in advance.

First of all, please be sure that you can operate Wemos D1 mini as I2C Slave.

ESP8266 (NodeMCU) can't be operated as I2C Slave. It must always be used as I2C Master.

Arduino 5V to Wemos 5V
Arduino GND to Wemos GND
Arduino A4 to Wemos D2
Arduino A5 to Wemos D1

Additionally: A Wemos D1 is a 3.3V device. You must not connect it directly to a 5V device as the Nano. Use bi-directional level converter!

accmas:
I hope someone can help me.

Try this way: (Assume Wemos is also 5V tolerant as NodeMCU is 5V tolerant)
Wemos is I2C Master:

#include <Wire.h>

void setup() 
{
  Wire.begin(D2, D1);    //D2 =SDA, D1 = SCL of I2C Bus 
  Serial.begin(9600);
  Serial.println("Start");
}

byte x = 0;

void loop() 
{
  Wire.beginTransmission(5); 
  Wire.print("x is ");//write("x is ");        
  Wire.write(x);              
  Wire.endTransmission();    
  Serial.println(x);
  x++;
  delay(500);
}

Receiver (Arduino):

#include <Wire.h>

void setup() 
{
  Wire.begin(5);               
  Wire.onReceive(receiveEvent);
  Serial.begin(9600);         
}

void loop() 
{
  delay(100);
}


void receiveEvent(int howMany) 
{
  Serial.print("inc...");
  for(byte i=0; i<howMany-1; i++)
  {
      char c = Wire.read();
      Serial.print(c);
  }
  byte x = Wire.read();
  Serial.println(x);  
}

Assume Wemos is also 5V tolerant as NodeMCU is 5V tolerant

There are different opinions on the Net about this thematic. If the circuit doesn't work, insert a level converter.