- Published on
Raspberry Piに「LPS25H」を接続し制御する
1594文字3分で読めます–––
閲覧数
- Authors
- Name
- 将 有坂
- short bio
- ラズパイやArduinoで電子工作をしてます。
はじめに
Raspberry Piはコンパクトでパワフルなシングルボードコンピュータであり、様々なセンサーやモジュールを利用してIoTプロジェクトを構築するのに適しています。この記事では、「LPS25H」と呼ばれる気圧センサーをRaspberry Piに接続し、制御する方法について解説します。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
1. LPS25H気圧センサーの概要
LPS25Hは、気圧および温度を計測するためのデジタル気圧センサーです。I2CまたはSPI通信プロトコルを使用して、Raspberry Piと通信します。このセンサーを使用することで、大気圧の変化や高度の計測が可能になります。
2. LPS25Hの接続
まず、LPS25HをRaspberry Piに接続します。通常、LPS25HにはVCC、GND、SDA、SCLの4つのピンがあります。
- VCC: 3.3Vの電源
- GND: 接地
- SDA: I2Cのデータライン
- SCL: I2Cのクロックライン
これらのピンをRaspberry Piの対応するピンに接続します。
3. Pythonコードの作成
Raspberry PiでLPS25Hを制御するには、Pythonを使用します。以下は、smbus
モジュールを使ってLPS25HとI2C通信を行う基本的な例です。
import smbus
import time
# LPS25HのI2Cアドレス
LPS25H_I2C_ADDR = 0x5C
# LPS25Hレジスタアドレス
PRESS_OUT_XL = 0x28
PRESS_OUT_L = 0x29
PRESS_OUT_H = 0x2A
# I2Cバスの初期化
bus = smbus.SMBus(1)
# LPS25Hの初期化
def init_lps25h():
# CTRL_REG1 レジスタの設定(データレートなどの設定)
bus.write_byte_data(LPS25H_I2C_ADDR, 0x20, 0x90)
# 気圧の取得
def read_pressure():
# 24ビットの気圧データを読み込む
pressure_xl = bus.read_byte_data(LPS25H_I2C_ADDR, PRESS_OUT_XL)
pressure_l = bus.read_byte_data(LPS25H_I2C_ADDR, PRESS_OUT_L)
pressure_h = bus.read_byte_data(LPS25H_I2C_ADDR, PRESS_OUT_H)
# 16ビットに変換
pressure_raw = (pressure_h << 16) | (pressure_l << 8) | pressure_xl
return pressure_raw / 4096.0
# メインプログラム
if __name__ == "__main__":
try:
init_lps25h()
while True:
pressure = read_pressure()
print(f"気圧: {pressure} hPa")
time.sleep(1)
except KeyboardInterrupt:
pass
finally:
print("プログラムを終了します")
このコードは、LPS25Hから気圧を読み取り、1秒ごとに表示するものです。必要に応じて、温度データを読み取るなど、さまざまなセンサーデータを取得できます。
4. コードの実行と確認
コードを保存し、Raspberry Piで実行します。気圧の値が表示されれば、LPS25Hが正常に接続され、制御されていることが確認できます。
これで、Raspberry PiにLPS25Hを接続し、Pythonコードを使用して気圧データを取得する基本的な手順が完了しました。これをベースにして、気象情報の収集やその他のプロジェクトに応用することが可能です。
※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