- Published on
Raspberry Piに「AM2320」を接続し制御する
1465文字3分で読めます–––
閲覧数
- Authors
- 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 🚚