Цифровой датчик атмосферного давления BMP180 имеет интерфейс I2C. Его легко подключить к Raspberry Pi. Используется в таких устройствах, как барометры, погодные станции, альтиметры (высотомеры), вариометры, и тому подобное. Я писал об использовании BMP180 и BMP085 с микроконтроллерами Atmega. О I2C и Raspberry Pi подробно описано в статье: Raspberry-Pi – I2C (TWI)
Схема подключения BMP180 к Raspberry Pi
Включаем 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
Успехов.
Смотри также:- Raspberry Pi — Что это такое?
- Raspberry Pi — GPIO
- Raspberry Pi — UART
- Raspberry Pi — FT232
- Raspberry Pi — ШИМ и Сервопривод
- Raspberry Pi — DHT11
- Raspberry Pi - FM Transmitter
- Прошивка AVR микроконтроллеров с помощью Raspberry Pi
- Raspberry Pi — LCD дисплей 1602
- Raspberry Pi — Wi-Fi
- Raspberry-Pi — I2C (TWI)
- Raspberry Pi - DS18B20
- Raspberry Pi Camera
- nRF24L01+ ATMEGA + Raspberry Pi
- BMP180 + Raspberry Pi + WH1602
- Wi-Fi Метео станция
- Raspbian. Apache + PHP + Python + MySQL
- Устанавливаем Raspbian на Raspberry Pi без клавиатуры и монитора
- ИК-дистанционное управление. Использование LIRC в Python
- Raspberry Pi. Raspbian. Отправка почты через аккаунт Gmail
- Neoway M590 – GSM/GPRS modem
- MPU-6050 – гироскоп – акселерометр
- HMC5883L Магнитометер
- PWM контролер на базе микросхемы PCA9685
- Метеостанция на Raspberry Pi своими руками
- Raspberry Pi. Live-stream video