Skip to main content

Grove - 気圧センサー (SPA06-003)

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

説明

Grove - 温度および気圧センサー(SPA06-003) は、高精度かつ低消費電力の環境センサーで、温度と気圧を測定します。I2CおよびSPI通信の両方をサポートしており、SPA06-003用のArduinoライブラリを提供しています。

note

このセンサーは環境条件に非常に敏感であるため、指で触れないでください

特徴

  • 広い測定範囲: 気圧測定範囲は300hPa~1100hPa、温度測定範囲は-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バスを選択するには、2つのパッドをはんだ付けで接続します(デフォルトで接続されています)。SPIバスを選択するには、鋭利なナイフまたははんだごてで2つのパッドを切断します。
  • スレーブボードアドレス選択パッド:アドレスの衝突を避けるためにスレーブボードアドレスを選択します。
tip
  • I2Cバスを選択した場合、スレーブボードのデフォルトアドレスは0x77(右側の2つのパッドが接続されています)です。アドレス0x76を使用したい場合は、左側の2つのパッドのみを接続し(右側の2つを切断)、はんだ付けしてください。
  • パッドは鋭利なナイフで簡単に切断できます。
  • SPIバスを選択した場合、スレーブボードのデフォルトアドレスは0x77(右側の2つのパッドが接続されています)です。アドレス0x76を使用したい場合は、3つのパッドすべてを切断してください。

ハードウェア

以下のものを準備してください:

  • Arduinoで遊ぶ
Seeeduino V4.2ベースシールドGrove-気圧センサー SPA06-003

pir

pir

pir

今すぐ購入今すぐ購入今すぐ購入
  • ArduinoにGroveを接続
  • XIAO ESP32シリーズで遊ぶ
Seeed Studio Grove Base for XIAOXIAO ESP32-S3Grove-気圧センサー SPA06-003
今すぐ購入今すぐ購入今すぐ購入
  • ESP32シリーズにGroveを接続

2つの異なる組み合わせですが、同じコードを使用します。

tip

動作中にこの製品に触れたり、揺らしたり、振動させたりしないでください。これにより干渉が発生し、収集されたデータの精度に影響を与えます。

この接続表は、I2Cをサポートするすべてのボードに適用されます。

ボードGrove-気圧センサー SPA06-003
3.3VVCC
GNDGND
SDASDA
SCLSCL

ソフトウェア

ステップ1. ライブラリをGithubからダウンロードします。


ステップ2. ライブラリのインストール方法を参照して、Arduino用のライブラリをインストールします。

ステップ 3. 新しい Arduino スケッチを作成し、以下のコードを貼り付けるか、次のパスからコードを直接開いてください:File -> Example -> Seeed Arduino SPA06 -> Example1_BasicRead

ステップ 4. コードをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。

ステップ 5. シリアルモニターを開き、センサーのデータ(温度、気圧値、高度)を受信します。

tip

すべてが正常に動作している場合、結果は以下のようにシリアルポートに表示されます。

機能

以下がコードです:

/*
* 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"

// SPL07-006 I2Cアドレスを定義
#define SPL07_ADDR SPL07_ADDR_DEF // デフォルトのI2Cアドレス (SDO=high)
// #define SPL07_ADDR SPL07_ADDR_ALT // 代替I2Cアドレス (SDO=low)

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