#25. Подключение датчика температуры и давления BMP180 к Arduino.

.#25. Подключение датчика температуры и давления BMP180 к Arduino.

Сегодня в Arduino уроке научимся подключать датчик температуры и давления BMP180 к Arduino.

Данный датчик отлично подойдёт для Arduino проекта, в котором необходимо измерять температуру и давление окружающей среды. Благодаря I2C интерфейсу подключения, данный датчик не занимает дополнительных пинов. Напряжение питания от 3.3 до 5 вольт, что позволяет использовать BMP180 как с Arduino, так и с такими микроконтроллерами как ESP32, ESP8266 и STM32. Если вас интересуют уроки по программированию ESP32, ESP8266, то на моем втором сайте «Ардуино технологии» вы найдете уроки по данной теме, и много другой полезной информации.

Сегодня в Arduino уроке научимся подключать датчик температуры и давления BMP180 к Arduino.

BMP180 достаточно точный датчик, погрешность измерения давления: 0,1 гектопаскаль, и погрешность измерения температуры: 0,1°С.

Параметры датчика давления и температуры BMP180.

  • Напряжение питания: 3.3 В – 5 В.
  • Рабочий ток: 0.5 мA.
  • Диапазон измеряемого давления:300 гПа. – 1100 гПа.
  • Интерфейс: I2C
  • Время срабатывания: 4.5 мс.
  • Точность измерения давления: 0.1 гектопаскаль
  • Точность измерения температуры: 0.1°С
  • Габариты: 15 мм. х 14 мм.

Общие сведения.

Параметры датчика давления и температуры BMP180.

Давайте рассмотрим данный датчик. В левой части расположен сам сенсорный датчик 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)

Рассмотрим датчик давления и температуры 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.

Датчик имеет возможность передачи данных, используя интерфейсы I2C (выводы: 5-CSL и 6-SDA) или SPI (выводы: 1-CS, 4-MOSI, 5-CSLK и 6-MISO)

В рассматриваемых модулях используется протокол I2C, а значит, выводы 1 и 4 датчика не используются, но должны быть припаяны к плате для симметрии

Виды некоторых модулей с установленным датчиком BMP180:

Виды некоторых модулей с установленным датчиком BMP180

В примере будем использовать первый датчик BMP180, из указанных выше.

Выводы модуля BMP180:

  • VIN (Vcc, Vdd) плюс питания;
  • GND (-) (англ. GrouND) общий (минус питания);
  • SDA (DA) (англ. Serial DAta) линия данных, интерфейс I2C
  • SCL (CL) (англ. Serial CLock) линия тактирования, интерфейс I2C

Принципиальная схема датчика BMP180, показана ниже.

Принципиальная схема датчика BMP180

Подключение датчика давления BMP180 к Arduino.

Для урока понадодиться:

Подключение датчика давления BMP180 к Arduino:

В данном примере используем датчик BMP 180 и плату Arduino NANO, все полученные показания отправляем в «Монитор порта», в принципе и все, осталось собрать схему по рисунку ниже. Для интерфейса I2C на плате Arduino предусмотрено только два вывода A4 и A5.

 датчик BMP 180 и плату Arduino NANO

Подключение датчика давления BMP180 к Arduino NANO.

Подключение датчика давления BMP180 к Arduino UNO

Подключение датчика давления BMP180 к Arduino UNO.

Теперь, о программной части. Для нашего удобства разработана библиотека BMP180 Breakout Arduino Library, которая позволяет упросить работу с датчиком, скачиваем и устанавливаем ее.

#include <SFE_BMP180.h>
#include <Wire.h>

SFE_BMP180 pressure;                          // Объявляем переменную для доступа к SFE_BMP180

