Skip to main content

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

Descripción

Grove - Sensor de Temperatura y Barómetro (SPA06-003) es un sensor ambiental de alta precisión y bajo consumo que mide la temperatura y el barómetro. Soporta comunicación tanto I2C como SPI y proporcionamos la biblioteca Arduino SPA06-003.

note

Como el sensor es bastante sensible a las condiciones ambientales, por favor NO lo toques con los dedos.

Características

  • Amplio rango de medición: Las mediciones de presión van desde 300hPa - 1100hPa y las mediciones de temperatura van desde -40℃ - +85℃.
  • Alta precisión: La precisión absoluta de ±0.3 hPa para medición de presión y precisión de ±1 ℃ para medición de temperatura.
  • Largo tiempo de espera: El uso del FIFO permite que el procesador anfitrión permanezca en modo de suspensión por períodos más largos entre lecturas, reduciendo el consumo total de energía del sistema y logrando una corriente de espera tan baja como 0.5 μA.
  • Interfaz Grove: Cuenta con un conector Grove de 4 pines, asegurando una experiencia "Plug and Play" para conectar con plataformas de hardware principales como Arduino, Raspberry Pi, Micro:bit y muchas más.
tip

Más detalles sobre los módulos Grove por favor consulta Sistema Grove.

Especificaciones

ParámetroDescripción
Voltaje de Alimentación3.3V
InterfazI2C y SPI
Dirección I2C0x77 (por defecto)
0x76
Medición de Presión Barométrica
Rango300~1100 hPa
Precisión Absoluta±0.3 hPa
Medición de Temperatura
Rango-40℃ a +85℃
Precisión±1℃
Dimensiones40mm x 20mm x 6.5mm

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

ELEMENTOGrove-BMP280Grove-BME280Grove-DPS310Grove-SPA06-003
Rango de Presión300 ~ 1100 hPa300 ~ 1100 hPa300 ~ 1200 hPa300 ~ 1100 hPa
Rango de Temperatura-40 ~ 85 ℃-40 ~ 85 ℃-40 ~ 85 °C-40 ~ 85 °C
Precisión de Presión--± 0.002 hPa (o ±0.02 m)-
Exactitud de Presión (Absoluta)± 1 hPa (o ±8 m)± 1 hPa (o ±8 m)± 1 hPa (o ±8 m)± 0.3 hPa
Exactitud de Presión (Relativa)± 0.12 hPa± 0.12 hPa± 0.06 hPa (o ±0.5 m)± 0.03 hPa (o ±0.25 m)
Resolución de Presión0.18 Pa0.18 Pa0.06 Pa0.06 Pa
Humedad-0 ~ 100%--
ComunicaciónI2C/SPII2C/SPII2C/SPII2C/SPI
Precio$9.8$18.7$7.5$4.5

Lista de Componentes

ArtículoCantidad
Grove Sensor de Temperatura y Barómetro (SPA06-003)×1
Grove - Cable de 20cm×1

Aplicación

  • Estación Meteorológica y Sensado del Clima
  • Medir Temperatura, Presión y Altitud

Primeros Pasos

Diagrama de indicaciones

  • Pads de soldadura SPI.
  • Pads de selección de bus de interfaz, para seleccionar el bus I2C, conecta los dos pads soldando (esto está conectado por defecto); para seleccionar el bus SPI, corta los dos pads con un cuchillo afilado o un soldador.
  • Pads de selección de dirección de placa esclava, para seleccionar la dirección de la placa esclava y evitar colisión de direcciones.
tip
  • Si has seleccionado el bus I2C, la dirección por defecto para la placa esclava es 0x77 (los dos pads de la derecha están conectados). Si quieres usar la dirección 0x76, conecta solo los dos de la izquierda (desconecta los dos de la derecha) soldando.
  • Puedes desconectar los pads simplemente con un cuchillo afilado.
  • Si has seleccionado el bus SPI, la dirección por defecto para la placa esclava es 0x77 (los dos pads de la derecha están conectados). Si quieres usar la dirección 0x76, desconecta los tres pads.

Hardware

Prepara los siguientes elementos:

  • Jugar con Arduino
Seeeduino V4.2Base ShieldGrove-Sensor Barómetro SPA06-003

pir

pir

pir

Consigue Uno AhoraConsigue Uno AhoraConsigue Uno Ahora
  • Jugar con Serie XIAO
Seeed Studio Grove Base para XIAOXIAO ESP32-S3Grove-Sensor Barómetro SPA06-003
Consigue Uno AhoraConsigue Uno AhoraConsigue Uno Ahora

