• Arduino cảm biến nhiệt độ và độ ẩm BME280.

QC

Arduino cảm biến nhiệt độ và độ ẩm BME280.

 BME280 Arduino 

    Hướng dẫn này cho biết cách sử dụng mô-đun cảm biến BME280 với Arduino để đọc áp suất, nhiệt độ, độ ẩm và ước tính độ cao. Chúng tôi sẽ hướng dẫn bạn cách đấu dây cảm biến, cài đặt các thư viện cần thiết và viết một bản phác thảo đơn giản để hiển thị các kết quả đọc của cảm biến.

Loại 1: I2C communication 


KẾT NỐI ARDUINO: 

BME280Arduino
Vin5V 
GNDGND 
SCLA5 
SDAA4  

  

Loại 2: 


Có 2 cách kết nối :

Kết nối 1: I2C communication 

BME280Arduino
SCK (SCL Pin)A5
SDI (SDA pin)A4

Kết nối 2:   SPI communication 

BME280Arduino
SCK (SPI Clock)Pin 13
SDO (MISO)Pin 12
SDI (MOSI)Pin 11
CS (Chip Select)Pin 10

CÀI ĐẶT THƯ VIỆN ARDUINO.

Sketch Include Library > Manage Libraries

Thư viện 1 : adafruit bme280 ”



Thư viện 2 : Adafruit Unified Sensor




KẾT NỐI PHẦN CỨNG:




TEST NHƯ SAU :

File > Examples > 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;
  
  // default settings
  // (you can also pass in a Wire library object like &Wire2)
  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();
}


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


void printValues() {
  Serial.print("Temperature = ");
  Serial.print(bme.readTemperature());
  Serial.println(" *C");
  
  // Convert temperature to Fahrenheit
  /*Serial.print("Temperature = ");
  Serial.print(1.8 * bme.readTemperature() + 32);
  Serial.println(" *F");*/
  
  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();
}


GIẢI THÍCH CODE:

Libraries

#include <Wire.h> #include <Adafruit_Sensor.h> #include <Adafruit_BME280.h>


SPI communication

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

Sea level pressure (Áp suất nước biển).

#define SEALEVELPRESSURE_HPA (1013.25)

I2C

Ví dụ này sử dụng giao thức truyền thông I2C theo mặc định. Như bạn thấy, bạn chỉ cần tạo một đối tượng Adafruit_BME280 có tên là bme.

Adafruit_BME280 bme; // I2C

Để sử dụng SPI, bạn cần nhận xét dòng trước này và bỏ ghi chú một trong các dòng sau.

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

setup()

Trong Setup (), bắt đầu giao tiếp nối tiếp:
Serial.begin(9600);

Và cảm biến được khởi tạo:

status = bme.begin(); if (!status) { Serial.println("Could not find a valid BME280 sensor, check wiring!"); while (1); }

Printing values

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


Nap Code vào PY32F003 dùng Stlink

 Nap Code vào PY32F003 dùng Stlink Bước 1: Cài đặt  KeilC v5.39 theo link sau ( chú ý 5.39 keil c mới nạp ok). https://edge07.111.ir.cdn.ir/...