BMP180压力传感器


BMP180传感器是一种可以连接到面包板上的微控制器的传感器,可以测量一个地方的压力、温度和海拔高度。它可以连接到ESP32或Arduino等控制器,并可由程序读取其值。本文通过三个不同的示例,演示了使用ESP32使用BMP180传感器的方法。电路使用ESP32微控制器和BMP180传感器制作,测量温度、压力或海拔高度的程序使用Arduino软件编写。

示例1 - 使用BMP180传感器测量一个地方的温度

示例2 - 使用BMP180传感器测量一个地方的压力

示例3 - 使用BMP180传感器测量一个地方的海拔高度

在面包板上使用ESP32制作电路

按照此处所示制作电路:

图1:面包板上显示BMP180传感器与ESP32连接的电路图

BMP180传感器的详细视图

BMP180传感器的图片如下所示:

图2:显示BMP180传感器及其引脚。

示例1:使用BMP180传感器测量一个地方的温度

在此,BMP180传感器用于测量温度。此处的C语言程序使用Wire.h进行主ESP32和从BMP180之间的I2C通信。为了使用BMP180传感器,使用了Adafruit_BMP085.h。结果可以使用串口监视器查看。

电路设计步骤和编码

步骤1 - 首先将ESP32微控制器放置在面包板上。

步骤2 - 接下来将BMP180传感器插入面包板。

步骤3 - 将BMP180传感器的Vin连接到ESP32的3V3/Vin引脚。将BMP180传感器的GND连接到ESP32的GND引脚。将BMP180传感器的SCL引脚连接到ESP32的D22引脚,将SDA引脚连接到D21。

步骤4 - 使用Arduino为测量温度编写C程序。

步骤5 - 使用USB数据线将ESP32连接到计算机。

步骤6 - 将代码编译并传输到ESP32,并在串口监视器上检查结果。

代码

// Read the temperature of the place using BMP180 sensor
//required libraries
#include <Wire.h>
#include <Adafruit_BMP085.h>
//bmp object
Adafruit_BMP085 bmp;
void setup() {
   //specified baud rate
   Serial.begin(9600);
   //if bmp is not detected
   if (!bmp.begin()) {
      Serial.println("Could not found BMP180");
      while (1) {}
   }
}
void loop() {
   // Check these readings using the Serial Monitor
   //print the Temperature of the place
   Serial.print("Temperature Now = ");
   Serial.print(bmp.readTemperature());
   Serial.println(" *C");
   Serial.println();
   delay(500);
}

查看结果 - 示例1

代码编译并传输/上传到ESP32后,可以在串口监视器中看到结果。

图:显示使用串口监视器读取温度的结果

示例2:使用BMP180传感器测量一个地方的压力

在此,BMP180传感器用于测量压力。此处的C语言程序使用Wire.h进行主ESP32和从BMP180之间的I2C通信。为了使用BMP180传感器,使用了Adafruit_BMP085.h。结果可以使用串口监视器查看。

电路设计步骤和编码

步骤1 - 首先将ESP32微控制器放置在面包板上。

步骤2 - 接下来将BMP180传感器插入面包板。

步骤3 - 将BMP180传感器的Vin连接到ESP32的3V3/Vin引脚。将BMP180传感器的GND连接到ESP32的GND引脚。将BMP180传感器的SCL引脚连接到ESP32的D22引脚,将SDA引脚连接到D21。

步骤4 - 使用Arduino为测量大气压力编写C程序。

步骤5 - 使用USB数据线将ESP32连接到计算机。

步骤6 - 将代码编译并传输到ESP32,并在串口监视器上检查结果。

代码

// Read the pressure at the place using BMP180 sensor
//required libraries
#include <Wire.h>
#include <Adafruit_BMP085.h>
//bmp object
Adafruit_BMP085 bmp;
void setup() {
   //specified baud rate
   Serial.begin(9600);
   //if bmp is not detected
   if (!bmp.begin()) {
      Serial.println("Could not found BMP180!!");
      while (1) {}
   }
}
void loop() {
   // Check these readings using the Serial Monitor
   //print the Pressure at the place
   Serial.print("Pressure Here = ");
   Serial.print(bmp.readPressure());
   Serial.println(" Pa");
   Serial.println();
   delay(500);
}

查看结果 - 示例2

图3:显示使用串口监视器读取压力结果。

示例3:使用BMP180传感器测量一个地方的海拔高度

在此,BMP180传感器用于测量海拔高度。此处的C语言程序使用Wire.h进行主ESP32和从BMP180之间的I2C通信。为了使用BMP180传感器,使用了Adafruit_BMP085.h。结果可以使用串口监视器查看。

代码

// Read the altitude of the place using a BMP180 sensor
//required libraries
#include <Wire.h>
#include <Adafruit_BMP085.h>
//bmp object
Adafruit_BMP085 bmp;
void setup() {
   //specified baud rate
   Serial.begin(9600);
   //if bmp is not detected
   if (!bmp.begin()) {
      Serial.println("Could not found BMP180");
      while (1) {}
   }
}
void loop() {
   // Find the altitude
   Serial.print("Altitude = ");
   Serial.print(bmp.readAltitude());
   Serial.println(" meters");
   // Check these readings using the Serial Monitor
   Serial.println();
   delay(500);
}

查看结果 - 示例2

图3:显示使用串口监视器读取海拔高度结果。

本文通过三个不同的示例,介绍了使用BMP180传感器与ESP32的方法。在第一个示例中,BMP180传感器用于测量温度。在第二个示例中,BMP180传感器用于测量压力,在第三个示例中,BMP180传感器用于测量一个地方的海拔高度。

更新于:2023年4月18日

383次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告