Software

Paso 1. Inicia la aplicación Arduino.


Paso 2. Selecciona tu modelo de placa de desarrollo y añádelo al Arduino IDE.

  • Si quieres usar Seeed Studio XIAO SAMD21 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO RP2040 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO RP2350 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO nRF52840 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO ESP32C3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO ESP32C6 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO ESP32S3 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO RA4M1 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

  • Si quieres usar Seeed Studio XIAO MG24 para las rutinas posteriores, por favor consulta este tutorial para terminar de añadirlo.

Paso 3. Descarga la librería desde Github, y consulta Cómo instalar librería para instalar la librería para Arduino.


Usar Bus I2C

Paso 1. Conecta tu Grove con el controlador

  • Conectar Grove con Arduino
  • Conectar Grove y XIAO

Dos combinaciones diferentes, pero usando el mismo código.

tip

No toques, agites o dejes este producto en vibración cuando funcione. Esto causará interferencia y afectará la precisión de los datos recopilados.

Esta tabla de conexión se aplica a todas las placas con soporte I2C.

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

Paso 2. Crea un nuevo sketch de Arduino y pega el código a continuación o abre el código directamente por la ruta: File -> Example ->Seeed Arduino SPA06>Example1_BasicRead

Paso 3. Sube el código. Si no sabes cómo subir el código, por favor revisa cómo subir código.

Paso 4. Abre el monitor serie para recibir los datos del sensor incluyendo temperatura, valor de presión barométrica y altitud.

success

El resultado se mostrará en el Puerto Serie como se muestra a continuación si todo va bien.

Aquí está el 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 Bus SPI

Paso 1. Conecta el Sensor Barómetro Grove SPA06-003 con tu controlador

tip
  • Para seleccionar el bus SPI, por favor usa un cuchillo afilado o un soldador para cortar las dos almohadillas en el Área de Configuración del Bus de Interfaz.

  • No toques, agites o permitas que este producto esté en vibración cuando funcione. Esto causará interferencia y afectará la precisión de los datos recolectados.

Paso 2. Crea un nuevo sketch de Arduino y pega los códigos debajo o abre el código directamente por la ruta: File -> Example ->Seeed Arduino SPA06>Example3_SPIRead

Paso 3. Sube el código. Si no sabes cómo subir el código, por favor revisa cómo subir código.

Paso 4. Abre el monitor serie para recibir los datos del sensor incluyendo temperatura, valor de presión barométrica y altitud.

success

El resultado se mostrará en el Puerto Serie como sigue si todo va bien.

Aquí está el 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()

Función

Las siguientes funciones se utilizan en el código de ejemplo anterior.

spl.begin(SPL07_ADDR) / spl.begin(SS,&SPI)

Inicializa el sensor SPL07-003. Devuelve false si el sensor no se encuentra en el bus.

spl.setPressureConfig(SPL07_4HZ, SPL07_32SAMPLES)

Configura el sensor de presión con:

  • Velocidad de datos de salida de 4 Hz
  • Promedio de 32 muestras para reducción de ruido

Un mayor número de muestras mejora la precisión pero aumenta el tiempo de respuesta.

spl.setTemperatureConfig(SPL07_4HZ, SPL07_1SAMPLE)

Configura el sensor de temperatura con:

  • Tasa de actualización de 4 Hz
  • Promedio de 1 muestra (respuesta más rápida, menos suavizado)
spl.setMode(SPL07_CONT_PRES_TEMP)

Configura el SPL07-003 en modo de medición continua de presión y temperatura, por lo que actualiza los datos automáticamente sin activación manual.

spl.pressureAvailable(), spl.temperatureAvailable()

Verifica si una nueva medición de presión o temperatura está disponible desde el sensor. Estas devuelven true cuando hay datos frescos listos para leer.

spl.readPressure()

Lee el último valor de presión del sensor en Pascales (Pa).

spl.readTemperature()

Lee la temperatura actual en grados Celsius (°C).

spl.calcAltitude()

Estima la altitud (en metros) basándose en la lectura de presión actual utilizando el modelo de atmósfera estándar. Útil en aplicaciones como estimación de altitud barométrica para drones o estaciones meteorológicas.

Recursos

Soporte Técnico y Discusión de Productos

¡Gracias por elegir nuestros productos! Estamos aquí para brindarle diferentes tipos de soporte para asegurar que su experiencia con nuestros productos sea lo más fluida posible. Ofrecemos varios canales de comunicación para satisfacer diferentes preferencias y necesidades.

Loading Comments...