Skip to main content

Grove - 气压传感器 (SPA06-003)

描述

Grove - 温度和气压传感器 (SPA06-003) 是一款高精度、低功耗的环境传感器,可测量温度和气压。它支持 I2C 和 SPI 通信,并提供 SPA06-003 Arduino 库。

note

由于传感器对环境条件非常敏感,请勿用手指触摸传感器

特性

  • 宽测量范围: 气压测量范围为 300hPa1100hPa,温度测量范围为 -40℃+85℃。
  • 高精度: 气压测量的绝对精度为 ±0.3 hPa,温度测量的精度为 ±1 ℃。
  • 长待机时间: 使用 FIFO 允许主处理器在读取之间保持睡眠模式,从而降低整体系统功耗,实现最低 0.5 μA 的待机电流。
  • Grove 接口: 配备 Grove 4 针连接器,确保“即插即用”体验,可连接 Arduino、Raspberry Pi、Micro:bit 等主流硬件平台。
tip

有关 Grove 模块的更多详细信息,请参考 Grove 系统

规格

参数描述
供电电压3.3V
接口I2C 和 SPI
I2C 地址0x77 (默认)
0x76
气压测量
范围300~1100 hPa
绝对精度±0.3 hPa
温度测量
范围-40℃ 至 +85℃
精度±1℃
尺寸40mm x 20mm x 6.5mm

BMP280 vs. BME280 vs. DPS310 vs. SPA06-003

项目Grove-BMP280Grove-BME280Grove-DPS310Grove-SPA06-003
气压范围300 ~ 1100 hPa300 ~ 1100 hPa300 ~ 1200 hPa300 ~ 1100 hPa
温度范围-40 ~ 85 ℃-40 ~ 85 ℃-40 ~ 85 °C-40 ~ 85 °C
气压精度--± 0.002 hPa (或 ±0.02 m)-
气压绝对精度± 1 hPa (或 ±8 m)± 1 hPa (或 ±8 m)± 1 hPa (或 ±8 m)± 0.3 hPa
气压相对精度± 0.12 hPa± 0.12 hPa± 0.06 hPa (或 ±0.5 m)± 0.03 hPa (或 ±0.25 m)
气压分辨率0.18 Pa0.18 Pa0.06 Pa0.06 Pa
湿度-0 ~ 100%--
通信I2C/SPII2C/SPII2C/SPII2C/SPI
价格$9.8$18.7$7.5$4.5

部件清单

项目数量
Grove 温度和气压传感器 (SPA06-003)×1
Grove - 20cm 电缆×1

应用

  • 气象站和气象传感
  • 测量温度、气压和海拔

入门指南

指示图

  • SPI 焊接点
  • 接口总线选择焊接点,选择 I2C 总线时,通过焊接连接两个焊接点(默认已连接);选择 SPI 总线时,用锋利的刀或电烙铁切断两个焊接点。
  • 从板地址选择焊接点,用于选择从板地址以避免地址冲突。

:::提示

  • 如果选择了 I2C 总线,从板的默认地址是 0x77(右侧两个焊接点已连接)。如果需要使用地址 0x76,仅连接左侧两个焊接点(断开右侧两个焊接点)。
  • 可以使用锋利的刀轻松断开焊接点。
  • 如果选择了 SPI 总线,从板的默认地址是 0x77(右侧两个焊接点已连接)。如果需要使用地址 0x76,请断开所有三个焊接点。

:::

硬件

准备以下物品:

  • 使用 Arduino
Seeeduino V4.2基础扩展板Grove-气压传感器 SPA06-003

pir

pir

pir

立即购买立即购买立即购买
  • 将 Grove 与 Arduino 连接
  • 使用 XIAO ESP32 系列
Seeed Studio Grove 基板用于 XIAOXIAO ESP32-S3Grove-气压传感器 SPA06-003
立即购买立即购买立即购买
  • 将 Grove 与 ESP32 系列连接

两种不同的组合,但使用相同的代码。

:::提示

在产品工作时,请勿触碰、摇晃或让其处于振动状态。这会导致干扰并影响数据采集的准确性。

:::

此连接表适用于所有支持 I2C 的开发板。

开发板Grove-气压传感器 SPA06-003
3.3VVCC
GNDGND
SDASDA
SCLSCL

软件

步骤 1.Github 下载库文件。


步骤 2. 参考 如何安装库文件 为 Arduino 安装库文件。

