It looks like the Mega2560 has to see a minimum of 0.7V * VCC for a logic level high which leads me to believe it would have to be a minimum of 3.5V which would not work.
I know the Mega 2560 has 10k pull-up resistors, but I do not know if the I2C lines will operate correctly if they are disabled (or whether or not I can even disable them).
If they were not disabled then I suppose I could put a 30k resistor in series with SCA and SDL lines to get a 40k pull-up, and then if I have the 10k pull-ups from the 3 sensors in parallel, then I would actually have about 1, 3.3k resistor.
The pass gates of the switches are constructed such that the VCC pin can be used to limit the maximum high voltage which will be passed by the TCA9543A. This allows the use of different bus voltages on each pair, so that 1.8-V, 2.5-V, or 3.3-V parts can communicate with 5-V parts without any additional protection. External pull-up resistors pull the bus up to the desired voltage level for each channel. All I/O pins are 5.5-V tolerant.
Or use a part like thishttp://www.ti.com/lit/ds/symlink/tca9543a.pdf
Wire.begin(); digitalWrite(SDA, 0); digitalWrite(SCL, 0);
My problem with the level shifter is finding one that won't interfere with the signals
and will work for the high speed polling rates of 4KHz for the two MPU-9250 accelerometer portions. The temp/humidity is only at 1Hz so not really too worried about that.
Based on the circuit (a MOSFET + extra pull-ups) it seems they do not interfere with the signals much if at all. You can of course just use stronger pull-ups.That is more of a problem. At a typical 400 kHz I2C clock speed you can transmit 100 bits in total per poll: that starts with the 16 or 24 bits just for the request sent to each device! What are you going to do with all that data, and do you really need that kind of polling frequencies?
Is there anyway to figure out how many bits of data is going to get sent?