Как подключить датчик давления к ардуино
Перейти к содержимому

Как подключить датчик давления к ардуино

  • автор:

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

Как подключить датчик воды к Ардуино

Перед тем как, подключить датчик протечки воды к плате Ардуино, следует написать скетч. Откройте программу Arduino IDE и вы увидите скетч, где уже прописаны процедуры void setup() и void loop() . Для начала зададим переменную water с помощью оператора int . Переменную мы будем использовать для хранения данных в памяти и присваивания ей значения, получаемого с датчика воды.

Перейдите в Панель меню — Инструменты — Монитор порта

В процедуре void setup() мы прописываем режим работы аналогового порта, как вход — команда pinMode(AO,INPUT) и подключаем монитор порта с помощью Serial.begin(9600) . Далее в процедуре void loop() получаем значение с аналогового порта с помощью команды water = analogRead(A0); и передаем значение на монитор порта Arduino IDE Serial.println(water); и ставим паузу для нашего удобства.

Скетч для датчика воды (water sensor)

int water; // присваиваем имя для значений с аналогового входа A0 void setup() < pinMode(A0, INPUT); // к входу A0 подключим датчик (англ. «intput») Serial.begin(9600); // подключаем монитор порта > void loop() < water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023 Serial.println(water); // выводим значение датчика на монитор delay(1000); // задержка в одну секунду >
Пояснения к коду:
  1. в первой строчке мы присвоили переменной int имя water для хранения значений c входа A0, значения water могут принимать только целое число.

После загрузки скетча вы сможете получить данные с датчика на мониторе порта. Для этого перейдите в Arduino IDE в Панель меню — Инструменты — Монитор порта. Или используйте для открытия сочетание клавиш Ctrl + Shift + M. После того, как мы узнали показания датчика при его увлажнении, мы можем добавить в скетч функцию автоматического включения светодиода при превышении какого-либо значения.

Скетч для датчика воды и светодиода Ардуино

int water; // присваиваем имя для значений с аналогового входа A0 void setup() // процедура setup < pinMode(12, OUTPUT); // пин 12 со светодиодом будет выходом (англ. «output») pinMode(A0, INPUT); // к входу A0 подключим датчик (англ. «intput») Serial.begin(9600); // подключаем монитор порта > void loop() // процедура loop < water = analogRead(A0); // переменная "water" находится в интервале от 0 до 1023 if (water > 100) < digitalWrite(12, HIGH); > // включаем светодиод if (water < 100) < digitalWrite(12, LOW); > // выключаем светодиод Serial.println(water); // выводим значение датчика на монитор delay(1000); // задержка в одну секунду >
Пояснения к коду:
  1. условный оператор if позволяет определить действие при истинном условии;
  2. в процедуре void loop с помощью оператора if включаем светодиод при значении water > 100 и выключаем светодиод при значении water < 100 .

Arduino BMP180 (GY-68) как подключить барометр

Arduino BMP180 барометр (датчик давления)

Датчик давления BMP180 позволяет сделать простой барометр с платой Ардуино Нано или Уно. С помощью данного датчика можно создать погодную метеостанцию для дома, добавив к схеме датчик температуры и дисплей 1602 I2C. Рассмотрим, как правильно подключить датчик давления к Arduino bmp180 (bmp080) и вывести данные об атмосферном давлении на монитор порта Arduino IDE и LCD дисплей 1602.

Датчик давления Ардуино BMP180 (GY-68)

Барометр — это устройство, измеряющее атмосферное давление. Современные электронные барометры GY-68 и BMP180 основаны на пьезорезистивном или тензометрическом методе, т.е. в датчиках происходит изменение сопротивления материала под действием деформирующих сил. Обратите внимание, что датчик атмосферного давления GY-68 подключается к питанию 3,3 Вольт Arduino.

Распиновка датчиков давления GY 68 и BMP 180

Технические характеристики BMP180
  • Напряжение питания: 5 Вольт
  • Рабочий ток: 0.5 мАмпер
  • Диапазон измерения: 300 гПа – 1100 гПа
  • Интерфейс подключения: I2C
  • Время срабатывания: 4.5 мс.
  • Точность измерения давления: 0,1 гПа.
  • Диапазон измерения температуры: 0 — 65 °C.

Подключение датчика bmp180 к Ардуино

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • датчик давления BMP180 (GY-68);
  • дисплей LCD 1602;
  • провода «папа-мама».

Как подключить датчик давления bmp180 к Arduino

BMP180 (GY-68) Arduino Uno Arduino Nano Arduino Mega
GND GND GND GND
VIN 5V 5V 5V
SDA A4 A4 20
SCL A5 A5 21

Подключение к микроконтроллеру Ардуино осуществляется по интерфейсу I2C. Контакты SCL / SDA и питание модуля выведены на группу контактов. Кроме того, для работы с датчиком потребуется установить библиотеку BMP180 Breakout Arduino Library, которая позволяет упросить работу с модулем. Команды для bmp180 (bmp080) и gy-68 одинаковые, так что библиотека подойдет для всех перечисленных барометров.

Барометр на Ардуино своими руками

