Подключение BME280 к Ардуино

25-02-2020, 18:35 1 комментариев
Сегодня хотим поведать вам о том, как провести подключение BME280 к Arduino и для чего в целом необходимо данное устройство. Датчик давления – не что иное, как цифровой модуль на микрочипе, который создан для измерения влажности, температуры и атмосферного давления воздуха.

Подобные сенсоры часто применяются в различных проектах по модернизации либо созданию в домашних условиях метеостанций (прогнозированию погоды), в современных системах навигации GPS, в различных спортивных приложениях. Они не потребляют значительные системные ресурсы (в особенности электроэнергию), имеют компактные размеры, легки в сборке и функционировании, достаточно доступны по стоимости.

К слову, мы уже рассматривали другие модификации цифровых барометров – можете перейти по ссылкам, почитать на досуге подробнее. А мы продолжаем.

Поговорим о технических параметрах сенсора:
  • напряжение питания: 1,7 – 3,6V;
  • потребляемый ток: 0,1 мкА;
  • тип шины: I2C и SPI;
  • диапазон измерения давления: 300-1100hPa;
  • -- влажности: от 0 до 100%;
  • -- температуры: -40 - +85 °C;
  • отклик: 1 секунда;
  • габариты: 2,5 х 2,5 х 0,93мм.
Прибор имеет отличный (и надежный) металлический LGA-корпус с 8-ю выходами, отличается стабильностью и долговечностью.
Ну а теперь приступим к главному – сборке всех аппаратных компонентов. Для реализации схемы подключения через интерфейс I2C, нам понадобится такое «железо»: плата расширения Arduino Uno (Arduino Nano и другие совместимые микроконтроллеры также сгодятся), модуль датчика давления, соединительные провода (перемычки), макетная плата, USB-кабель для подключения к компьютеру.

Вот как выглядит принципиальная схема на скриншоте:
Для выполнения поставленных задач и в целом для упрощения процесса программирования, советуем пользоваться проверенными специализированными библиотеками. В нашем случае речь идет сразу о нескольких вариантах: Adafruit BME280 Library, Adafruit Sensor, Wire и SPI (эти 2 для управления интерфейсами).

https://github.com/adafruit/Adafruit_BME280_Library
https://github.com/adafruit/Adafruit_Sensor
Скачиваем файлы, разархивируем их в папке директории libraries (в среде IDE).

Проверим функциональность и работоспособность сенсора. Прописываем такой скетч:
#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;
 
    // default settings
    status = bme.begin();
    if (!status) {
        Serial.println("Could not find a valid BME280 sensor, check wiring!");
        while (1);
    }
 
    Serial.println("-- Default Test --");
    delayTime = 1000;
 
    Serial.println();
 
    delay(100); // let sensor boot up
}
 
void loop() { 
    printValues();
    delay(delayTime);
}
 
void printValues() {
    Serial.print("Temperature = ");
    Serial.print(bme.readTemperature());
    Serial.println(" *C");
 
    Serial.print("Pressure = ");
 
    Serial.print(bme.readPressure() / 100.0F);
    Serial.println(" hPa");
 
    Serial.print("Approx. Altitude = ");
    Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
    Serial.println(" m");
 
    Serial.print("Humidity = ");
    Serial.print(bme.readHumidity());
    Serial.println(" %");
 
    Serial.println();
}
Управляется модуль стандартно - через последовательный порт. Открываем его через меню Инструменты (либо кнопками Ctrl+Shift+M). Все значения будут доступны на экране. Значит, все сделано правильно – можно тестировать далее!

Метеостанция BME280 и Ардуино – два компонента, собрав которые воедино, вы получите уникальную платформу для экспериментов и интереснейших проектов.
Поделись в социальных сетях:
О авторе
Калугин Антон

Программист микроконтроллеров с 8-ми летним стажем, работал в таких компаниях как IBM, ASUS, Microsoft.

В комментариях с радостью отвечу на ваши вопросы.

Все статьи автора
Похожие новости

Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...

На повестке дня - подключение LM35 к Arduino. Сегодня мы рассмотрим модуль устройства, его базовые характеристики, область применения и схему подключения. И...

Сегодня поговорим о том, как подключить датчик давления BMP280 к Ардуино, для чего он необходим, какие библиотеки и прошивки применяются для его работы. Мы уже...

Сегодня у нас на рассмотрении подключение MQ-135 к Arduino и все, что с ним связано. Данная тема и в особенности модуль сенсора выбраны не случайно, ведь в...

На повестке дня - подключение AM2320 к Ардуино. Тема очень занятная по той простой причине, что подобные датчики являются просто «мастхевом» для современных...

1 комментария
  1. Алекс
    23 октября 2021 09:21 Алекс

    Всё отлично, только добавь ссылку на библиотеку Adafruit_BusIO при компиляции просит Adafruit_I2CDevice.h это тут https://github.com/adafruit/Adafruit_BusIO

    replyОтветить
Оставить комментарий