1

I am building a weather station, using a battery-operated outside unit, that transmits data from a DHT22 sensor to a unit inside my house.

The inside unit is using I2C communications from my Arduino Uno to my LCD display.

I would like to add a BMP180 sensor which also uses I2C communications.

My question is, how would you write a sketch to incorporate both the BMP180 sensor and the LCD display on to one I2C line?

jfpoilpret
9,1627 gold badges38 silver badges54 bronze badges
asked Mar 1, 2016 at 3:07
2
  • Have you tried combining code for polling the BMP180 and the LCD yet? There's really nothing special about doing both at once, as long as both libraries are well-written. Commented Mar 1, 2016 at 3:25
  • 1
    What's the problem? If they both have different addresses, read from the sensor, then write to the LCD. Commented Mar 1, 2016 at 5:56

2 Answers 2

1

Yes you can connect multiple devices on one I2C bus. Every device on the bus needs to have its own address. Some libraries have the default address included. Some do allow to change it. Others don't. For example the SE95 temperature sensor (page 10) does allow for setting a few bits of the address allowing more than one sensor on a bus.

You can use the Wire library from Arduino to request data from I2C. When you want to pull data from a sensor, you have to send a command depending on the specs than request data from the address.

Example: for the SE95 address 0x4F (you can repeat this for any address you have a sensor on your bus) the SE95 ranges from 0x49 to 0x4F depending on the pin settings:

//Please note that the example is not complete because Wire has to be loaded and initialized
byte address = 0x4F;
byte read1;
byte read2;
Wire.beginTransmission(address);
Wire.write(0x00);
Wire.requestFrom(int(address), 2);
if(Wire.available()) {
 read1 = Wire.read();
 read2 = Wire.read();
}

So depending on the libraries, this would be quite easy.

dda
1,5951 gold badge12 silver badges17 bronze badges
answered Apr 30, 2016 at 13:09
0

Like Nick Gammon said, they have different addresses, so there shouldn't be a problem. Connect their SDAs and SCLs together, with the necessary pull-ups.

The libraries you are using should handle the low-level reading and writing. Proceed as though they are any 2 devices connected to your Uno. Print to the LCD as usual, and poll the sensor with library functions.

dda
1,5951 gold badge12 silver badges17 bronze badges
answered Mar 1, 2016 at 11:42

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.