Warning: fopen(/var/projects/prod/php/www/proglife/proglife_main_storage/storage/logs/error.log): failed to open stream: Permission denied in /var/projects/prod/php/www/proglife/proglife/system/library/log.php on line 22 Работа с многофункциональным датчиком BME280 - Я у мамы программист
0
0
0
Ваш город: 

Работа с многофункциональным датчиком BME280

Работа с многофункциональным датчиком BME280

В этом небольшом уроке рассмотрим, как работать с датчиком давления, температуры и влажности BME280.

Модуль датчика BME280 считывает атмосферное давление, температуру и влажность. Поскольку давление меняется с высотой, с помощью этого датчика вы также можете оценить высоту.Датчик BME280 использует протокол связи I2C или SPI для обмена данными с микроконтроллером.

Модуль представлен несколькими конфигурациями, сегодня мы рассмотрим работу с модулем, который показан ниже.



Этот датчик взаимодействует с контроллером через протокол связи I2C, поэтому он очень прост в подключении. Четырехпиновая версия датчика подключается к плате по следующим пинам:

BME2080 UNO
Vin 5V
GND GND
SCL A5
SDA A4

Компоненты для реализации эксперимента

Для сборки схемы понадобятся следующие компоненты:

  • Плата Arduino UNO или совместимая
  • Беспаячная макетная плата
  • Модуль датчика BME280
  • Соединительные провода

Схема подключения BME280

Загрузка кода

Для корректной работы кода в первую очередь требуется установка библиотек Adafruit BME280 Library и Adafruit Unified Sensor. Их можно установить, использовав встроенный менеджер библиотек Arduino IDE по пути Инструменты / Управлять библиотеками. После открытия Менеджера достаточно скопировать названия библиотек в строку поиска и установить одноименные на свой компьютер.

После установки библиотеки BME280 и Adafruit_Sensor откройте среду  Arduino и перейдите в раздел Файл / Примеры /  Adafruit BME280 Library / bme280 test.


#include <wire.h>
#include <spi.h>
#include <adafruit_sensor.h>
#include <adafruit_bme280.h>

#define BME_SCK 13
#define BME_MISO 12
#define BME_MOSI 11
#define BME_CS 10

#define SEALEVELPRESSURE_HPA (1013.25)

Adafruit_BME280 bme; // I2C
//Adafruit_BME280 bme(BME_CS); // hardware SPI
//Adafruit_BME280 bme(BME_CS, BME_MOSI, BME_MISO, BME_SCK); // software SPI

unsigned long delayTime;

void setup() {
  Serial.begin(9600);
  Serial.println(F("BME280 test"));

  bool status;
  
  // настройки по умолчанию
  
  status = bme.begin();  
  if (!status) {
    Serial.println("Датчик BME280 не найден, проверьте подключение!");
    while (1);
  }
  
  Serial.println("-- Тест --");
  delayTime = 1000;

  Serial.println();
}


void loop() { 
  printValues();
  delay(delayTime);
}


void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");
  
  // здесь содержится код для отображения температуры в Фаренгейтах
  // для его использования, нужно убрать кавычки
  /*Serial.print("Температура = ");
  Serial.print(1.8 * bme.readTemperature() + 32);
  Serial.println(" *F");*/
  
  Serial.print("Давление = ");
  Serial.print(bme.readPressure() / 100.0F);
  Serial.println(" hPa");
  
  Serial.print("Примерная высота = ");
  Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
  Serial.println(" m");
  
  Serial.print("Влажность = ");
  Serial.print(bme.readHumidity());
  Serial.println(" %");
  
  Serial.println();
}
Дополнительный комментарий при загрузке кода может потребовать переменная #define SEALEVELPRESSURE_HPA (1013.25). Эта переменная сохраняет значение давления на уровне моря в гектопаскалях (эквивалентно милибару). Переменная используется для оценки высоты для данного давления путем сравнения ее с давлением на уровне моря. В этом примере используется значение по умолчанию, но для получения более точных результатов можно заменить это значение текущим давлением на уровне моря в вашей местности.

BME280, уроки Arduino, проекты Arduino, датчик давления, датчик температуры, датчик влажности

Фотографии
Похожие статьи
13.09.2021
Отображение данных дальномера с использованием Raspberry Pi Pico и MicroPython
Отображение данных дальномера с использованием Raspberry Pi Pico и MicroPython
В этой статье вы познакомитесь с простым проектом на Raspberry Pi Pico: научитесь связывать ультразвуковой датчик с платой Pico и измерять расстояние до объекта, а затем отображать расстояние на модуле OLED-дисплея с помощью MicroPython...
15.09.2021
Управление светодиодами с помощью ИК пульта
Управление светодиодами с помощью ИК пульта
В этом проекте вы научитесь управлять светодиодами с ИК пульта...