сайт для палких паяльників

BMP180 + Raspberry Pi + WH1602
(на русском языке)

Цифровий датчик атмосферного тиску BMP180 має інтерфейс I2C. Його легко підключити до Raspberry Pi. Використовується у таких пристроях, як барометри, погодні станції, альтиметри (висотоміри), варіометри, тощо. Я писав про використання BMP180 та BMP085 з мікроконтролерами Atmega. Щодо I2C та Raspberry Pi детально описано у статті: Raspberry-Pi — I2C (TWI)

Схема підключення BMP180 до Raspberry Pi

rpi_bmp180 rpi_bmp180_03

Вмикаємо I2C

Для включення I2C шини на Raspberry Pi потрібно виконати операції, що описані нижче.

Відредагуємо файл: /etc/modprobe.d/raspi-blacklist.conf:

nano /etc/modprobe.d/raspi-blacklist.conf

Закоментуємо рядок blacklist i2c-bcm2708. Приклад вмісту файлу:

#blacklist spi-bcm2708
#blacklist i2c-bcm2708

Коригуємо файл /etc/modules:

sudo nano /etc/modules

Додаємо рядки:

i2c-bcm2708
i2c-dev

Встановлюємо i2c-tools утиліти:

sudo apt-get install python-smbus i2c-tools

Перезавантажуємо Raspberry Pi:

reboot

Після перезавантаження можемо переглянути всі підключені прилади до шин I2C:

sudo 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

BMP180 займає адресу 77.

Встановимо бібліотеку для Python

cd /root
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: 30.10 C
Pressure:    1010.45 hPa
Altitude:    23.92

Ви мабуть звернули увагу, що в імені скрипта присутня назва іншого датчика – BMP085. Справа у тому, що BMP085 та BMP180 дуже схожі і алгоритми роботи з цими датчиками – ідентичні.

Приклад альтиметра з дисплеєм WH1602

Схема підключення дисплея така, як зазначена у статті Raspberry Pi — LCD display 1602

Текст програми на Python:

#!/usr/bin/python

from Adafruit_CharLCD import Adafruit_CharLCD
from time import sleep, strftime
from Adafruit_BMP085 import BMP085

lcd = Adafruit_CharLCD()
bmp = BMP085(0x77)

lcd.clear()

while 1:
    lcd.home()
    temp = bmp.readTemperature()
    pressure = bmp.readPressure()
    altitude = bmp.readAltitude()

    lcd.message('t=%d P=%d\n' % (temp,pressure))
    lcd.message('Altitude=%.2f' % (altitude))

    sleep(1)

Скачати приклад bmp180_wh1620.zip

rpi_bmp180_01 rpi_bmp180_02

Успіхів.

Дивись також:
Translate
Архіви

© 2011-2019 Андрій Корягін, Кременчук - Київ, Україна