Kolejnym czujnikiem zaraz po DHT21/AM230 będzie cyfrowy barometr. Bardzo fajnym czujnikiem jest BMP180 – czujnik ciśnienia I2C – moduł SparkFun. Czujnik bardzo ładnie współpracuje z Arduino lub właśnie Raspberry Pi. Komunikacja odbywa się poprzez I2C (Inter-Integrated-Circuit). Czujnik umożliwia pomiar ciśnienia w zakresach od 300 do 1100 hPa z dokładnością 0,02 hPa. Wyniki są bardzo dokładne, dzięki technologii piezorezystancyjnej.

Podłączenie z Raspberry Pi

  • VDD (czasem oznaczenie Vin) – napięcie zasilania, 5.0V (pin 2)
  • GND – masa układu podłączona do GDN (pin 6)
  • SDA – linia danych SDA0 (I2C) (pin 3)
  • SCL – linia zegarowa SCL0 (I2C) (pin 5)

Pin VDDIO może zostać niepodłączony. Używany jest on do współpracy z systemami o napięciu niższym niż 1,8 V.

Komunikacja z Raspbbery Pi

Na samym początku musimy załadować w systemie dwa dodatkowe moduły za pomocą polecenia:

sudo modprobe i2c-bcm2708
sudo modprobe i2c-dev

Jeżeli po załadowaniu modułów nie ma żadnych problemów, należy dodać je do pliku /etc/modules, a następnie usunąć je lub zakomentować linie w pliku /etc/modprobe.d/raspi-blacklist.conf:

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

Na samym końcu instalujemy potrzebne oprogramowanie do wykrycia naszego czujnika:

sudo apt-get install python-smbus i2c-tools

Wydając polecenie i2cdetect -y 1 powinniśmy wykryć czujnik pod adresem 0x77, jeżeli został dobrze podłączony.

[17:09:34] [root@rubus /]# i2cdetect -y 1
     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

Aby odczytać dane z czujnika, możemy skorzystać z gotowej aplikacji. Jest to zestaw bibliotek Adafruit napisanych dla Raspberry Pi.

cd /usr/src
git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
cd Adafruit-Raspberry-Pi-Python-Code/Adafruit_BMP085
./Adafruit_BMP085_example.py
Temperature: 21.40 C
Pressure:    994.35 hPa
Altitude:    157.88

Kod programu możemy przerobić pod własne potrzeby i cieszyć się pomiarami.

  • Mieszko

    Dzięki za pomocny artykuł :)

  • eee

    A jak podłączyć go razem z ekspanderem mcp23017. Mam takie czipy, które rozszerzają ilość pinów gpio (potrzebowałem sterować wieloma przekaźnikami). Jak ten barometr podłaczyć do któregoś czipu? Czy raczej podłączyć go obok czipu?

  • Patryk

    Niestety po wykonaniu tej czynności:

    cd /usr/src
    git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

    pobiera mi paczkę plików ale nie ma w niej plików potrzebnych do odpalenia czujnika :(. W czym jest problem ? :(