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

描述
Grove - 温度和气压传感器 (SPA06-003) 是一款高精度、低功耗的环境传感器,可测量温度和气压。它支持 I2C 和 SPI 通信,并提供 SPA06-003 Arduino 库。
由于传感器对环境条件非常敏感,请勿用手指触摸传感器。
特性
- 宽测量范围: 气压测量范围为 300hPa
1100hPa,温度测量范围为 -40℃+85℃。 - 高精度: 气压测量的绝对精度为 ±0.3 hPa,温度测量的精度为 ±1 ℃。
- 长待机时间: 使用 FIFO 允许主处理器在读取之间保持睡眠模式,从而降低整体系统功耗,实现最低 0.5 μA 的待机电流。
- Grove 接口: 配备 Grove 4 针连接器,确保“即插即用”体验,可连接 Arduino、Raspberry Pi、Micro:bit 等主流硬件平台。
有关 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-BMP280 | Grove-BME280 | Grove-DPS310 | Grove-SPA06-003 |
---|---|---|---|---|
气压范围 | 300 ~ 1100 hPa | 300 ~ 1100 hPa | 300 ~ 1200 hPa | 300 ~ 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 Pa | 0.18 Pa | 0.06 Pa | 0.06 Pa |
湿度 | - | 0 ~ 100% | - | - |
通信 | I2C/SPI | I2C/SPI | I2C/SPI | I2C/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 |
---|---|---|
立即购买 | 立即购买 | 立即购买 |
- 将 Grove 与 Arduino 连接

- 使用 XIAO ESP32 系列
Seeed Studio Grove 基板用于 XIAO | XIAO ESP32-S3 | Grove-气压传感器 SPA06-003 |
---|---|---|
![]() | ![]() | ![]() |
立即购买 | 立即购买 | 立即购买 |
- 将 Grove 与 ESP32 系列连接

两种不同的组合,但使用相同的代码。
:::提示
在产品工作时,请勿触碰、摇晃或让其处于振动状态。这会导致干扰并影响数据采集的准确性。
:::
此连接表适用于所有支持 I2C 的开发板。
开发板 | Grove-气压传感器 SPA06-003 |
---|---|
3.3V | VCC |
GND | GND |
SDA | SDA |
SCL | SCL |
软件
步骤 1. 从 Github 下载库文件。
步骤 2. 参考 如何安装库文件 为 Arduino 安装库文件。
步骤 3. 创建一个新的 Arduino 草图,并将以下代码粘贴到其中,或者通过路径直接打开代码:File -> Example -> Seeed Arduino SPA06 -> Example1_BasicRead
步骤 4. 上传代码。如果您不知道如何上传代码,请查看如何上传代码。
步骤 5. 打开串口监视器以接收传感器的数据,包括温度、大气压值和海拔高度。
如果一切正常,结果将如下图所示显示在 串口 上。

功能
以下是代码:
/*
* 作者: 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()
基于当前压力读数,使用标准大气模型估算海拔高度(单位为米)。 此功能在无人机或气象站的气压高度估算等应用中非常有用。
资源
- [KiCAD] Grove-气压传感器 SPA06-003 原理图和PCB
- [数据手册] SPA06-003 数据手册
- [参考资料] Arduino 的 I2C 使用指南
技术支持与产品讨论
感谢您选择我们的产品!我们致力于为您提供多种支持,以确保您使用我们的产品时获得流畅的体验。我们提供多个沟通渠道,以满足不同的偏好和需求。