首页

ESP32 BMP180传感器教程|如何与ESP32接口BMP180 ?

在本教程中,我们将学习如何接口BMP180与ESP32 DevKit开发板。如果你想使用ESP32构建一个基于Web的压力和温度监测系统,那么BMP180是最便宜的选择之一(肯定有比BMP180更好的传感器,比如BME280)。了解ESP32 BMP180压力和温度传感器接口的工作原理,安装Arduino IDE,在LCD上显示压力和温度数据。此外,您还可以设计一个简单的ESP32 Web服务器,连续显示BMP180传感器的压力和温度。

ESP32-BMP180-Image-2

简要说明BMP180传感器

我们已经在Arduino BMP180教程中看到了关于BMP180 Sensor的内容。但让我们回顾一下关于传感器的一些重要信息。BMP180是博世的数字气压传感器。它是一种基于压阻MEMS器件的超低功耗器件。可测量300 hPa ~ 1100 hPa的大气压。

除了测量压力外,BMP180传感器还可以测量0范围内的温度0C - 650由于BMP180测量的是大气压力,你可以很容易地扣除点的高度(因为它们是相关的)。

BMP180-Module-Front

实际的BMP180传感器是一个微小的设备,尺寸为3.6mm x 3.8mm。它可在7引脚LGA封装,并通过I与微控制器通信2C或SPI(在最终的传感器中只有一个可能)。

关于传感器的一个重要问题是它的校准。传感器需要适当地校准以产生可接受的结果。幸运的是,所有博世BMP180气压传感器都经过工厂校准,以便随时使用。

很多第三方模块和传感器厂商拿着微小的BMP180 sensor,设计了一个小模块,非常适合Arduino等DIY项目。目前可用的大多数模块都使用I2C通信。

BMP180引脚图

下图显示了BMP180传感器的引脚。该模块已在背面标记销。

BMP180-Module-Back

如你所见,BMP180模块有四个引脚:

  • 接地
  • sci
  • SDA

ESP32 BMP180接口

现在我们已经了解了一些关于BMP180压力和温度传感器的知识,现在让我们继续了解如何将BMP180与ESP32接口。首先你要记住BMP180是一个数字传感器。

下一个要记住的重要事情是BMP180传感器使用I2用于与单片机通信的C总线。如果你还记得ESP32的Pinout,默认的I2ESP32的C引脚分别为GPIO 21 (SDA)和GPIO 22 (SCL)。在ESP32 DevKit开发板上分别标注为D21和D22。

因此,我们必须使用这些引脚与BMP180传感器交互。

组件的要求

  • ESP32 DevKit开发板
  • BMP180压力温度传感器(模块)
  • 16×2液晶
  • PCF8574 I2C LCD模块
  • 电路试验板
  • 连接电线
  • 微型USB电缆

线路图

ESP32与BMP180的连接方式如下图所示。BMP180模块自带3.3V稳压器。所以,你可以用5V给板供电。连接V从BMP180到ESP32板VIN。同时将BMP180的GND引脚与ESP32的任意GND引脚连接。

现在来看I2C引脚,SDA连接ESP32的GPIO 21(板上标记为D21), SCL连接GPIO22(板上标记为D22)。这样就完成了所有的连接。

ESP32-BMP180-Circuit

准备Arduino IDE

您需要下载一个与BMP180传感器相关的库,以便ESP32与传感器正常通信。进入Arduino IDE的Tools -> Manage Libraries…

BMP180-Library-1

在搜索栏中,输入“bmp180”,安装Adafruit BMP085 Library。

BMP180-Library-2

在串行显示器上显示压力和温度

在进行了正确的连接并安装了上面提到的必要库之后,我们现在将看到如何使用ESP32从BMP180传感器读取压力和温度数据,并在串行监视器上显示结果。

代码

BMP180传感器采用I2C总线与单片机通信。我写了一个简单的代码,将初始化BMP180传感器和读取压力和温度数据从传感器。

为了查看结果,我简单地使用了串行监视器来打印压力值,hPa为hPa,摄氏度为温度。

ESP32-BMP180-Image-3

下面的图片显示的是串行监视器的截图,它是连续打印压力和温度读数每3秒。

ESP32-BMP180-Serial

ESP32 BMP180带I2C液晶

在串行监视器上显示BMP180传感器的压力和温度数据对于测试连接和代码本身是有用的。为了构建一个实际的“嵌入式系统”应用程序,你必须使用某种类型的显示模块(OLED, 16×2字符液晶,诺基亚5110液晶,图形液晶等)来查看压力和温度读数。

我使用了一个常规的16×2字符液晶显示模块结合PCF8574 I2C液晶显示模块来显示来自ESP32 BMP180传感器接口的压力和温度读数。

我做了一个关于如何使用I的专门教程2C液晶显示器,ESP32。查看该教程以获得深入的信息。在该教程中,我还讨论了成功连接I2C LCD和ESP32所需的库。

注意:我还解释了如何获取I的Slave地址2C LCD模块。这一步非常重要。

线路图

您需要的附加组件是16×2液晶显示器和I2C液晶模块(基于PCF8574)。在16×2 LCD显示屏背面插入I2C LCD模块。I2C LCD Module只需要4路连接(2路供电,2路数据)。

ESP32与I2C液晶显示模块、ESP32与BMP180压力温度传感器之间的所有必要连接如下图所示。

ESP32-BMP180-LCD-Circuit

代码

带有I2C LCD的ESP32 BMP180传感器接口的代码非常简单。传感器的初始化部分类似于前面的代码。只增加了LCD相关代码。

ESP32-BMP180-Image-1

结论

一个完整的初学者指南,如何将BMP180压力和温度传感器与ESP32接口实现。了解了BMP180传感器的基本信息,ESP32 BMP180传感器接口的工作原理,与BMP180通信的必要库,在串行输出上显示压力和温度数据,以及I2C LCD与ESP32连接显示压力和温度数据。

考虑使用ESP32和BMP180传感器的基于Web的压力和温度监测系统,我将很快用Web服务器的代码更新这个页面。

一个回应

留下一个回复

您的电子邮件地址将不会被公布。必填字段已标记

Electronicshub图标
<\/i>","library":""}}" data-widget_type="nav-menu.default">
Baidu