ESP8266-Arduino编程实例-LPS22HB绝压传感器驱动

LPS22HB绝压传感器驱动

1、LPS22HB介绍

LPS22HB 是一款超紧凑型压阻式绝对压力传感器,可用作数字输出气压计。 该设备包括一个传感元件和一个 I2C 接口,该接口通过 I2C 或 SPI 从传感元件到应用程序进行通信。

检测绝对压力的传感元件由使用 ST 开发的专用工艺制造的悬浮膜组成。
LPS22HB 采用全模制有孔 LGA 封装 (HLGA)。 它保证在 -40 °C 至 +85 °C 的温度范围内工作。 封装有孔以允许外部压力到达传感元件。

在这里插入图片描述

LPS22HB具有如下特性:

  • 260 至 1260 hPa 绝压范围
  • 电流消耗低至 3 μA
  • 高超压能力:20x 满量程
  • 嵌入式温度补偿
  • 24位压力数据输出
  • 16位温度数据输出
  • 从 1 赫兹到 75 赫兹的 ODR
  • SPI 和 I²C 接口
  • 嵌入式先进先出
  • 中断功能:数据就绪、FIFO 标志、压力阈值
  • 电源电压:1.7 至 3.6 V
  • 高抗冲击能力:22,000 g

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • LPS22HB传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用的驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <Wire.h>

#include "IO\_LPS22HB.h"

IO_LPS22HB lps22hb;

void setup()
{
Serial.begin(9600);
Serial.println("IoThings LPS22HB Arduino Test");

lps22hb.begin(0x5D);

byte who_am_i = lps22hb.whoAmI();
Serial.print("Who Am I? 0x");
Serial.print(who_am_i, HEX);
Serial.println(" (expected: 0xB1)");
if (who_am_i != LPS22HB_WHO_AM_I_VALUE) {
Serial.println("Error while retrieving WHO\_AM\_I byte...");
while (true) {
// loop forever
}
}
}

void loop()
{
Serial.print("P=");
Serial.print(lps22hb.readPressure());
Serial.print(" mbar, T=");
Serial.print(lps22hb.readTemperature());
Serial.println("C");
delay(300);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126813045