步骤 3. 创建一个新的 Arduino 草图,并将以下代码粘贴到其中,或者通过路径直接打开代码:File -> Example -> Seeed Arduino SPA06 -> Example1_BasicRead

步骤 4. 上传代码。如果您不知道如何上传代码,请查看如何上传代码

步骤 5. 打开串口监视器以接收传感器的数据,包括温度、大气压值和海拔高度。

success

如果一切正常,结果将如下图所示显示在 串口 上。

功能

以下是代码:

/*
* 作者: Kennan / Kenneract
* GitHub: https://github.com/Kenneract/SPL07-003-Arduino-Library
* 创建日期: 2025年3月15日
* 更新日期: 2025年4月14日, V1.0.0
* 目的: SPL07-003 传感器库的示例用法。连接到传感器,配置测量和过采样率,
* 将 SPL07-003 设置为连续采样模式,然后将压力/温度测量值打印到串口监视器。
*/

#include <Wire.h>
#include "SPL07-003.h"

// 定义 SPL07-006 I2C 地址
#define SPL07_ADDR SPL07_ADDR_DEF // 默认 I2C 地址 (SDO=高)
// #define SPL07_ADDR SPL07_ADDR_ALT // 备用 I2C 地址 (SDO=低)

// 创建 SPL07-003 传感器实例
SPL07_003 spl;

//HardwareSerial SerialOut(PA10, PA9); //用于 STM32F103C8Tx

// 启动时运行
void setup() {

// 初始化串口
Serial.begin(115200);

// 配置并启动 I2C
//Wire.setSDA(PB7); //用于 STM32F103C8Tx
//Wire.setSCL(PB6); //用于 STM32F103C8Tx
Wire.begin();

// 连接到 SPL07-003
if (spl.begin(SPL07_ADDR) == false) {
Serial.println("初始化 SPL07-003 出错 :(");
while (1) {}
}//if
Serial.println("已连接到 SPL07-003! :)");

// 设置压力和温度采样配置
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES);
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE);

// 将 SPL07-003 设置为连续测量模式
spl.setMode(SPL07_CONT_PRES_TEMP);

}//setup()


// 持续运行
void loop() {

// 等待可用的读取数据
if (spl.pressureAvailable() || spl.temperatureAvailable()) {
// 读取最新值
double pres = spl.readPressure();
double temp = spl.readTemperature();
double altitude = spl.calcAltitude();
// 打印到串口
Serial.print("压力: ");
Serial.print(pres, 3);
Serial.print(" Pa, 温度: ");
Serial.print(temp, 3);
Serial.print(" C, 海拔: ");
Serial.print(altitude, 3);
Serial.println(" m");
}//if

}//loop()

以下是上述示例代码中使用的函数,并对每个函数的作用进行了说明:

Serial.begin(115200)

初始化 ESP32 和计算机之间的串行通信,波特率为 115200。这允许调试消息打印到串口监视器。

Wire.begin()

使用默认引脚(大多数平台上为 SDA 和 SCL)初始化 I²C 总线。这是在与 SPL07-003 传感器通信之前所需的操作。

spl.begin(SPL07_ADDR)

使用指定的 I²C 地址初始化 SPL07-003 传感器。如果在总线上未找到传感器,则返回 false。

  • 参数:SPL07_ADDR – I²C 地址(0x76 或 0x77)

  • 返回值:成功时返回 true,未检测到传感器时返回 false

spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES)

配置压力传感器:

  • 输出数据速率为 4 Hz
  • 32 次采样平均以减少噪声

更高的采样次数可以提高精度,但会增加响应时间。

spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE)

配置温度传感器:

  • 更新速率为 4 Hz
  • 1 次采样平均(响应更快,平滑度较低)
spl.setMode(SPL07_CONT_PRES_TEMP)

将 SPL07-003 设置为连续压力和温度测量模式,因此数据会自动更新,无需手动触发。

spl.pressureAvailable(), spl.temperatureAvailable()

检查传感器是否有新的压力或温度测量值可用。当有新数据准备好读取时,这些函数返回 true。

spl.readPressure()

从传感器读取最新的压力值,单位为帕斯卡(Pa)。

spl.readTemperature()

读取当前温度,单位为摄氏度(°C)。

spl.calcAltitude()

基于当前压力读数,使用标准大气模型估算海拔高度(单位为米)。 此功能在无人机或气象站的气压高度估算等应用中非常有用。

资源

技术支持与产品讨论

感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时获得流畅的体验。我们提供多个沟通渠道,以满足不同的偏好和需求。

Loading Comments...