This high-precision temperature sensor from Texas Instrument has four I2C addresses and using them is very easy! You can connect up to four TMP117 at the same time on the I2C bus without using any kind of I2C Multiplexer. The four I2C addresses are 0x48, 0x49, 0x4A and 0x4B.
Let's start connecting the sensors:
How you connect the AD0 pin will define the I2C address for that sensor.
When you leave the AD0 pin unconnected, you are actually letting the VCC potential reach the ADD0 pin from the sensor through one of the resistors. But when you connect the AD0 pin to either GND, SDA or SCL, you are changing the signal to the ADD0 pin. The sensor recognizes which signal is connected to this pin and changes the I2C address.
The picture below shows four boards with TMP117 sensors connected on the same I2C bus. The four sensors are connected as described above, with the AD0 pin from each sensor connected differently. As you can see, no more than four wires are still needed to connect to your microcontroller: VCC, GND, SDA and SCL.
Now we need the software. The TMP117 library written by Nils Minor offers a great way to connect to a single TMP117. Using his library as a starting point, the library below adds a new sketch that enables the connection of four TMP117 sensors on the I2C bus.
After installing the library, run the example for multiple sensors on the I2C bus. Open up File -> Examples -> TMP117-Arduino -> BlueDot_TMP117_Test_4-Sensors.
After uploading the code into your Arduino, open up the Serial Monitor at 115200 baud speed to get the temperature values from all four sensors at the same time.
xkcd.com