/a/センサー
Published on

Raspberry Piに「AM2320」を接続し制御する

1465文字3分で読めます–––
閲覧数
Authors
  • avatar
    Name
    将 有坂
    short bio
    ラズパイやArduinoで電子工作をしてます。

はじめに

Raspberry Piは、手頃な価格で高性能なシングルボードコンピュータであり、様々なセンサーやモジュールを組み合わせて利用することができます。この記事では、気温と湿度を測定するセンサー「AM2320」をRaspberry Piに接続し、制御する方法について解説します。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚

1. AM2320センサーの概要

AM2320は、デジタル式の気温と湿度センサーで、I2C通信を使用してデータを取得します。非常に正確で安定した測定が可能であり、Raspberry Piなどのボードとの組み合わせが一般的です。

2. AM2320の接続

AM2320をRaspberry Piに接続するためには、4つのピンがあります。

  • VCC(赤色): 3.3Vの電源
  • GND(茶色): 接地
  • SCL(緑色): I2Cクロック
  • SDA(黄色): I2Cデータ

これらのピンをRaspberry Piに接続します。通常、Raspberry Pi上にはI2Cピンが用意されており、指定されたピンにAM2320を接続します。

3. Raspberry Piコードの作成

Raspberry PiでAM2320を制御するためには、Python言語を使用します。まず、I2C通信を行うためのライブラリをインストールします。

sudo apt-get update
sudo apt-get install -y python3-smbus i2c-tools

次に、以下のようなPythonコードを作成します。

import smbus
import time

bus = smbus.SMBus(1)  # I2C通信用のバス番号(Raspberry Piによって異なる場合がある)

def read_am2320():
    try:
        # AM2320のI2Cアドレス(デフォルトは0x5C)
        address = 0x5C

        # 温湿度データの読み取り
        data = bus.read_i2c_block_data(address, 0, 6)

        # データの解析
        humidity = ((data[2] << 8) + data[3]) / 10.0
        temperature = (((data[4] & 0x7F) << 8) + data[5]) / 10.0

        # 符号の確認
        if data[4] & 0x80:
            temperature = -temperature

        return temperature, humidity

    except Exception as e:
        print(f"Error: {str(e)}")
        return None

# メインプログラム
while True:
    result = read_am2320()

    if result is not None:
        temperature, humidity = result
        print(f"Temperature: {temperature}°C, Humidity: {humidity}%")

    time.sleep(2)  # 2秒ごとに測定

4. コードの実行と確認

コードを保存したら、ターミナルで実行します。

python3 your_script_name.py

これにより、AM2320がRaspberry Piに接続され、2秒ごとに温度と湿度が表示されるはずです。

以上で、Raspberry PiにAM2320を接続し、制御するための基本的な手順が完了しました。これを基にして、データの保存やリモートアクセスなどの機能を追加して様々なプロジェクトを実現できます。

※ センサー類を安く買うなら → AliExpress 🛒 早く届くのが良ければ → Amazon 🚚
avatar

将 有坂

電子部品専門家 / ラズベリーパイのプロ / 数多くのセンサーやモジュールの導入実績
ラズベリーパイやArduinoの電子工作に関わるソフトウェアエンジニア。これまで100種類以上のセンサーやモジュールの導入を行い、その知識と経験を活かして、多くの人々に電子工作の楽しさを伝えることを使命としている。

タグ ->