#include "Wire.h" #include "SFE_BMP180.h" SFE_BMP180 pressure; // создаем объект pressure #define ALTITUDE 1655.0 // высота офиса SparkFun, штат Колорадо, в метрах void setup()< Serial.begin(9600); // запускаем монитор порта pressure.begin(); // запускаем датчик давления > void loop()< char status; double T,P,p0,a; // для точного измерения, следует знать высоту, на которой производятся замеры // в этом примере используется константа ALTITUDE Serial.println(); Serial.print("provided altitude: "); Serial.print(ALTITUDE,0); Serial.println(" meters"); // перед измерением давления, следует узнать температуру // если запрос успешен, то возвращается время ожидания в миллисекундах // если запрос на измерение температуры не успешен, то возвращается 0 status = pressure.startTemperature(); if (status != 0)< delay(status); // результат измерения температуры сохраняется в переменной T status = pressure.getTemperature(T); if (status != 0)< Serial.print("temperature: "); Serial.print(T,2); Serial.println(" deg C"); // запускаем измерение давления // если запрос успешен, возвращается время ожидания в миллисекундах // если запрос на измерение давления не успешен, возвращается 0 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"); // датчик bmp180 возвращает абсолютное давление, которое зависит от высоты // параметры: P = абсолютное давление в мб, ALTITUDE = текущая высота в м. // результат: p0 = давление с компенсацией на уровне моря в мбар 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); >
Пояснения к коду:
  1. чтобы убрать влияние высоты при измерении атмосферного давления, используйте функцию уровня моря и текущую высоту;
  2. скачать библиотеку SFE_BMP180.h для работы с датчиком атмосферного давления BMP180 Arduino можно на нашем сайте здесь.

Барометр на Ардуино BMP180 LCD1602

Барометр на Ардуино Уно bmp180 lcd 1602

В следующем примере данные температуры и давления выводятся на текстовый экран (на дисплей не входит вся информация), при этом к шине i2c два устройства сразу подключено. Всего к шине i2c можно подключать до 127 устройств. Подключите к микроконтроллеру текстовый экран (согласно схеме, размещенной выше) и загрузите следующий пример программы для датчика давления GY-68 Arduino Uno.

#include "Wire.h" #include "SFE_BMP180.h" SFE_BMP180 pressure; // создаем объект pressure #define ALTITUDE 1655.0 // высота офиса SparkFun, штат Колорадо, в метрах #include LiquidCrystal_I2C.h> // подключаем библиотеку для QAPASS 1602 LiquidCrystal_I2C LCD(0x27,16,2); // присваиваем имя LCD для дисплея void setup()< pressure.begin(); // запускаем датчик давления LCD.init(); // инициализация LCD дисплея 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); // ставим курсор на 1 строку 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); // ставим курсор на 2 строку 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); >
Пояснения к коду:
  1. изменив программу, вы можете выводить на экран не значение температуры, а абсолютное и относительное атмосферное давление;
  2. при изменении температуры воздуха, происходит корректировка давления.

Заключение. Датчик давления воздуха bmp180 очень прост в подключении к плате, а библиотека SFE_BMP180 позволяет без труда использовать этот модуль во многих DIY проектах для начинающих. Надеемся, что этот обзор был для вас полезен, а если у вас остались вопросы по работе с модулем bmp180 (gy-68) — оставляйте их в комментариях к этой записи. Мы стараемся отвечать на все вопросы пользователей.

Датчик давления воды для ардуино

Подключение датчика давления воды к ардуино

Среди множества датчиков для ардуино нашлось место датчику давления воды. Как понятно из названия, датчик давления воды для ардуино измеряет давление создаваемое водой. Это полезно знать, например в квартире на верхних этажах, или в частном доме.

Модель датчика давления воды для ардуино представлен на алиэкспрессе моделью USP-G41-1.2. Внешний вид датчика представлен на рисунке ниже:

Датчик давления воды для ардуино

Датчик давления воды USP-G41-1.2 преобразует давление воды в напряжение в виде линейной зависимости.

Характеристики датчика

Программный код Arduino IDE для работы с датчиком давления

#define SENSOR A0 // Пин на который подключен датчик void setup() < Serial.begin(9600); >void loop() < int raw = analogRead(SENSOR); float voltage = (float) raw * 5.0 / 1024.0; // напряжение на измерительном контакте ардуино Serial.println("Pressure is"); float pressure_kPa = (voltage - 0.5) / 4.0 * 1200.0; // перевод напряжения в давление Serial.print(pressure_kPa); Serial.println(" kPa"); float pressure_psi = pressure_kPa * 0.14503773773020923; // перевод кПа в psi Serial.print(pressure_psi); Serial.println(" psi"); delay(500); >
  1. Выход датчика (OUT) подключается к аналоговому контакту А0 Ардуино.
  2. В строчке float pressure_kPa = (voltage — 0.5) / 4.0 * 1200.0; вычисляется значение давления датчика учитывая измеряемый диапазон.
  3. Строчка float pressure_psi = pressure_kPa * 0.14503773773020923; переводит давление из КилоПаскалей в единицы psi.

Также учитывайте, что данный датчик имеет температурную погрешность. Ее, при необходимости, нужно учитывать.

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

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