ESP32 и датчик давления BMP180
В этом примере будет показано, как использовать барометрический датчик BMP180 с ESP32 для считывания давления, температуры и оценки высоты. Мы покажем вам, как подключить датчик к ESP32, установить необходимую библиотеку и как написать скетч в IDE Arduino.
BMP180 – это цифровой датчик давления, который измеряет абсолютное давление воздуха вокруг него.

Он имеет диапазон измерения от 300 до 1100 гПа с точностью до 0,02 гПа. Поскольку температура влияет на давление, датчик поставляется с датчиком температуры, который обеспечивает показания давления с температурной компенсацией. Кроме того, поскольку давление изменяется с высотой, вы также можете оценить высоту на основе текущего измерения давления.
Барометрический датчик BMP180 использует протокол связи I2C. Значит вам нужно будет использовать выводы SDA и SCL ESP32. В следующей таблице показано, как подключить датчик.

Схема подключения довольно проста. Подключите барометрический датчик BMP180 к ESP32, как показано на следующей принципиальной схеме.

Один из самых простых способов измерения давления, температуры и высоты с помощью датчика BMP180 – использование библиотеки BMP_085 от Adafruit. Эта библиотека совместима с датчиками BMP085 и BMP180. Выполните следующие шаги, чтобы установить библиотеку в Arduino IDE. Откройте вашу Arduino IDE и выберите Sketch - Include Library - Manage Libraries (Скетч – Включить библиотеку – Управление библиотеками). Должен открыться менеджер библиотек. Введите «BMP085» в поле поиска и установите библиотеку BMP085 от Adafruit.

После установки перезапустите вашу Arduino IDE.
Библиотека предоставляет пример, показывающий, как получить температуру, давление и высоту. Перейдите в File – Examples – Adafruit BMP085 Library – BMP085test (Файл – Примеры – Adafruit BMP085 Library – BMP085test). Ниже приведен код с комментариями на русском.
#include <Wire.h>
#include <Adafruit_BMP085.h>
Adafruit_BMP085 bmp;
void setup() {
Serial.begin(9600);
if (!bmp.begin()) {
Serial.println("Could not find a valid BMP085/BMP180 sensor, check wiring!");
while (1) {}
}
}
void loop() {
Serial.print("Temperature = ");
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print("Pressure = ");
Serial.print(bmp.readPressure());
Serial.println(" Pa");
// Рассчитайте высоту, предполагая, что
// «стандартное» атмосферное давление составляет 1013,25 миллибар = 101325 Паскаль
Serial.print("Altitude = ");
Serial.print(bmp.readAltitude());
Serial.println(" meters");
Serial.print("Pressure at sealevel (calculated) = ");
Serial.print(bmp.readSealevelPressure());
Serial.println(" Pa");
// Вы можете получить более точное измерение высоты
// если вы знаете текущее давление на уровне моря
// которое будет меняться в зависимости от погоды.
// Если это 1015 миллибар, то оно равно 101500 паскалям.
Serial.print("Real altitude = ");
Serial.print(bmp.readAltitude(102000));
Serial.println(" meters");
Serial.println();
delay(500);
}
Загрузите код в свой ESP32. Убедитесь, что вы выбрали правильную плату и COM-порт.

Затем откройте последовательный монитор со скоростью 9600 бод. Вы должны получить показания датчика, как показано на следующем изображении.

© digitrode.ru