New to Arduino: Pressure Sensor Network


I am trying to create a pressure sensor network to capture live pressure data at various locations. Initially, I have selected the Arduino Mega 2560 microprocessor and the BMP085 pressure sensor. I am looking to use in the range of 15 to 20 sensors. Please let me know if this is a feasible option based on the components I have chosen. If not, I am open to suggestions on the best way to tackle this problem.


It's feasible on its face, but the details matter. Like how far apart are you going to space the sensors? Do you have to capture pressure data simultaneously (if so, with what time tolerance) or sequentially?

You also have to convert between the 5V levels of the Arduino Mega2560 to the 3.3V levels of the BMP085. Not terribly difficult, but still a consideration.

-- The QuadRAM shield: add 512 kilobytes of external RAM to your Arduino Mega/Mega2560

I will need to place all of them within a box of dimensions 10 inches X 10 inches X 3 inches on the outward facing surfaces. So, they will be somewhat close together. I would say no more than a few linear inches away from the next sensor. I do not necessarily need to capture the data from each sensor at the exact same time for each pressure sensor, but I will need to retrieve live pressure information from each sensor. To clarify, sensor 1 could send a pressure reading at time 0:00:00.0001 and pressure sensor 2 could take a pressure reading at 0:00:00.0002. However, I prefer to retrieve pressure information simultaneously, or close to simultaneously, if at all possible. Obviously, the more pressure information I can retrieve per second the better but I realize there are limitations for each of these components. To be honest, I am not sure what a reasonable time tolerance would be in this case. However, I can tell you that I need more than 10 pressure readings per second from each sensor and probably more than 20 as well.

I am looking to keep the electronics for this project as simple as possible. If there is a better way to approach this problem, please let me know. I’m not necessarily set on using these components for this project.

I think your approach is reasonable then. An I2C bus that runs around a 10 inch square box should be feasible if you don't try to run the bus too quickly.

If you want to take 20 readings per second from 20 sensors that's 400 readings per second, or one reading every 2.5ms. That's doable over a "slow" I2C bus. The pressure sensors themselves will compute a new reading every 25.5 ms (worst-case, with maximum oversampling) so if you sample sensor 0, then move on to sensor 1, then on to sensor 2, etc. until you reach sensor 20, it'll be 50ms before you get back to sensor 0 and it will have a new reading for you.

Each I2C transaction (i.e., a reading) with the BMP085 involves the transfer of 5 or 6 10-bit words (6 if you want extra precision, so let's go with that). Thus, 60 bits has to fit into 2.5ms, meaning the I2C clock has to be at least 24 kHz, say 30 kHz to be safe. That's entirely doable.

-- The Rugged Motor Driver: two H-bridges, more power than an L298, fully protected

There is another thread discussing this same thing also, including ideas on how to multiplex all the data coming back as the BMP805s are not separately addressable.,76204.0.html