当前位置: 首页 > 教程 > 物联网(IoT) >

压力传感器BMP180和Arduino设备进行温度和压力测量

精华
小牛编辑
160浏览
2023-03-14

在这个项目中,我们将建立一个温度和压力测量系统。使用压力传感器型号BMP180来检测温度和压力,Arduino设备和16 X 2字符LCD显示温度和压力。

硬件要求

  • Arduino UNO主板
  • 用于Arduino设备的USB电缆连接器
  • 压力传感器BMP180
  • 16 X 2字符LCD显示屏
  • 项目主板
  • 跳线(公线对公线,公线对母线)

软件要求

  • Arduino软件IDE

压力传感器BMP180的工作原理

压力传感器BMP180由压阻式传感器,模拟和数字转换器,带E2PROM的控制单元和串行I2C接口组成。它提供了温度和压力的贡献值。传感器设备的微控制器发送启动序列以测量温度和压力。温度和压力可通过16 X 2字符LCD读取。

计算的温度和压力分别以℃和hPa(hector Pascal)测量。在这种情况下,测量温度和压力的速率是每秒一次。

压力传感器BMP180的工作原理

使用压力传感器BMP180和字符LCD显示器编写Arduino程序来测量温度和压力。

#include <Adafruit_BMP085.h>  
#include <Wire.h>  
#include <LiquidCrystal.h>  
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);//RS,EN,D4,D5,D6,D7  

char PRESSURESHOW[4];// initializing a character of size 4 to display pressure result  
char TEMPERATURESHOW[4];// initializing a character of size 4 to display temperature result  
Adafruit_BMP085 bmp;  

void setup() {  
  lcd.begin(16, 2);  
  // Print a logo message to the LCD.  
  lcd.print(" BMP180 Sensor");  
  lcd.setCursor(0, 1);  
  lcd.print("Temp. & Pressure");  
  lcd.setCursor(0, 2);  
  delay (3000);  

  lcd.clear();//clear display  
  Serial.begin(9600);  
  if (!bmp.begin()){  
    Serial.println("ERROR");///if there is an error in communication  
    while (1) {}  
  }  
}  
void loop(){  
  lcd.print("Pressure= "); // print pressure  
  String PRESSUREVALUE = String(bmp.readPressure());  
  // convert pressure reading to a char array  
  PRESSUREVALUE.toCharArray(PRESSURESHOW, 4);  
  lcd.print(PRESSURESHOW);  
  lcd.print("hPa ");  
  lcd.setCursor(0, 1);  
  lcd.print("Temperature=");// print temperature  
  String TEMPERATUREVALUE = String(bmp.readTemperature());  
  // convert the reading to a char array  
  TEMPERATUREVALUE.toCharArray(TEMPERATURESHOW, 4);  
  lcd.print(TEMPERATURESHOW);  
  lcd.print("C ");  
  lcd.setCursor(0,0);//set the cursor to row and column 0, line1  
  delay(500);  
}

在编译上述代码之前包括BMP180库,否则会生成错误提示Adafruit_BMP085.h文件或库未找到。

要包含库,请单击:Sketch -> Include Library -> Manage Libraries…

搜索BMP180库,并安装BMP085/BMP180库。

安装BMP085库

编译并将代码上传到Arduino设备。

编译代码

上传代码

现在,相应地连接所有设备。Arduino,BMP180和16 X 2字符LED的数字电路如下:

连接设备

下面是测量压力和温度的结果:

测量压力和温度的结果