Блог о программировании, электронике и рыбалке

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

bmp085В этот раз я опишу процесс подключения цифрового датчика атмосферного давления 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

Подключение 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 необходимо установить дополнительную библиотеку bmp085.

bmp085.rar (51,9 KiB, 3 117 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

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

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

© meteocenter.net

Не забывайте оценивать и комментировать статьи, чтобы автор понимал — стоит ли писать на похожие темы или это интересно только ему одному :)

Похожие записи

  • keyboard_arrow_downПодключение барометра BMP085 к Arduino
    • Автор:
    • Язык: ru-RU
    • Миниатюра: Подключение барометра BMP085 к Arduino
    • Рубрика: Arduino от А до Я
    • Обновлено: 26.12.2017
    • Комментариев: 5
    • Просмотров: 18 695
      • searchПоисковые боты
        Дата Бот
        2018-01-16 12:49:18 Bing
        2018-01-15 19:13:21 Google
        2018-01-15 19:00:17 Yandex
        2018-01-15 18:52:48 Google
        2018-01-15 11:07:27 Bing
        2018-01-14 16:28:36 Google
        2018-01-14 03:12:52 Bing
        2018-01-14 02:32:26 Yandex
        2018-01-13 11:28:59 Google
        2018-01-13 03:14:21 Google
  • Оцените пожалуйста статью
    1 Star2 Stars3 Stars4 Stars5 Stars
    Loading Загрузка...
  • Поделитесь с друзьями
GeekElectronics

Комментариев: 5

  • Avatar for source
    Serg:

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

    • Avatar for source
      Artem:

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

  • Avatar for source
    Andrey:

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

    • Avatar for source
      source™:

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

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

arrow_upward