Перейти к содержанию

Барометр BMP180 и GY-68 Arduino подключение

Датчик давления BMP180 Arduino подключение

Датчик давления 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

Дополнительные материалы на эту тему:

  1. Как подключить датчик температуры DHT11
  2. Как подключить датчик температуры LM35
  3. Как подключить датчик температуры DS18B20

Датчик разработан для измерения атмосферного давления и он будет полезен в двух направлениях. Во-первых, по мере перемещения от уровня моря к горной вершине атмосферное давление снижается — это означает, что мы можем определить высоту по давлению атмосферы. Во-вторых, атмосферное давление меняется в зависимости от погоды, поэтому мы можем использовать сенсор для отслеживания изменений погоды.

BMP180 и GY-68 Arduino характеристики, распиновка

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 к Ардуино

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) — оставляйте их в комментариях к этой статье. Мы сделаем все возможное, чтобы ответить на любые вопросы.

Комментарии 1

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