схема подключения:
—> VIN - контакт 3,3 вольта (1-я ножка) на CON3
—> GND - контакт GND (6-я ножка) на CON3
—> SDA - контакт SDA (3-я ножка) на CON3
—> SLC - контакт SCL (5-я ножка) на CON3
Смотрю какие есть устройства I2C
root@bananapi ~ # ls -l /dev/i2c* crw------- 1 root root 89, 0 Янв 1 2010 /dev/i2c-0 crw------- 1 root root 89, 1 Янв 1 2010 /dev/i2c-1 crw------- 1 root root 89, 2 Янв 1 2010 /dev/i2c-2 crw------- 1 root root 89, 3 Янв 1 2010 /dev/i2c-3 crw------- 1 root root 89, 4 Янв 1 2010 /dev/i2c-4
Устанавливаю i2c-tools
root@bananapi ~ # apt-get install i2c-tools
Ищу устройство с адресом 0х77, это и будет BMP180.
root@bananapi ~ # 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: -- -- -- -- -- -- -- -- root@bananapi ~ # i2cdetect -y 0 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- UU -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- root@bananapi ~ # i2cdetect -y 2 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
Устанавливаю библиотеку Adafruit BMP на Python для работы с датчиком.
apt-get install git build-essential python-dev python-smbus cd /usr/local/src /usr/local/src # git clone https://github.com/adafruit/Adafruit_Python_BMP.git cd /usr/local/src/Adafruit_Python_BMP /usr/local/src/Adafruit_Python_BMP (git)-[master] # python setup.py install
Редактирую файл simpletest.py. Снимаю комментарии со строки sensor = BMP085.BMP085(busnum=2) и комментирую строку #sensor = BMP085.BMP085() Проверяю
/usr/local/src/Adafruit_Python_BMP/examples (git)-[master] # python simpletest.py Temp = 32.90 *C Pressure = 98047.00 Pa Altitude = 276.81 m Sealevel Pressure = 98049.00 Pa
Датчик выдаёт четыре значения:
Для хранения показаний использую rrd. Для этого создаю базу даннх bmp180_01.rrd с трёмя источниками данных. therm - для температуры, press для давления, alt для высоты.
root@bananapi /var/db/rrdtool # rrdtool create bmp180_01.rrd --start N --step 300 \ \`> DS:therm:GAUGE:600:U:U \ \`> DS:press:GAUGE:600:U:U \ \`> DS:alt:GAUGE:600:U:U \ \`> RRA:AVERAGE:0.5:1:288 \ \`> RRA:AVERAGE:0.5:6:336 \ \`> RRA:AVERAGE:0.5:12:744 \ \`> RRA:AVERAGE:0.5:144:730\
В папке /usr/local/bin создаю ссылку на файл
cd /usr/local/bin ln -s /usr/local/src/Adafruit_Python_BMP/examples/simpletest.py bmp180
А файл simpletest.py делаю исполняемым.
Для добавления данных в базу написал скрипт. Для перевода паскалий в миллиметры ртутного столба использую формулу мм.рт.ст.=Pa/133,3224
cat /scripts/BMP180_rrd.sh #!/bin/bash TEMP=`bmp180 | grep =` therm=`echo $TEMP | awk '{print $3}'` press=`echo $TEMP | awk '{print $7}' | awk -F. '{ print $1 }'` let "press = $press / 133,3224" alt=`echo $TEMP | awk '{print $11}'` #echo $therm #echo $press #echo $alt /usr/bin/rrdtool update /var/db/rrdtool/bmp180_01.rrd N:$therm:$press:$alt echo -n ${press} >/var/www/therm/current_press.csv exit 0
Добавил запуск скрипта в crontab каждые пять минут.
Ссылки:
http://www.linuxx.eu/2014/09/banana-pi-i2c-barometer-bmp085.html
http://jeelabs.org/book/1452c
http://picoboard.pl/raspberry-pi-bmp180-cyfrowy-barometr-czujnik-cisnienia-i2c/
https://micro-pi.ru/%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-bmp280-%D0%BA-orange-pi-rpi-bpi/