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 — PWM і Сервопривод
- Raspberry Pi — DHT11
- Raspberry Pi - FM Transmitter
- Прошивка AVR мікроконтролерів за допомогою Raspberry Pi
- Raspberry Pi — LCD display 1602
- Raspberry Pi — WiFi
- 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 без клавіатури та монітору
- IR-дистанційне керування. Використання LIRC у Python
- Raspberry Pi. Raspbian. Відправлення пошти через аккаунт Gmail
- Neoway M590 – GSM/GPRS modem
- MPU-6050 – гіроскоп – акселерометр
- HMC5883L Магнітометр
- PWM контролер з інтерфейсом I2С на базі мікросхеми PCA9685
- Метеостанція на Raspberry Pi своїми руками
- Raspberry Pi. Live-stream video
Недавні записи
- Selenium
- Комп'ютерний зір (Computer Vision)
- Деякі думки про точність вимірювань в електроприводі
- Датчики Холла 120/60 градусів
- Модуль драйверів напівмосту IGBT транзисторів
- Драйвер IGBT транзисторів на A316J
- AS5600. Варіант встановлення на BLDC мотор
- DC-DC для IGBT драйверів ізольований 2 W +15 -8 вольт
- U-FOC - Векторне керування безколекторними моторами
- FOC - своя реалізація векторного керування. Підбиваю підсумки 2022 року
Tags
raspberry-pi st-link bldc timer max1674 bluetooth eb-500 python ngnix rtc atmega servo avr pwm web tim uart remap brushless bme280 smd esp8266 eeprom bkp capture dht11 ethernet sensors websocket mongodb 3d-printer piezo rs-232 led css meteo i2c options exti html battery soldering bmp280 wifi mpu-9250 examples dma adc gpio sms motor solar hih-4000 lcd docker ssd1306 encoder dc-dc displays pmsm barometer watchdog java-script flask git gps mpu-6050 flash nvic books foc nodemcu programmator usb usart rfid mpx4115a stm32 ssd1331
Архіви