BMP180 + Raspberry Pi + WH1602


02.02.2015

Цифровой датчик атмосферного давления 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` % (temp,pressure))
    lcd.message(`Altitude=%.2f` % (altitude))

    sleep(1)

Скачать пример: bmp180_wh1620.zip

rpi_bmp180_01 rpi_bmp180_02

Успехов.

Смотри также:

Коментарі:

Додати коментар

* - обов'язкові поля

Архіви