Данный датчик отлично подойдёт для Arduino проекта, в котором необходимо измерять температуру и давление окружающей среды. Благодаря I2C интерфейсу подключения, данный датчик не занимает дополнительных пинов. Напряжение питания от 3.3 до 5 вольт, что позволяет использовать BMP180 как с Arduino, так и с такими микроконтроллерами как ESP32, ESP8266 и STM32. Если вас интересуют уроки по программированию ESP32, ESP8266, то на моем втором сайте «Ардуино технологии» вы найдете уроки по данной теме, и много другой полезной информации.
BMP180 достаточно точный датчик, погрешность измерения давления: 0,1 гектопаскаль, и погрешность измерения температуры: 0,1°С.
Параметры датчика давления и температуры BMP180.
- Напряжение питания: 3.3 В – 5 В.
- Рабочий ток: 0.5 мA.
- Диапазон измеряемого давления:300 гПа. – 1100 гПа.
- Интерфейс: I2C
- Время срабатывания: 4.5 мс.
- Точность измерения давления: 0.1 гектопаскаль
- Точность измерения температуры: 0.1°С
- Габариты: 15 мм. х 14 мм.
Общие сведения.
Давайте рассмотрим данный датчик. В левой части расположен сам сенсорный датчик BMP180 фирмы Bosch. Так как датчик BMP 180 работает от 3.3В (а почти все платы Arduino работают на 5В), на плате предусмотрен стабилизатор напряжения XC6206P332MR в корпусе SOT-23, который выдает на выходе напряжение в 3.3В, рядом установлена обвязка стабилизатора, состоящая из двух керамических конденсаторов на 1 мкФ. Подключение осуществляется по интерфейсу I2C, линии SCL и SDA выведены на группу контактов на другой стороне модуля, туда же выведено и питание. Последние два резистора на 4.7 кОм необходимы для подтяжки линии SCL и SDA к питанию, конечно, при необходимости, их можно выпаять, если используете несколько устройств на I2C линии.
Рассмотрим датчик давления и температуры BMP180 (Digital Pressure Sensor)
Датчик поставляется в виде модуля (на печатной плате) с 4 или 5 выводами:
- если у модуля 4 вывода (VIN GND SCL SDA), то на вывод VIN подаётся питание +3,3в.
- если у модуля 5 выводов (VIN 3V3 GND SCL SDA), то на вывод VIN подаётся +5в. (так же можно запитать модуль с 5 выводами от 3,3в, подав их на вывод 3V3 оставив вывод VIN свободным)
- если у модуля 5 выводов с выводом IO или VDDIO, то считайте, что у вашего модуля 4 вывода. Не подавайте +5в.
Выводы датчика BMP180:
1 — CS, 2 — VDD, 3 — VDDIO, 4 — MOSI, 5 — CSL (CSLK), 6 — SDA (MISO), 7 — GND.
bmp180 подключение к Arduino
Датчик имеет возможность передачи данных, используя интерфейсы I2C (выводы: 5-CSL и 6-SDA) или SPI (выводы: 1-CS, 4-MOSI, 5-CSLK и 6-MISO)
В рассматриваемых модулях используется протокол I2C, а значит, выводы 1 и 4 датчика не используются, но должны быть припаяны к плате для симметрии
Виды некоторых модулей с установленным датчиком BMP180:
В примере будем использовать первый датчик BMP180, из указанных выше.
Выводы модуля BMP180:
- VIN (Vcc, Vdd) плюс питания;
- GND (-) (англ. GrouND) общий (минус питания);
- SDA (DA) (англ. Serial DAta) линия данных, интерфейс I2C
- SCL (CL) (англ. Serial CLock) линия тактирования, интерфейс I2C
Принципиальная схема датчика BMP180, показана ниже.
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 будет отлично работать для всех перечисленных сенсоров.
Технические параметры
► Напряжение питания: 3.3 В – 5 В
► Рабочий ток: 0.5 мA
► Диапазон измеряемого давления: 300 гПа – 1100 гПа
► Интерфейс: I2C
► Время срабатывания: 4.5 мс.
► Точность измерения давления: 0,1 гектопаскаль;
► Точность измерения температуры: 0,1°С;
► Габариты: 15 мм х 14 мм
Рассмотрим модуль поближе, в левой части расположен сам сенсорный датчик BMP180 фирмы Bosch. Так как датчик BMP 180, работает от 3.3В (а почти все платы Arduino работают на 5В), на плате предусмотрен стабилизатор напряжения XC6206P332MR в корпус SOT-23, который выдает на выходе напряжение в 3.3В, рядом установлена обвязка стабилизатора, состоящая из двух керамических конденсаторов на 1 мкФ. Подключение осуществляется по интерфейсу I2C, линии SCL и SDA выведены на группу контактов на другой стороне модуля, туда же выведено и питание. Последние два резистора на 4.7 кОм, необходимы подтяжки линии SCL и SDA к питанию, конечно при необходимости их можно выпаять, если используете несколько устройств на I2C линии.
Назначение контактов:
► SCL — линия тактирования (Serial CLock)
► SDA — линия данных (Serial Data)
► VCC — «+» питание
► GND — «-» питание
Принципиальная схема датчика BMP180, показана ниже.
Подключение датчика давления BMP180 к Arduino
Необходимые детали:
► Барометрический датчик давления BMP180 (3.3В, GY-68) x 1 шт.
► Arduino UNO R3 (DCCduino, CH340G)x 1 шт.
► Провод DuPont 10x, 2,54 мм, 20 см, F-F (Female — Female) x 1 шт.
Подключение:
В данном примере используем датчик BMP 180 и плату Arduino UNO R3, все получение показание отправлять в «Serial порт», принципе и все, осталось собрать схему по рисунку ниже. Для интерфейса I2C на плате arduino предусмотрено только два вывода A4 и A5, другие вывода не поддерживают I2C, так что учтите при проектирование.
Теперь, о программной части, для нашего удобства разработана библиотека BMP180 Breakout Arduino Library v.1.1.2, которая позволяет упросить работу с датчиком, скачиваем и устанавливаем ее, кстати датчик BMP180 и BMP080 похожи, включая и команды, так что библиотека у них одна.