【FireBeetle 2 ESP32-C5】 基于arduino通过SPI接口采集BMP280数据
硬件采用【FireBeetle 2 ESP32-C5】软件环境基于arduino。
关于环境搭建这里不再介绍。详见:https://mc.dfrobot.com.cn/thread-398229-1-1.html
项目目标:
通过BMP280的SPI接口采集温度、海拔、压力数据。
通过串口传给电脑。
硬件连接如下:
BMP_SCK(23)
BMP_MISO (25)
BMP_MOSI (24)
BMP_CS (2)
VCC 3.3V
GND GND
共计六根线。
实际连接如下图:
库安装:
本次设计基于这个库进行开发。
代码实现如下:
#include <Wire.h>
#include <SPI.h>
#include <Adafruit_BMP280.h>
#define BMP_SCK(23)
#define BMP_MISO (25)
#define BMP_MOSI (24)
#define BMP_CS (2)
//Adafruit_BMP280 bmp; // I2C
//Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,BMP_SCK);
void setup() {
Serial.begin(9600);
while ( !Serial ) delay(100); // wait for native usb
Serial.println(F("BMP280 test"));
unsigned status;
//status = bmp.begin(BMP280_ADDRESS_ALT, BMP280_CHIPID);
status = bmp.begin();
if (!status) {
Serial.println(F("Could not find a valid BMP280 sensor, check wiring or "
"try a different address!"));
Serial.print("SensorID was: 0x"); Serial.println(bmp.sensorID(),16);
Serial.print(" ID of 0xFF probably means a bad address, a BMP 180 or BMP 085\n");
Serial.print(" ID of 0x56-0x58 represents a BMP 280,\n");
Serial.print(" ID of 0x60 represents a BME 280.\n");
Serial.print(" ID of 0x61 represents a BME 680.\n");
while (1) delay(10);
}
/* Default settings from datasheet. */
bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* Operating Mode. */
Adafruit_BMP280::SAMPLING_X2, /* Temp. oversampling */
Adafruit_BMP280::SAMPLING_X16, /* Pressure oversampling */
Adafruit_BMP280::FILTER_X16, /* Filtering. */
Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
}
void loop() {
Serial.print(F("Temperature = "));
Serial.print(bmp.readTemperature());
Serial.println(" *C");
Serial.print(F("Pressure = "));
Serial.print(bmp.readPressure());
Serial.println(" Pa");
Serial.print(F("Approx altitude = "));
Serial.print(bmp.readAltitude(1013.25)); /* Adjusted to local forecast! */
Serial.println(" m");
Serial.println();
delay(2000);
}
编译上传:
成功后,打开串口监视
实验现象:
可以看到数据采集情况,和实际吻合:
Temperature = 26.95 *C
Pressure = 100576.33 Pa
Approx altitude = 62.52 m
Temperature = 26.95 *C
Pressure = 100577.09 Pa
Approx altitude = 62.46 m
Temperature = 26.95 *C
Pressure = 100577.66 Pa
Approx altitude = 62.41 m
Temperature = 26.95 *C
Pressure = 100578.17 Pa
Approx altitude = 62.36 m
Temperature = 26.96 *C
Pressure = 100578.81 Pa
Approx altitude = 62.31 m
Temperature = 26.96 *C
Pressure = 100578.81 Pa
Approx altitude = 62.31 m
Temperature = 26.96 *C
Pressure = 100579.06 Pa
Approx altitude = 62.29 m
Temperature = 26.96 *C
Pressure = 100579.63 Pa
Approx altitude = 62.24 m
Temperature = 26.96 *C
Pressure = 100579.45 Pa
Approx altitude = 62.26 m
总结:
通过数据采集实验。
学习了SPI通信。
对于 ESP32-C5有了更深一步的理解。
页:
[1]