ラズベリーパイでは、I2CやUART、SPIなど、デジタルのインターフェースを搭載し、かつライブラリーが提供されているセンサーを使うのが最も簡単です。

この記事では、ラズベリーパイでI2C接続の温湿度センサー(DHT-20)の使い方を紹介します。DTH20はライブラリーがありますので、温度と湿度を簡単に測ることができます。

 

温湿度センサーDHT-20のスペック

主なスペックは以下のとおりです。

測定対象 温度(-40〜80℃)、相対湿度(0〜100%RH)
電源 DC 2.2〜5.5V
消費電流 0.98 mA(測定時)、0.25μA(待機時)
インターフェース I2C(アドレス: 0x38)
精度 温度: ±0.5℃、湿度: ±3%RH
推奨測定間隔 2s
Pythonライブラリー adafruit-circuitpython-ahtx0

 

ラズベリーパイと温湿度センサーDTH20の接続

I2Cタイプのセンサーは3.3V、SDA、SCL、GNDの4つをラズベリーパイと接続します。SDAはSDAどうし、SCLはSCLどうしに接続します。

具体的には以下のようにします。

DHT20 ラズベリーパイ
VDD 3.3Vピン
SDA GPIO 2
SCL GPIO 3
GND GND(どこのGNDでもOK)

DHT20は小さな穴が開いている方を手前に向けます

 

 

ラズベリーパイの準備

I2Cの有効化

$ sudo raspi-config もしくはデスクトップのGUIからI2Cインターフェースを有効化します。

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

以下のコマンドでインストールできます。

$ sudo pip3 install adafruit-circuitpython-ahtx0
$ pip3 install board

 

サンプルプログラム

以下のプログラムが使用できます。

import time                          # 必要なライブラリーのインポート
import board
import adafruit_ahtx0

i2c = board.I2C()                    # I2Cバスの準備
sensor = adafruit_ahtx0.AHTx0(i2c)   # センサーオブジェクトを作成

while True:
    print("\nTemperature: %0.1f C" % sensor.temperature)     #温度を表示
    print("Humidity: %0.1f %%" % sensor.relative_humidity)   #湿度を表示 
    time.sleep(2)

プログラムを実行すると以下のように表示されます。

 

おわりに

いかがだったでしょうか? ライブラリーを使用しないとプログラムが複雑になりますが、ライブラリーを使用するととてもすっきりしますので、おすすめです😊

関連記事:使い方