Grove - Sensor de Barômetro (SPA06-003)

Descrição
Grove - Temperature and Barometer Sensor(SPA06-003) é um sensor ambiental de alta precisão e baixo consumo que mede a temperatura e a pressão atmosférica. Ele suporta comunicação I2C e SPI, e nós fornecemos a biblioteca SPA06-003 para Arduino.
Como o sensor é bastante sensível às condições ambientais, NÃO o toque com os dedos.
Características
- Ampla faixa de medição: As medições de pressão variam de 300hPa - 1100hPa e as medições de temperatura variam de -40℃ - +85℃.
- Alta precisão: Precisão absoluta de ±0,3 hPa para medição de pressão e precisão de ±1 ℃ para medição de temperatura.
- Longo tempo de espera: Usar o FIFO permite que o processador host permaneça em modo de suspensão por períodos mais longos entre as leituras, reduzindo o consumo total de energia do sistema e alcançando uma corrente de espera tão baixa quanto 0,5 μA.
- Interface Grove: Possui um conector Grove de 4 pinos, garantindo uma experiência "Plug and Play" para conexão com plataformas de hardware populares como Arduino, Raspberry Pi, Micro:bit e muitas outras.
Para mais detalhes sobre os módulos Grove, consulte o Sistema Grove.
Especificações
| Parâmetro | Descrição |
|---|---|
| Tensão de Alimentação | 3.3V |
| Interface | I2C e SPI |
| Endereço I2C | 0x77 (default) 0x76 |
| Medição de Pressão Barométrica | |
| Faixa | 300~1100 hPa |
| Precisão Absoluta | ±0.3 hPa |
| Medição de Temperatura | |
| Faixa | -40℃ a +85℃ |
| Precisão | ±1℃ |
| Dimensões | 40mm x 20mm x 6.5mm |
BMP280 vs. BME280 vs. DPS310 vs. SPA06-003
| ITEM | Grove-BMP280 | Grove-BME280 | Grove-DPS310 | Grove-SPA06-003 |
|---|---|---|---|---|
| Faixa de Pressão | 300 ~ 1100 hPa | 300 ~ 1100 hPa | 300 ~ 1200 hPa | 300 ~ 1100 hPa |
| Faixa de Temperatura | -40 ~ 85 ℃ | -40 ~ 85 ℃ | -40 ~ 85 °C | -40 ~ 85 °C |
| Precisão de Pressão | - | - | ± 0.002 hPa (ou ±0.02 m) | - |
| Precisão de Pressão (Absoluta) | ± 1 hPa (ou ±8 m) | ± 1 hPa (ou ±8 m) | ± 1 hPa (ou ±8 m) | ± 0.3 hPa |
| Precisão de Pressão (Relativa) | ± 0.12 hPa | ± 0.12 hPa | ± 0.06 hPa (ou ±0.5 m) | ± 0.03 hPa (ou ±0.25 m) |
| Resolução de Pressão | 0.18 Pa | 0.18 Pa | 0.06 Pa | 0.06 Pa |
| Umidade | - | 0 ~ 100% | - | - |
| Comunicação | I2C/SPI | I2C/SPI | I2C/SPI | I2C/SPI |
| Preço | $9.8 | $18.7 | $7.5 | $4.5 |
Lista de Peças
| Item | Quantidade |
|---|---|
| Grove Temperature and Barometer Sensor (SPA06-003) | ×1 |
| Grove - Cabo de 20cm | ×1 |
Aplicações
- Estação meteorológica e monitoramento do clima
- Medir temperatura, pressão e altitude
Primeiros Passos
Diagrama de indicação

- Pads de solda SPI.
- Pads de seleção do barramento de interface, para selecionar o barramento I2C, conecte os dois pads por soldagem (isso vem conectado por padrão); para selecionar o barramento SPI, corte os dois pads com uma faca afiada ou um ferro de solda.
- Pads de seleção de endereço da placa escrava, para selecionar o endereço da placa escrava e evitar colisão de endereços.
- Se você selecionou o barramento I2C, o endereço padrão da placa escrava é 0x77 (os dois pads da direita estão conectados). Se quiser usar o endereço 0x76, conecte apenas os dois da esquerda (desconecte os dois da direita) por soldagem.
- Você pode desconectar pads apenas com uma faca afiada.
- Se você selecionou o barramento SPI, o endereço padrão da placa escrava é 0x77 (os dois pads da direita estão conectados). Se quiser usar o endereço 0x76, desconecte todos os três pads.
Hardware
Prepare os itens abaixo:
- Brinque com Arduino
| Seeeduino V4.2 | Base Shield | Grove-Barometer Sensor SPA06-003 |
|---|---|---|
|
|
|
| Adquira Agora | Adquira Agora | Adquira Agora |
- Brinque com a Série XIAO
| Seeed Studio Grove Base para XIAO | XIAO ESP32-S3 | Grove-Barometer Sensor SPA06-003 |
|---|---|---|
![]() | ![]() | |
| Adquira Agora | Adquira Agora | Adquira Agora |
Software
Passo 1. Inicie o aplicativo Arduino.

