I2C Master-Slave with NodeMCU and Arduino UNO

I'm afraid you want too much. Stay with what you know. Can you do the whole project with a single nodeMCU or ESP32 ?

A few problems are:

  • The NodeMCU has a 3.3V I2C bus and the Arduino Uno has a 5V I2C bus. That means you have a voltage mismatch on the I2C bus.
  • You should have just one Master on the I2C bus, but you have three.
  • The onRequest handler (the Request() function) should be short and fast, it may not contain a delay.
  • Why make things complicated by adding a WatchDog timeout ?
  • It is unclear how the I2C multiplexer is in the circuit
  • and so on.

I can make that list a lot longer, and maybe others will help to solve a few problems here and there. That will not help. The overall setup of your project will not work.

Think of a different way, draw it on a piece of paper and ask us if it might work.