Сегодня в Arduino уроке научимся подключать датчик температуры и давления BMP180 к Arduino.
Данный датчик отлично подойдёт для Arduino проекта, в котором необходимо измерять температуру и давление окружающей среды. Благодаря I2C интерфейсу подключения, данный датчик не занимает дополнительных пинов. Напряжение питания от 3.3 до 5 вольт, что позволяет использовать BMP180 как с Arduino, так и с такими микроконтроллерами как ESP32, ESP8266 и STM32. Если вас интересуют уроки по программированию ESP32, ESP8266, то на моем втором сайте «Ардуино технологии» вы найдете уроки по данной теме, и много другой полезной информации.
BMP180 достаточно точный датчик, погрешность измерения давления: 0,1 гектопаскаль, и погрешность измерения температуры: 0,1°С.
Давайте рассмотрим данный датчик. В левой части расположен сам сенсорный датчик BMP180 фирмы Bosch. Так как датчик BMP 180 работает от 3.3В (а почти все платы Arduino работают на 5В), на плате предусмотрен стабилизатор напряжения XC6206P332MR в корпусе SOT-23, который выдает на выходе напряжение в 3.3В, рядом установлена обвязка стабилизатора, состоящая из двух керамических конденсаторов на 1 мкФ. Подключение осуществляется по интерфейсу I2C, линии SCL и SDA выведены на группу контактов на другой стороне модуля, туда же выведено и питание. Последние два резистора на 4.7 кОм необходимы для подтяжки линии SCL и SDA к питанию, конечно, при необходимости, их можно выпаять, если используете несколько устройств на I2C линии.
Датчик поставляется в виде модуля (на печатной плате) с 4 или 5 выводами:
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, из указанных выше.
Для урока понадодиться:
В данном примере используем датчик BMP 180 и плату Arduino NANO, все полученные показания отправляем в «Монитор порта», в принципе и все, осталось собрать схему по рисунку ниже. Для интерфейса I2C на плате Arduino предусмотрено только два вывода A4 и A5.
Подключение датчика давления BMP180 к Arduino NANO.
Подключение датчика давления 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, и если все правильно подключено, то в окне мониторинга порта можно увидеть температуру и атмосферное давление.
В данном уроке рассмотрели Подключение датчика температуры и давления BMP180 к Arduino. В предыдущем уроке мы рассматривали, как можно реализовать анимацию на сегментном дисплее TM1637.
Появились вопросы или предложения, не стесняйся, пиши в комментарии!
Не забывайте подписываться на канал Youtube и вступайте в группы в Вконтакте и Facebook.
Всем Пока-Пока.
И до встречи в следующем уроке
Понравилась статья? Поделитесь ею с друзьями:
Файлы для скачивания
![]() |
BMP180_Breakout_Arduino_Library.zip | 16 Kb | 625 | Скачать |
![]() |
Скачать скетч Подключение BMP180 к Arduino.ino | 4 Kb | 465 | Скачать |
![]() |
BMP180 Digital pressure sensor BMP180 Data.pdf | 656 Kb | 417 | Скачать |
![]() |
Датчик давления и температуры BMP180 (Digital Pressure Sensor).pdf | 414 Kb | 404 | Скачать |
Вернуться в раздел: Уроки Arduino: Подключение датчиков и модулей к Arduino Дата публикации 8 ноября , 2020
Читайте также
Комментарии
Войдите или Зарегистрируйтесь И Вы сможете общаться на форуме и оставлять комментарии без капчи.