Passo 2. Selecione o modelo da sua placa de desenvolvimento e adicione-o ao Arduino IDE.
-
Se você quiser usar Seeed Studio XIAO SAMD21 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO RP2040 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO RP2350 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO nRF52840 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO ESP32C3 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO ESP32C6 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO ESP32S3 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO RA4M1 para as rotinas posteriores, consulte este tutorial para concluir a adição.
-
Se você quiser usar Seeed Studio XIAO MG24 para as rotinas posteriores, consulte este tutorial para concluir a adição.
Etapa 3. Baixe a biblioteca do Github e consulte How to install library para instalar a biblioteca para Arduino.
Usar barramento I2C
Etapa 1. Conecte seu Grove ao controlador
- Conectar Grove ao Arduino

- Conectar Grove e XIAO

Duas combinações diferentes, mas usando o mesmo código.
Não toque, chacoalhe ou deixe este produto em vibração quando estiver funcionando. Isso causará interferência e afetará a precisão dos dados coletados.
Esta tabela de conexão se aplica a todas as placas com suporte a I2C.
| Placas | Grove-Barometer_Sensor-SPA06-003 |
|---|---|
| 3.3V | VCC |
| GND | GND |
| SDA | SDA |
| SCL | SCL |
Etapa 2. Crie um novo sketch Arduino e cole nele os códigos abaixo ou abra o código diretamente pelo caminho: File -> Example -> Seeed Arduino SPA06 > Example1_BasicRead
Etapa 3. Envie o código. Se você não souber como enviar o código, verifique how to upload code.
Etapa 4. Abra o monitor serial para receber os dados do sensor, incluindo temperatura, valor da pressão barométrica e altitude.
O resultado será exibido na Porta Serial conforme a seguir se tudo ocorrer bem.

Aqui está o código:
/*
* Author: Kennan / Kenneract
* GitHub: https://github.com/Kenneract/SPL07-003-Arduino-Library
* Created: Mar.15.2025
* Updated: Apr.14.2025, V1.0.0
* Purpose: Example usage for the SPL07-003 sensor library. Connects
* to the sensor, configures the measurement and oversampling
* rate, sets the SPL07-003 to continuous sampling mode, then
* prints pressure/temperature measurements to the serial monitor.
*/
#include <Wire.h>
#include "SPL07-003.h"
// Define SPL07-006 I2C address
#define SPL07_ADDR SPL07_ADDR_DEF // Default I2C address (SDO=high)
// #define SPL07_ADDR SPL07_ADDR_ALT // Alternate I2C address (SDO=low)
// Create SPL07-003 sensor instance
SPL07_003 spl;
//HardwareSerial SerialOut(PA10, PA9); //for STM32F103C8Tx
// Runs at startup
void setup() {
// Begin Serial
Serial.begin(115200);
// Configure & start I2C
//Wire.setSDA(PB7); //for STM32F103C8Tx
//Wire.setSCL(PB6); //for STM32F103C8Tx
Wire.begin();
// Connect to SPL07-003
if (spl.begin(SPL07_ADDR) == false) {
Serial.println("Error initializing SPL07-003 :(");
while (1) {}
}//if
Serial.println("Connected to SPL07-003! :)");
// Set pressure & temperature sampling settings
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES);
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE);
// Set SPL07-003 to continuous measurements
spl.setMode(SPL07_CONT_PRES_TEMP);
}//setup()
// Runs continuously
void loop() {
// Wait for available reading
if (spl.pressureAvailable() || spl.temperatureAvailable()) {
// Read latest values
double pres = spl.readPressure();
double temp = spl.readTemperature();
double altitude = spl.calcAltitude();
// Print to serial
Serial.print("Pres: ");
Serial.print(pres, 3);
Serial.print(" Pa, Temp: ");
Serial.print(temp, 3);
Serial.print(" C, Altitude: ");
Serial.print(altitude, 3);
Serial.println(" m");
}//if
}//loop()
Usar barramento SPI
Etapa 1. Conecte o Grove Barometer Sensor SPA06-003 ao seu controlador

