ESP8266 и BME280 Датчик температуры, давления и влажности SPI
BMP280 обладает высокой точностью, хорошей стабильностью и линейностью.
Технические характеристики:
Габариты 2 х 2,5 х 0,95 мм.
Давление 300-1100гПа;
Температуры от 0С до 65 С;
Поддержка интерфейсов I2C и SPI;
Напряжение питания 1,7В – 3,6В (есть 5В версия)
Средний ток 2,7мкА;
3 режима работы – режим сна, режим FORCED (проведение измерения, считывание значения, переход в спящий режим), режим NORMAL (перевод датчика в циклическую работу – то есть устройство самостоятельно через установленное время выходит из режима сна, проводит измерения, считывает показания, сохраняет измеренные значения и переходит снова в режим сна).
Подключение датчика BME280. Расположение контактов и распиновка у датчика BME280 такая же, как у BMP280
Так как датчик может работать по I2C и SPI, подключение можно реализовать двумя методами.
При подключении по SPI нужно соединить:
SCL с модуля к D2 (GPIO 4) контакту
SDO - к HMISO D6 (GPIO 12) контакту
SDA – к HMOSI D7 (GPIO 13) контакту
CSB (CS) – к HCS D8 (GPIO 15) контакту
VCC подключается к 3,3В.
GND к GND
Для начала необходимо установить две библиотеки, Adafruit BME280 Library и Adafruit Sensor.
Теперь можно загрузить скетч в ESP8266.
Технические характеристики:
Габариты 2 х 2,5 х 0,95 мм.
Давление 300-1100гПа;
Температуры от 0С до 65 С;
Поддержка интерфейсов I2C и SPI;
Напряжение питания 1,7В – 3,6В (есть 5В версия)
Средний ток 2,7мкА;
3 режима работы – режим сна, режим FORCED (проведение измерения, считывание значения, переход в спящий режим), режим NORMAL (перевод датчика в циклическую работу – то есть устройство самостоятельно через установленное время выходит из режима сна, проводит измерения, считывает показания, сохраняет измеренные значения и переходит снова в режим сна).
Подключение датчика BME280. Расположение контактов и распиновка у датчика BME280 такая же, как у BMP280
Так как датчик может работать по I2C и SPI, подключение можно реализовать двумя методами.
При подключении по I2C нужно соединить контакты SDA и SCL.
При подключении по SPI нужно соединить:
SCL с модуля к D2 (GPIO 4) контакту
SDO - к HMISO D6 (GPIO 12) контакту
SDA – к HMOSI D7 (GPIO 13) контакту
CSB (CS) – к HCS D8 (GPIO 15) контакту
VCC подключается к 3,3В.
GND к GND
Для начала необходимо установить две библиотеки, Adafruit BME280 Library и Adafruit Sensor.
Теперь можно загрузить скетч в ESP8266.
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
// assign the SPI bus to pins
#define BME_SCK 4
#define BME_MISO 12
#define BME_MOSI 13
#define BME_CS 15
#define SEALEVELPRESSURE_HPA (1013.25)
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 тест"));
bool status;
// default settings
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("Температура: ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Атмосферное давление: ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println("гПа");
Serial.print("Прибл. высота над уровнем моря: ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" м");
Serial.print("Влажность: ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
#include <SPI.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>
// assign the SPI bus to pins
#define BME_SCK 4
#define BME_MISO 12
#define BME_MOSI 13
#define BME_CS 15
#define SEALEVELPRESSURE_HPA (1013.25)
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 тест"));
bool status;
// default settings
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("Температура: ");
Serial.print(bme.readTemperature());
Serial.println(" *C");
Serial.print("Атмосферное давление: ");
Serial.print(bme.readPressure() / 100.0F);
Serial.println("гПа");
Serial.print("Прибл. высота над уровнем моря: ");
Serial.print(bme.readAltitude(SEALEVELPRESSURE_HPA));
Serial.println(" м");
Serial.print("Влажность: ");
Serial.print(bme.readHumidity());
Serial.println(" %");
Serial.println();
}
Более подробно тут
Комментарии
Отправить комментарий