Grove - 気圧センサー
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
この Grove - 気圧センサーは、Bosch BMP085 高精度チップを搭載しており、気圧と温度を検出します。300hPaから1100hPa、つまり海抜+9000mから-500mまでの範囲を広く測定でき、超高解像度モードでは0.03hPa(0.25m)の非常に高い精度を持っています。このチップは1.8Vから3.6Vの入力電圧のみを受け付けますが、外部回路を追加することで、このモジュールは3.3Vおよび5Vに対応します。そのため、Arduino/#SeeeduinoやSeeeduino Stalkerで改造なしに使用できます。このセンサーは、I2Cバスを介してマイクロコントローラーに直接接続するよう設計されています。
特徴
- デジタル2線式(I2C)インターフェース
- 広い気圧測定範囲
- 柔軟な電源電圧範囲
- 超低消費電力
- 低ノイズ測定
- 完全校正済み
- 温度測定機能を含む
Groveモジュールの詳細については、[Grove System](https://wiki.seeedstudio.com/ja/Grove_System/)をご参照ください。
応用例
- GPSナビゲーションの強化
- 屋内および屋外ナビゲーション
- レジャーとスポーツ
- 天気予報
- 垂直速度指示(上昇/下降速度)
仕様
項目 | 最小 | 標準 | 最大 | 単位 |
---|---|---|---|---|
電圧 | 3 | 5 | 5.5 | VDC |
電流 | 89 | / | 130 | uA |
気圧範囲 | 300 | / | 1100 | hPa |
高速I2Cデータ転送 | / | / | 3.4 | MHZ |
寸法 | 20.4*24.3*9.7 | mm | ||
重量 | 2 | g |
使用方法
Arduinoでの使用
気圧条件は、天気の変化を予測したり、海抜高度を推定するための基準の1つです。以下は、このGrove - 気圧センサーから気圧データを読み取る方法を示すデモです。
- Groveケーブルを使用して、SeeeduinoまたはGrove - Base ShieldのIICポートに接続します。そして、USBケーブルを介してArduinoをPCに接続します。
ライブラリ Barometer_Sensor Library をダウンロードし、Arduino IDEのライブラリフォルダに解凍します。パスは次の通りです: ..\arduino-1.0.1\libraries。
新しいArduinoスケッチを作成し、以下のコードを貼り付けるか、次のパスからコードを直接開きます:File -> Example ->Barometer_Sensor->Barometer_Sensor。
/* Barometer demo V1.0
* 主にJim Lindblomのコードを基にしています
* BMP085から気圧、高度、温度を取得します。
* シリアルモニターに9600ボーで出力します。
*
* By:https://www.seeedstudio.com
*/
#include "Barometer.h"
#include <Wire.h>
float temperature;
float pressure;
float atm;
float altitude;
Barometer myBarometer;
void setup(){
Serial.begin(9600);
myBarometer.init();
}
void loop()
{
temperature = myBarometer.bmp085GetTemperature(myBarometer.bmp085ReadUT()); // 温度を取得します。bmp085ReadUTは最初に呼び出す必要があります
pressure = myBarometer.bmp085GetPressure(myBarometer.bmp085ReadUP()); // 気圧を取得します
altitude = myBarometer.calcAltitude(pressure); // 補正されていない計算 - メートル単位
atm = pressure / 101325;
Serial.print("Temperature: ");
Serial.print(temperature, 2); // 小数点以下2桁を表示
Serial.println("deg C");
Serial.print("Pressure: ");
Serial.print(pressure, 0); // 整数のみを表示
Serial.println(" Pa");
Serial.print("Ralated Atmosphere: ");
Serial.println(atm, 4); // 小数点以下4桁を表示
Serial.print("Altitude: ");
Serial.print(altitude, 2); // 小数点以下2桁を表示
Serial.println(" m");
Serial.println();
delay(1000); // 1秒待って再度値を取得します
}
- シリアルモニターを開き、温度、気圧値、相対気圧、および高度を含むセンサーのデータを受信します。
以下は、海抜高度と気圧の関係をプロットした参考グラフです。
Raspberry Piでの使用
Raspberry PiとGrovePiまたはGrovePi+を用意してください。
開発環境の設定を完了している必要があります。設定がまだの場合は、こちらを参照してください。
接続
- バロメーターセンサーを GrovePi の i2c ソケットに接続します。
- デモのディレクトリに移動します:
cd yourpath/GrovePi/Software/Python/grove_barometer/adafruit/
- コードを確認するには以下を実行します:
nano grove_i2c_barometic_sensor_example.py # "Ctrl+x" で終了 #
#!/usr/bin/python
import smbus
import RPi.GPIO as GPIO
#import grovepi from grove_i2c_barometic_sensor import BMP085
# ===========================================================================
# サンプルコード
# ===========================================================================
# BMP085 を初期化し、STANDARD モード(デフォルト値)を使用
# bmp = BMP085(0x77, debug=True)
bmp = BMP085(0x77, 1)
# 別の動作モードを指定するには、以下のいずれかをコメント解除してください:
# bmp = BMP085(0x77, 0) # ULTRALOWPOWER モード
# bmp = BMP085(0x77, 1) # STANDARD モード
# bmp = BMP085(0x77, 2) # HIRES モード
# bmp = BMP085(0x77, 3) # ULTRAHIRES モード
rev = GPIO.RPI_REVISION
if rev == 2 or rev == 3:
bus = smbus.SMBus(1)
else:
bus = smbus.SMBus(0)
temp = bmp.readTemperature()
# 現在の気圧レベルを読み取る
pressure = bmp.readPressure()
# 推定平均海面気圧(1013.25 hPa)に基づいて高度を計算するには、
# 以下のように関数を呼び出します。ただし、これはあまり正確ではありません。
# altitude = bmp.readAltitude()
# より正確な高度を指定するには、正しい平均海面気圧レベルを入力します。
# 例えば、現在の気圧レベルが 1023.50 hPa の場合、102350 を入力します。
# 小数点以下 2 桁を整数値に含めます。
altitude = bmp.readAltitude(101560)
print "Temperature: %.2f C" % temp
print "Pressure: %.2f hPa" % (pressure / 100.0)
print "Altitude: %.2f m" % altitude
- デモを実行します。
sudo python grove_i2c_barometic_sensor_example.py
- 結果
回路図オンラインビューア
リソース
技術サポートと製品ディスカッション
私たちの製品をお選びいただきありがとうございます!製品をご利用いただく際に、できるだけスムーズな体験をしていただけるよう、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルをご用意しています。