Der eine sagt I2C geht nur bis einen Meter, die anderen behaupten es gehen auch 300m.
Normalerweise ist bei I2C bei ca. 1 Meter Schluss. Es gibt Extender-Chips, die das Signal auf differentiell umstellen und somit einige Meter weiter kommen, aber 300m will ich erst sehen.
Bei Deinen Entfernungen würde ich einen RS485-Bus aufbauen. die entsprechenden Chips sind meist aus der MAX485er Serie, damit sind Deine 40m kein Problem mehr.