Главная » Arduino » Подключение барометра BMP085 к Arduino

Подключение барометра BMP085 к Arduino

температура давление высота BMP085 Arduino Mega 2560 Arduino  arduino  В этот раз я опишу процесс подключения цифрового датчика атмосферного давления BMP085 к Arduino.

Этот датчик я собираюсь использовать в проекте домашней метеостанции, поэтому опишу работу с ним максимально подробно.

Характеристики BMP085

  • Пределы измерения абсолютного давления 30-110кПа (300-1100hPa) (-500…9000 метров над уровнем моря)
  • Питание 1.8 — 3.6В (Vdda), 1.62 — 3.6В (Vddd)
  • Низкий уровень шума:
    0.06hPa (0.5м) в стандартном режиме
    0.03hPa (0.25м) в режиме ультравысокого разрешения
    0.1m возможно при применение программного фильтра.
  • Интерфейс: I2C
  • Разрешение: 0.01 hPa,  0.1 С

Расположение и назначение выводов BMP085

температура давление высота BMP085 Arduino Mega 2560 Arduino  arduino

Подключение BMP085 к Arduino

Схема подключения довольно простая:

  • VCC на BMP085 подключаем к +3,3 V Arduino
  • SDA на BMP085 подключаем к пин 20 (SDA) Arduino Mega 2560 (аналоговый пин 4 на Arduino Uno)
  • SCL на BMP085 подключаем к пин 21 (SCL) Arduino Mega 2560 (аналоговый пин 5 на Arduino Uno)
  • GND на BMP085 подключаем к GND Arduino

температура давление высота BMP085 Arduino Mega 2560 Arduino  arduino

Для работы с датчиком в среде Arduino необходимо установить дополнительную библиотеку bmp085.

температура давление высота BMP085 Arduino Mega 2560 Arduino  arduino    bmp085.rar (51,9 KiB, 2 766 hits)

Скачайте архив и распакуйте его содержимое в \arduino-1.xx\libraries\

Тестовый скетч, который выводит в окно Монитора порта высоту, давление и температуру:

#include <Wire.h>
#include <BMP085.h>

BMP085 dps = BMP085();    

long Temperature = 0, Pressure = 0, Altitude = 0;

void setup(void) {
  Serial.begin(9600);
  Wire.begin();
  delay(1000);

  dps.init(); 
}          

void loop(void) {
  dps.getPressure(&Pressure);
  dps.getAltitude(&Altitude);
  dps.getTemperature(&Temperature);

  Serial.print("  Alt(m):");
  Serial.print(Altitude/100);
  Serial.print("  Pressure(mm Hg):");
  Serial.print(Pressure/133.3);
  Serial.print(" Temp:");
  Serial.println(Temperature*0.1);
  delay(2000);
}

Результат работы:

температура давление высота BMP085 Arduino Mega 2560 Arduino  arduino

Установка датчика атмосферного давления

Датчик атмосферного давления устанавливается в помещении вдали от окон и отопительных приборов. Атмосферное давление зависит от высоты над уровнем моря места, где производится измерение; поэтому требуется калибровка датчика давления перед его использованием. Для правильной установки прибора необходимо воспользоваться показаниями другого барометра или данными ближайшей метеостанции (с учётом разности высот, определённой по подробной топографической карте; 10 м подъёма соответствует уменьшению давления примерно на 1 мм рт.ст. или 1.3 гПа(мБ)).

© meteocenter.net

Похожие записи
Ведроид-мобиль — робот на Arduino — Ча... В этой статье я опишу процесс создания шилда управления роботом, подключение ультразвукового дальномера и реализацию алгоритма объезда препятствий. На...
Подключение RFID модуля RDM630 к Arduino Mega 2560... Сегодня я пошагово опишу процесс подключения RFID модуля RDM630 к Arduino Mega 2560. Данный модуль может быть использован для создания системы радиоч...
WeMos D1 R2 на ESP8266 – первое знакомство... Подробный обзор Arduino совместимого контроллера WeMos D1 R2 на базе ESP8266. На днях получил посылку из Китая с платой контроллера WeMos D1 R2 на ба...
Подключение LCD Keypad Shield к Arduino... Сегодня я решил описать процесс подключения к контроллеру Arduino платы LCD Keypad Shield и пример работы с ним. Сам LCD Keypad Shield представляет с...
This entry was posted in Arduino and tagged , , , , , . Bookmark the permalink.

5 комментариев: Подключение барометра BMP085 к Arduino

  1. Serg говорит:

    У меня в Serial Monitor'e не выводится действительное значение высоты над уровнем моря (Alt). Вместо этого выводятся хаотично "0", "1", или "-1". Значения атмосферного давления и температуры выводятся корректно. В чём ошибка?

    • source™ говорит:

      у меня такой проблемы не возникало

    • Artem говорит:

      Запишите Serial.print(Altitude/100., X); X число разрядов после запятой, у вас всё нормально только не выводит дробную часть числа, например Serial.print(Altitude/100., 1);. Вывод будет 1.4
      Serial.print(Altitude/100.,2); Вывод будет 1.45.

  2. Andrey говорит:

    Пара вопросов по значениям напряжений:
    1) На данной плате с датчиком (GY-65) есть линейный стабилизатор на 3,3В, означает ли это, что линию VCC можно подключать к +5В?
    2) Уровни напряжений на линиях A4/A5 соответствуют стандарту LVTTL (т.е. с макс. напряжением 3,3В вместо 5В, и это реализовано программно через соотв. вызов analogWrite() ) и никакого дополнительного преобразования уровней для BMP085 не требуется?

    • source™ говорит:

      1 не проверял. подключал на 3,3
      2 для Arduino преобразования уровней не требуется

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

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