Приобретите BMP180
Обзор
BMP180 — это классический цифровой датчик атмосферного давления и температуры от Bosch Sensortec. Он пришел на смену BMP085 и долгое время был основным выбором для любительских метеостанций и альтиметров благодаря своей высокой точности и простоте использования по протоколу I²C.
BMP180 — это миниатюрный, но мощный барометр. Несмотря на то, что он является предшественником BMP280, он всё ещё широко используется в проектах, где требуется надежное измерение давления и температуры без необходимости в интерфейсе SPI.
Обзор BMP180
BMP180, разработанный Bosch Sensortec, — это высокопроизводительный цифровой датчик атмосферного давления и температуры. Он оптимизирован для работы в условиях ограниченного пространства и низкого энергопотребления, что делает его незаменимым в носимой электронике и IoT.
⚡ Ключевые особенности
- Надежность — Проверен по времени, используется в тысячах проектов.
- Интерфейс I2C — Стандартный протокол для легкого подключения к ESP32 и Arduino.
- Низкое потребление — Всего 3 мкА в режиме ожидания.
- Компактность — Малые размеры позволяют встраивать его в любые корпуса.
🔗 Совместим с большинством библиотек Bosch для давления.
Приобретите BMP180
* Цены и наличие ориентировочные и могут меняться в зависимости от продавца.
Характеристики BMP180
Основные параметры датчика BMP180.
Распиновка BMP180
Модуль BMP180 (GY-68) обычно имеет 4 пина для работы по протоколу I2C.
Фиксированный адрес: 0x77. Сменить его программно невозможно.
| Пины | Название | Тип | Описание |
|---|---|---|---|
| 1 | VIN | Power | Питание (совместимо с 3V3 или 5V благодаря стабилизатору). |
| 2 | GND | Power | Общий провод. |
| 3 | SCL | Clock | Тактирование I2C. |
| 4 | SDA | Data | Данные I2C. |
Подключение BMP180 к ESP32
Для работы с ESP32 рекомендуется использовать питание 3.3V.
| BMP180 Pin | На ESP32 | Описание |
|---|---|---|
| VIN | 3V3 / 5V | Питание модуля. |
| GND | GND | Общая земля. |
| SDA | GPIO21 | Данные I2C. |
| SCL | GPIO22 | Тактирование I2C. |
Устранение неполадок BMP180
Ошибка: "Could not find a valid BMP180 sensor"
2. Проверьте контакты: плохо припаянные гребенки — частая причина.
3. Попробуйте I2C сканер, чтобы убедиться, что контроллер видит датчик.
Примеры программирования BMP180
Arduino IDE (Unified)
C++
Arduino IDE (Unified)
#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BMP085_U.h>
Adafruit_BMP085_Unified bmp = Adafruit_BMP085_Unified(10085);
void setup() {
Serial.begin(115200);
if (!bmp.begin()) {
Serial.println("Датчик не найден!");
while (1);
}
}
void loop() {
sensors_event_t event;
bmp.getEvent(&event);
if (event.pressure) {
Serial.print("Давление: ");
Serial.print(event.pressure);
Serial.println(" гПа");
float temperature;
bmp.getTemperature(&temperature);
Serial.print("Температура: ");
Serial.print(temperature);
Serial.println(" *C");
}
delay(2000);
}
ESPHome
YAML
ESPHome
sensor:
- platform: bmp180
temperature:
name: "BMP180 Температура"
pressure:
name: "BMP180 Давление"
address: 0x77
update_interval: 60s
MicroPython
Python
MicroPython
from machine import Pin, I2C
import bmp180 # Требуется библиотека bmp180.py
i2c = I2C(0, scl=Pin(22), sda=Pin(21))
bmp = bmp180.BMP180(i2c)
# Чтение данных
temp = bmp.temperature
press = bmp.pressure
print("Temp: {} C, Press: {} hPa".format(temp, press/100))
Итоги и похожие варианты
Рекомендации
BMP180 — отличный бюджетный выбор. Однако для новых проектов мы рекомендуем более современный BMP280 или BME280.
Важно знать
Датчик чувствителен к яркому свету (через отверстие в корпусе). При сильной засветке показания могут временно "плавать".