Датчик давления BMP180 Arduino позволяет создать барометр на Ардуино своими руками. С помощью сенсора можно создать метеостанцию для вашего дома, добавив в схему датчик температуры и влажности воздуха DHT11 и дисплей 1602 i2c. Рассмотрим, как правильно подключить датчик давления bmp180 к плате Ардуино и вывести данные о давлении воздуха на монитор порта или жидкокристаллический дисплей LCD 1602.
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- сенсор давления bmp180 / gy68
- дисплей lcd 1602 i2c
- коннекторы
- библиотека SFE_BMP180.h и LiquidCrystal_I2C.h
Дополнительные материалы на эту тему:
Датчик разработан для измерения атмосферного давления и он будет полезен в двух направлениях. Во-первых, по мере перемещения от уровня моря к горной вершине атмосферное давление снижается — это означает, что мы можем определить высоту по давлению атмосферы. Во-вторых, атмосферное давление меняется в зависимости от погоды, поэтому мы можем использовать сенсор для отслеживания изменений погоды.
BMP180 и GY-68 Arduino характеристики, распиновка

Характеристики BMP180 (datasheet)
- Напряжение питания: 3 — 5 В
- Энергопотребление: 5 мкА для измерения 1 раз в секунду
- Интерфейс: I2C
- Диапазон измерения давления: 300-1100 гПа
- Точность измерения: 0,03hPa (0,25 м)
- Диапазон измерения температуры: от -40°C до +85°C
Характеристики GY-68 (datasheet)
- Напряжение питания: 1.8 — 3.6 В
- Энергопотребление: 5 мкА для измерения 1 раз в секунду
- Интерфейс: I2C
- Диапазон измерения давления: от 300hPa до 1100hPa (от +9000 м до -500 м)
- Точность давления до 0.02hPa (0,17 м)
- Диапазон измерения температуры: от -40°C до +85°C
Барометр — это электронный прибор, измеряющий атмосферное давление. Современные барометры Arduino gy-68 и bmp180 основаны на пьезорезистивном или тензометрическом методе, т.е. датчики изменяют сопротивление материала под действием деформирующих сил. Обратите внимание, что модуль датчика давления GY-68 подключается к питанию 3,3 вольта, а модуль BMP180 к 5 вольтам от микроконтроллера Arduino Uno.
Как подключить давления BMP180 к Ардуино

| BMP180 / GY-68 | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
Подключение к микроконтроллеру осуществляется через интерфейс I2C. Контакты SCL / SDA и питание модуля выведены на контактную группу. Кроме того, для работы с датчиком необходимо установить библиотеку BMP180 Breakout, которая упрощает работу с модулем. Команды для модуля bmp180 (bmp080) и gy-68 одинаковы, поэтому библиотека SFE_BMP180.h будет отлично работать для всех перечисленных сенсоров.
Скетч для датчика давления BMP180 и GY-68
#include "Wire.h"
#include "SFE_BMP180.h"
SFE_BMP180 pressure;
#define ALTITUDE 1655.0
void setup(){
Serial.begin(9600);
pressure.begin();
}
void loop(){
char status;
double T,P,p0,a;
Serial.println();
Serial.print("provided altitude: ");
Serial.print(ALTITUDE,0);
Serial.println(" meters");
status = pressure.startTemperature();
if (status != 0){
delay(status);
status = pressure.getTemperature(T);
if (status != 0){
Serial.print("temperature: ");
Serial.print(T,2);
Serial.println(" deg C");
status = pressure.startPressure(3);
if (status != 0){
delay(status);
status = pressure.getPressure(P,T);
if (status != 0){
Serial.print("absolute pressure: ");
Serial.print(P,2);
Serial.print(" mb, ");
Serial.print(P*0.0295333727,2);
Serial.println(" inHg");
p0 = pressure.sealevel(P,ALTITUDE);
Serial.print("relative (sea-level) pressure: ");
Serial.print(p0,2);
Serial.print(" mb, ");
Serial.print(p0*0.0295333727,2);
Serial.println(" inHg");
}
else Serial.println("error retrieving pressure measurement\n");
}
else Serial.println("error starting pressure measurement\n");
}
else Serial.println("error retrieving temperature measurement\n");
}
else Serial.println("error starting temperature measurement\n");
delay(5000);
}
Барометр на Ардуино своими руками с дисплеем

| LCD 1602 i2c | Arduino Uno | Arduino Nano | Arduino Mega |
| GND | GND | GND | GND |
| VDD | 5V | 5V | 5V |
| SDA | A4 | A4 | 20 |
| SCL | A5 | A5 | 21 |
В следующем примере на lcd дисплее 1602 i2c отображаются данные о температуре и давлении при одновременном подключении двух устройств к шине i2c. Всего к шине i2c Arduino можно подключить до 127 устройств. Подключите текстовый дисплей к микроконтроллеру Ардуино в соответствии со схемой, размещенной выше, и загрузите следующую программу для барометра с датчиком давления GY-68 (BMP180).
Скетч для барометра на Ардуино своими руками
#include "Wire.h"
#include "SFE_BMP180.h"
SFE_BMP180 pressure;
#define ALTITUDE 1655.0
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C LCD(0x27,16,2);
void setup(){
pressure.begin();
LCD.init();
LCD.backlight();
}
void loop(){
char status;
double T,P,p0,a;
status = pressure.startTemperature();
if (status != 0){
delay(status);
status = pressure.getTemperature(T);
if (status != 0){
LCD.setCursor(0, 0);
LCD.print("Temp: ");
LCD.print(T,2);
LCD.print(" *C");
status = pressure.startPressure(3);
if (status != 0){
delay(status);
status = pressure.getPressure(P,T);
if (status != 0){
p0 = pressure.sealevel(P,ALTITUDE);
LCD.setCursor(0, 1);
LCD.print("Pres: ");
LCD.print(p0,2);
LCD.print(" mb, ");
}
else Serial.println("error retrieving pressure measurement\n");
}
else Serial.println("error starting pressure measurement\n");
}
else Serial.println("error retrieving temperature measurement\n");
}
else Serial.println("error starting temperature measurement\n");
delay(5000);
}
Заключение. Датчик давления bmp180 легко подключается к микроконтроллеру, а библиотека SFE_BMP180 позволяет использовать этот модуль во многих проектах для начинающих программистов. Надеемся, что этот обзор был полезен для вас, а если у вас есть вопросы по работе с модулем bmp180 (gy-68) — оставляйте их в комментариях к этой статье. Мы сделаем все возможное, чтобы ответить на любые вопросы.

bmp-180 не работает при подключении оптопарой ftp 4*2 с экраном длиной 10м. При установке на плату ардуино работает.