BMP180 + Raspberry Pi + WH1602
Цифровой датчик атмосферного давления 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: -- -- -- -- -- -- -- 77BMP180 занимает адрес 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
Успехов.
Смотри также:
- 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
Додати коментар

Недавні записи
- Адаптивний ПІД регулятор
- Конструктор регуляторів моторів. Структура.
- Конструктор регуляторів моторів. Анонс.
- Golang + Vue + PostgreSQL #2
- Golang + Vue + SQLite #1
- FOC Position Control. Векторне управління - Стабілізація положення
- Flask & Vue. Завантаження файлів. Приклад № 2.10
- Рекуперація. FOC і цікаві досліди
- Flask & Vue. OAuth. Приклад№ 2.9
- Flask & Vue. Використання систем збірки проекту. Webpack. Приклад№ 2.8
Tags
git st-link bme280 battery stm32 nvic dc-dc html flask raspberry-pi uart meteo watchdog motor foc i2c mpu-9250 flash smd docker usb soldering rtc pwm brushless atmega timer ngnix ssd1331 options avr bluetooth web esp8266 programmator barometer examples exti sensors encoder usart books eb-500 bldc eeprom servo rs-232 rfid solar pmsm websocket remap max1674 displays hih-4000 css java-script mpu-6050 3d-printer capture gpio bmp280 bkp adc lcd wifi gps dma sms dht11 ethernet mpx4115a python mongodb ssd1306 nodemcu tim piezo led
Архіви