-
Para selecionar o barramento SPI, use uma faca afiada ou um ferro de solda para cortar as duas ilhas na Área de Configuração do Barramento de Interface.
-
Não toque, chacoalhe ou deixe este produto em vibração quando estiver funcionando. Isso causará interferência e afetará a precisão dos dados coletados.
Etapa 2. Crie um novo sketch Arduino e cole nele os códigos abaixo ou abra o código diretamente pelo caminho: File -> Example -> Seeed Arduino SPA06 > Example3_SPIRead
Etapa 3. Envie o código. Se você não souber como enviar o código, verifique how to upload code.
Etapa 4. Abra o monitor serial para receber os dados do sensor, incluindo temperatura, valor da pressão barométrica e altitude.
O resultado será exibido na Porta Serial conforme a seguir se tudo ocorrer bem.

Aqui está o código:
#include <SPI.h>
#include "SPL07-003.h"
// Define SPL07-006 I2C address
#define SPL07_ADDR SPL07_ADDR_DEF // Default I2C address (SDO=high)
// #define SPL07_ADDR SPL07_ADDR_ALT // Alternate I2C address (SDO=low)
#define SS 1 //Define your own SPI pins
// Create SPL07-003 sensor instance
SPL07_003 spl;
//HardwareSerial SerialOut(PA10, PA9); //for STM32F103C8Tx
// Runs at startup
void setup() {
// Begin Serial
Serial.begin(115200);
// Configure & start SPI
SPI.begin();
// Connect to SPL07-003
if (spl.begin(SS,&SPI) == false) {
Serial.println("Error initializing SPL07-003 :(");
while (1) {}
}//if
Serial.println("Connected to SPL07-003! :)");
// Set pressure & temperature sampling settings
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES);
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE);
// Set SPL07-003 to continuous measurements
spl.setMode(SPL07_CONT_PRES_TEMP);
}//setup()
// Runs continuously
void loop() {
// Wait for available reading
if (spl.pressureAvailable() || spl.temperatureAvailable()) {
// Read latest values
double pres = spl.readPressure();
double temp = spl.readTemperature();
double altitude = spl.calcAltitude();
// Print to serial
Serial.print("Pres: ");
Serial.print(pres, 3);
Serial.print(" Pa, Temp: ");
Serial.print(temp, 3);
Serial.print(" C, Altitude: ");
Serial.print(altitude, 3);
Serial.println(" m");
}//if
}//loop()
Função
As seguintes funções são usadas no código de exemplo acima.
spl.begin(SPL07_ADDR) / spl.begin(SS,&SPI)
Inicializa o sensor SPL07-003. Retorna falso se o sensor não for encontrado no barramento.
spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES)
Configura o sensor de pressão com:
- taxa de dados de saída de 4 Hz
- média de 32 amostras para redução de ruído
Uma contagem de amostras mais alta melhora a precisão, mas aumenta o tempo de resposta.
spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE)
Configura o sensor de temperatura com:
- taxa de atualização de 4 Hz
- média de 1 amostra (resposta mais rápida, menos suavização)
spl.setMode(SPL07_CONT_PRES_TEMP)
Define o SPL07-003 para o modo contínuo de medição de pressão e temperatura, para que ele atualize os dados automaticamente sem acionamento manual.
spl.pressureAvailable(), spl.temperatureAvailable()
Verifica se uma nova medição de pressão ou temperatura está disponível no sensor. Elas retornam verdadeiro quando dados novos estão prontos para leitura.
spl.readPressure()
Lê o valor de pressão mais recente do sensor em Pascais (Pa).
spl.readTemperature()
Lê a temperatura atual em graus Celsius (°C).
spl.calcAltitude()
Estima a altitude (em metros) com base na leitura atual de pressão usando o modelo de atmosfera padrão. Útil em aplicações como estimativa barométrica de altitude para drones ou estações meteorológicas.
Recursos
- [KiCAD] Grove-Barometer Sensor SPA06-003 SCH&PCB
- [Datasheet] SPA06-003 Datasheet
- [References] I2C how-to for Arduino
Suporte Técnico & Discussão sobre o Produto
Obrigado por escolher nossos produtos! Estamos aqui para oferecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja o mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.



