==== Подключение датчика давления BMP180 к Banana Pi ==== схема подключения:\\ ---> VIN - контакт 3,3 вольта (1-я ножка) на CON3\\ ---> GND - контакт GND (6-я ножка) на CON3\\ ---> SDA - контакт SDA (3-я ножка) на CON3\\ ---> SLC - контакт SCL (5-я ножка) на CON3\\ {{:bananapi:bmp180:bmp180_top.png?200|}} {{:bananapi:bmp180:bmp180_bot.png?200|}} Смотрю какие есть устройства 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 Датчик выдаёт четыре значения: * температура (Temp), * давление в паскалях (Pressure), * высоту над уровнем моря (Altitude), * давление на уровне моря (Sealevel Pressure) Для хранения показаний использую 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 каждые пять минут. */5 * * * * root /scripts/BMP180_rrd.sh > /dev/null 2>&1 Ссылки:\\ 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/