注釈

こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Communityへようこそ!Facebook上で、仲間と一緒にRaspberry Pi、Arduino、ESP32をさらに深く探求しましょう。

なぜ参加するのか?

  • 専門的なサポート:購入後の問題や技術的な課題をコミュニティやチームの助けを借りて解決。

  • 学びと共有:スキルを向上させるためのヒントやチュートリアルを交換。

  • 限定プレビュー:新製品発表や予告編に早期アクセス。

  • 特別割引:最新製品の特別割引を楽しむ。

  • フェスティブプロモーションとプレゼント:プレゼントやホリデープロモーションに参加。

👉 私たちと一緒に探索と創造を始める準備はできましたか?[ここ]をクリックして、今すぐ参加しましょう!

レッスン20: 温度・湿度・気圧センサー (BMP280)

このレッスンでは、Raspberry Piを使用して温度、湿度、および気圧を測定するBMP280センサーを接続し、データを読み取る方法を学びます。センサーをセットアップし、温度、大気圧、標高を測定するPythonスクリプトを作成します。

Required Components

このプロジェクトでは、以下のコンポーネントが必要です。

全キットを購入すると便利です。リンクはこちら:

Name

ITEMS IN THIS KIT

LINK

Universal Maker Sensor Kit

94

Universal Maker Sensor Kit

以下のリンクから個別に購入することもできます。

Component Introduction

Purchase Link

Raspberry Pi 5

-

温度、湿度、気圧センサー (BMP280)

購入

ブレッドボード

購入

Wiring

../_images/Lesson_20_bmp280_pi_bb.png

ライブラリのインストール

注釈

adafruit-circuitpython-bmp280ライブラリはBlinkaに依存していますので、Blinkaがインストールされていることを確認してください。ライブラリのインストールについては Adafruit_Blinka (CircuitPython)のインストール - 任意 を参照してください。

ライブラリをインストールする前に、仮想Python環境がアクティブになっていることを確認してください:

source ~/env/bin/activate

adafruit-circuitpython-bmp280ライブラリをインストール:

pip install adafruit-circuitpython-bmp280

コードの実行

注釈

  • コードを実行する前に、「ライブラリのインストール」ステップに従って必要なPythonライブラリがインストールされていることを確認してください。

  • コードを実行する前に、blinkaがインストールされた仮想Python環境がアクティブになっていることを確認してください。仮想環境をアクティブにするには、以下のコマンドを使用します:

    source ~/env/bin/activate
    
  • このレッスンのコードは universal-maker-sensor-kit-main/pi/ ディレクトリにありますが、以下のコードを直接コピーして貼り付けても構いません。ターミナルで次のコマンドを実行してコードを実行します:

    python 22_touch_sensor_module.py
    
import time
import board

import adafruit_bmp280

# Create sensor object, communicating over the board's default I2C bus
i2c = board.I2C()  # uses board.SCL and board.SDA
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c,address=0x76)

# change this to match the location's pressure (hPa) at sea level
bmp280.sea_level_pressure = 1013.25

try:
   while True:
      print("\nTemperature: %0.1f C" % bmp280.temperature)
      print("Pressure: %0.1f hPa" % bmp280.pressure)
      print("Altitude = %0.2f meters" % bmp280.altitude)
      time.sleep(2)
except KeyboardInterrupt:
    print("Exit")  # Exit on CTRL+C

コード解析

  1. センサーのセットアップ

    必要なライブラリをインポートし、BMP280センサーと対話するオブジェクトを作成します。 board.I2C() はI2C通信を設定します。 adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76) はBMP280センサーをそのI2Cアドレスで初期化します。

    adafruit_bmp280 ライブラリの詳細については、adafruit/Adafruit_CircuitPython_BMP280 を参照してください。

    import time
    import board
    import adafruit_bmp280
    i2c = board.I2C()
    bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76)
    
  2. 海面気圧の設定

    BMP280オブジェクトの sea_level_pressure プロパティを設定します。この値は高度を計算するために必要です。

    bmp280.sea_level_pressure = 1013.25
    
  3. ループ内でのデータ読み取り

    while True ループを使用してセンサーからデータを連続的に読み取ります。 bmp280.temperaturebmp280.pressure 、および bmp280.altitude はそれぞれ温度、気圧、および高度を読み取ります。 time.sleep(2) はループを2秒間一時停止します。

    try:
       while True:
          print("\nTemperature: %0.1f C" % bmp280.temperature)
          print("Pressure: %0.1f hPa" % bmp280.pressure)
          print("Altitude = %0.2f meters" % bmp280.altitude)
          time.sleep(2)
    except KeyboardInterrupt:
       print("Exit")
    
  4. 中断の処理

    try および except KeyboardInterrupt: ブロックは、CTRL+Cを押したときにプログラムが正常に終了できるようにします。

    try:
       # while loop code here
    except KeyboardInterrupt:
       print("Exit")