void setup()
{
 Serial.begin(9600);                          // Задаем скорость передачи данных
 Serial.println("REBOOT");                    // Вывод текста "Перезагрузка"

 if(pressure.begin())                         // Инициализация датчика
     Serial.println("BMP180 init success");   // Вывод текста "BMP180 подключен"
   else{                                      // В противном случаи, датчик не подключен
     Serial.println("BMP180 init fail\n\n");  // Вывод текста "BMP180 не подключен"
     while(1);                                // Пауза.
       }
}

void loop()
{
  char status;
  double T,P,p0,a;

/* Так как давление зависит от температуры, надо сначало узнать температуру 
 * Считывание температуры занимает какоето время. 
 * Если все хорошо, функция pressure.startTemperature вернет status с количеством милисикунд
 * которые нужно подождать. Ксли какае то проблема, то функция вернет 0.
*/

  status = pressure.startTemperature();       // Считывание показания
  if(status!=0){                              // Если значение status не 0, выполняем следующию команду.
     delay(status);                           // Ждем     
     status = pressure.getTemperature(T);     // Полученые показания, сохраняем в переменную T
      if(status!=0){                          // Если все хорошо, функция вернет 1, иначе вернет 0
         Serial.print("Temperature: ");       // Вывод текста "Температура"
         Serial.print(T,2);                   // Вывод показания переменной "Т"
         Serial.println(" C, ");              // Вывод текста "С"

/* Определяем показания атмосферного давления
 * Параметр указывает расширение, от 0 до 3 (чем больше расширение, тем больше точность, тем долше ждать)
 * Если все хорошо, функция pressure.startTemperature вернет status с количеством милисикунд
 * которые нужно подождать. Если какая то проблема, то функция вернет 0.
*/

  status = pressure.startPressure(3);         // Считывание показания
  if(status!=0){                              // Если значение status не 0, выполняем следующию команду.
     delay(status);                           // Ждем
     status = pressure.getPressure(P,T);      // Полученные показания, сохраняем в переменную P
      if(status!=0){                          // Если все хорошо, функция вернет 1, иначе вернет 0 
         Serial.print("Absolute pressure: "); // Вывод текста "Атмосферное давление"
          Serial.print(P,2);                  // Вывод показания переменной mBar
          Serial.print(" mbar, ");            // ПВывод текста "mBar"
          Serial.print(P*0.7500637554192,2);  // Вывод показания в mmHg
          Serial.println(" mmHg");}           // Вывод текста "mmHg"

  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);                                                        // Пауза в 5с
}

Загружаем скетч в плату Arduino, и если все правильно подключено, то в окне мониторинга порта можно увидеть температуру и атмосферное давление.

Загружаем скетч в плату arduino,

В данном уроке рассмотрели Подключение датчика температуры и давления BMP180 к Arduino. В предыдущем уроке мы рассматривали, как можно реализовать анимацию на сегментном дисплее TM1637.

В данном уроке рассмотрели Подключение датчика температуры и давления BMP180 к Arduino.

Появились вопросы или предложения, не стесняйся, пиши в комментарии!

Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.

Всем Пока-Пока.

И до встречи в следующем уроке

Понравилась статья? Поделитесь ею с друзьями:

Файлы для скачивания

BMP180_Breakout_Arduino_Library BMP180_Breakout_Arduino_Library.zip16 Kb 833 Скачать
Скачать скетч Подключение BMP180 к Arduino Скачать скетч Подключение BMP180 к Arduino.ino4 Kb 632 Скачать
BMP180 Digital pressure sensor BMP180 Data BMP180 Digital pressure sensor BMP180 Data.pdf656 Kb 553 Скачать
Датчик давления и температуры BMP180 (Digital Pressure Sensor) Датчик давления и температуры BMP180 (Digital Pressure Sensor).pdf414 Kb 537 Скачать
Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 8 ноября , 2020

Комментарии

Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.


Cлучайные товары

Посмотреть товар в Магазине »

Мы в соц сетях

Подпишись на канал Telegram

Portal-PK (Портал ПК) © 2015 - 2024
Разработка проектов
AT Block
DWIN Box