How to Read from multiple i2c sensors of the same type


#1

Hi,

Apologies for the simple nature of this post however I can’t seem to find the answer I’m looking for elsewhere on the forum.

I’d like to start off by saying what an excellent product you have in the GrovePi. I have both the GrovePi and GrovePi+ both are great.

Down to business - I have two High Accuracy Barometers connected on the i2c ports. These ship with a factory address of 0x76 and when I run the example project “high_accuracy_barometer_example.py” it works and I get the following output :

HP20x_dev is available.
Temperature     : 26.56 C
Pressure        : 1003.52 hPa
Altitude        : 0.89 m

The problem is that I have two of these same sensors connected. One to i2c-1 and another to i2c-2.

I am not very up to speed on how i2c works as previously I had only used sensors which connected to the D2-D8 ports. I would really appreciate any guidance you can provide on retrieving data from multiple i2c sensors.


#2

Unfortunately, you won’t be able to run two at the same time. The problem is with the Grove sensor: I don’t think you can change the address of the Barometers. All of the I2C ports are on the same I2C bus. It’s a good quesition, I’m sorry for the answer!

It’s fantastic to hear you like the GrovePi+ so much! Thank you for letting us know!


#3

Hi John,

Thanks for your reply.

That’s unfortunate.

Does the same apply to all Grove i2c sensors such as the Temperature & Humidity Sensor (High-Accuracy & Mini)?


#4

Hi Daveire, unfortunately there’s no way to deconflict two sensors that are on the same i2c bus, unless Seeed (who designed the sensors) has a way to allow for it. I’m not sure if that’s true for all I2C sensors, but if they have the same address, it will conflict.