在本教程中,我们将学习如何接口BMP180与ESP32 DevKit开发板。如果你想使用ESP32构建一个基于Web的压力和温度监测系统,那么BMP180是最便宜的选择之一(肯定有比BMP180更好的传感器,比如BME280)。了解ESP32 BMP180压力和温度传感器接口的工作原理,安装Arduino IDE,在LCD上显示压力和温度数据。此外,您还可以设计一个简单的ESP32 Web服务器,连续显示BMP180传感器的压力和温度。
简要说明BMP180传感器
我们已经在Arduino BMP180教程中看到了关于BMP180 Sensor的内容。但让我们回顾一下关于传感器的一些重要信息。BMP180是博世的数字气压传感器。它是一种基于压阻MEMS器件的超低功耗器件。可测量300 hPa ~ 1100 hPa的大气压。
除了测量压力外,BMP180传感器还可以测量0范围内的温度0C - 650由于BMP180测量的是大气压力,你可以很容易地扣除点的高度(因为它们是相关的)。
实际的BMP180传感器是一个微小的设备,尺寸为3.6mm x 3.8mm。它可在7引脚LGA封装,并通过I与微控制器通信2C或SPI(在最终的传感器中只有一个可能)。
关于传感器的一个重要问题是它的校准。传感器需要适当地校准以产生可接受的结果。幸运的是,所有博世BMP180气压传感器都经过工厂校准,以便随时使用。
很多第三方模块和传感器厂商拿着微小的BMP180 sensor,设计了一个小模块,非常适合Arduino等DIY项目。目前可用的大多数模块都使用I2C通信。
BMP180引脚图
下图显示了BMP180传感器的引脚。该模块已在背面标记销。
如你所见,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)。这样就完成了所有的连接。
准备Arduino IDE
您需要下载一个与BMP180传感器相关的库,以便ESP32与传感器正常通信。进入Arduino IDE的Tools -> Manage Libraries…
在搜索栏中,输入“bmp180”,安装Adafruit BMP085 Library。
在串行显示器上显示压力和温度
在进行了正确的连接并安装了上面提到的必要库之后,我们现在将看到如何使用ESP32从BMP180传感器读取压力和温度数据,并在串行监视器上显示结果。
代码
BMP180传感器采用I2C总线与单片机通信。我写了一个简单的代码,将初始化BMP180传感器和读取压力和温度数据从传感器。
为了查看结果,我简单地使用了串行监视器来打印压力值,hPa为hPa,摄氏度为温度。
下面的图片显示的是串行监视器的截图,它是连续打印压力和温度读数每3秒。
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压力温度传感器之间的所有必要连接如下图所示。
代码
带有I2C LCD的ESP32 BMP180传感器接口的代码非常简单。传感器的初始化部分类似于前面的代码。只增加了LCD相关代码。
结论
一个完整的初学者指南,如何将BMP180压力和温度传感器与ESP32接口实现。了解了BMP180传感器的基本信息,ESP32 BMP180传感器接口的工作原理,与BMP180通信的必要库,在串行输出上显示压力和温度数据,以及I2C LCD与ESP32连接显示压力和温度数据。
考虑使用ESP32和BMP180传感器的基于Web的压力和温度监测系统,我将很快用Web服务器的代码更新这个页面。
一个回应
这是一个伟大的项目,做esp32 & bmp180