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传感器用于测量一个地方的海拔高度。