Pular para o conteúdo principal

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.

nota

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.
dica

Para mais detalhes sobre os módulos Grove, consulte o Sistema Grove.

Especificações

ParâmetroDescrição
Tensão de Alimentação3.3V
InterfaceI2C e SPI
Endereço I2C0x77 (default)
0x76
Medição de Pressão Barométrica
Faixa300~1100 hPa
Precisão Absoluta±0.3 hPa
Medição de Temperatura
Faixa-40℃ a +85℃
Precisão±1℃
Dimensões40mm x 20mm x 6.5mm

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

ITEMGrove-BMP280Grove-BME280Grove-DPS310Grove-SPA06-003
Faixa de Pressão300 ~ 1100 hPa300 ~ 1100 hPa300 ~ 1200 hPa300 ~ 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ão0.18 Pa0.18 Pa0.06 Pa0.06 Pa
Umidade-0 ~ 100%--
ComunicaçãoI2C/SPII2C/SPII2C/SPII2C/SPI
Preço$9.8$18.7$7.5$4.5

Lista de Peças

ItemQuantidade
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.
dica
  • 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.2Base ShieldGrove-Barometer Sensor SPA06-003

pir

pir

pir

Adquira AgoraAdquira AgoraAdquira Agora
  • Brinque com a Série XIAO
Seeed Studio Grove Base para XIAOXIAO ESP32-S3Grove-Barometer Sensor SPA06-003
Adquira AgoraAdquira AgoraAdquira 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.

dica

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.

PlacasGrove-Barometer_Sensor-SPA06-003
3.3VVCC
GNDGND
SDASDA
SCLSCL

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.

success

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

dica
  • 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.

success

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

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.

Loading Comments...