### Weblog Tomasza Przechlewskiego

random image
Archiwum
O stronie
wykorzystywany jest blosxom plus nastêpuj±ce wtyczki: tagging, flatarchives, rss10, lastbuilddatexhtmlmime. Niektóre musia³em dopasowaæ nieco do swoich potrzeb. Wiêcej o blosxom jest tutaj
Subskrypcja
Raspberry Pi: BMP085 pressure/temperature sensor

My BMP085 sensor

Yesterday I have got a letter containing BMP085 pressure sensor which I bought on ebay on November 20th 2012 (yes the post made a history with +50 days delivery from China).

To connect BMP085 to RPI first one has to install (in case both packages are not installed yet):

pi@raspberrystar ~ $sudo apt-get install i2c-tools pi@raspberrystar ~$ sudo apt-get install python-smbus


Now one has to enable i2c in raspbian. First one has to add the user pi to the group i2c:

pi@raspberrystar ~ $sudo adduser pi i2c  Next one has to check the contents of  /etc/modprobe.d/raspi-blacklist.conf and  /etc/modules: pi@raspberrystar ~$ less /etc/modprobe.d/raspi-blacklist.conf
# blacklist spi and i2c by default (many users don't need them)

blacklist spi-bcm2708
blacklist i2c-bcm2708

pi@raspberrystar ~ $less /etc/modules ... i2c-dev i2c-bcm2708  Some users advocate to remove i2c-bcm2708 from blacklisted modules but this seems unneccessary as: pi@raspberrystar ~$ lsmod | grep i2c
i2c_bcm2708             3542  0
i2c_dev                 5587  0


so I have i2c_bcm270 w/o modifying  /etc/modprobe.d/raspi-blacklist.conf

Reboot now to activate the new settings

#### Hardware

The board my sensor came on has eight pins. There are boards with 6 pins as well which seems to be more popular. Only four out of 8 pins are used and the connections are as follows (see pictures):
GND goes to Ground on the Pi (P1-05)
3.3 goes to 3V3 on the Pi (P1-01)
SDA goes to SDA on the Pi (P1-02)
SCL goes to SCL on the Pi (P1-03)

In Reading data from a Bosch BMP085 with a Raspberry Pi 6-ping sensor is used and the pins connections are different. I have tried but it does not work for my sensor.

I connect sensor to RPI using wires with female jumpers on both ends.

To check if the sensor (or other i2c device) is connected correctly, one can run i2cdetect:

pi@raspberrystar ~ \$ i2cdetect -y 0
0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- 77


77 in the last row indicates that sensor is connected properly (otherwise the output will consists of rows of '--' only).

#### Software

To get data from the sensor one has to install Adafruit-Raspberry-Pi-Python-Code or compile small C program available here:

## Download john.geek's C application:

## Compile & run it
gcc -Wall -o testBMP085 ./smbus.c ./testBMP085.c
./testBMP085


Note: testBMP085 works with sensor connected to RPi as described in this post (not as described by john geek).