2022年6月15日水曜日

Maker Pi RP2040とCircuitPythonで、Grove DHT20温湿度センサーを接続して温度・湿度を計測する

Maker Pi RP2040には7つのGroveコネクタがあり、様々なGroveデバイスを接続することが出来ます。Grove DHT20温湿度センサー(Grove - Temperature&Humidity Sensor DHT20 )を接続して温度・湿度を計測するには、以下の手順を実行します。

〇Maker Pi RP2040と接続したGrove DHT20温湿度センサー(Grove - Temperature&Humidity Sensor DHT20 )

実行手順

1. Maker Pi RP2040をパソコンにUSBで接続して、Mu Editorを起動します。

2. 以下のリポジトリ(Adafruit_CircuitPython_AHTx0)からCircuitPython用のDHT20ドライバクラスを取得します。
https://github.com/adafruit/Adafruit_CircuitPython_AHTx0
以下のpythonソースをダウンロードして、Maker Pi RP2040のlibディレクトリ以下にエクスプローラーなどを用いてコピーします。
https://github.com/adafruit/Adafruit_CircuitPython_AHTx0/blob/main/adafruit_ahtx0.py

3. code.pyを開いて、以下のプログラムを書き込みます。
シリアルに温度・湿度の計測値を出力し、温度が高いほどRGB LED0を明るく赤色に点灯させ、湿度が高いほどRGB LED1を明るく青色に点灯します。
DHT20温湿度センサーはGrove2コネクタに接続します。
※circuit python 7.2.5以降にアップグレードしてから実行してください。
※Mu Editorを使用せず、code.pyを直接エクスプローラーなどから保存する事も出来ます。
import board
import time
import digitalio
import adafruit_ahtx0
import busio
import neopixel_write

# RGB LEDを初期化
dio18 = digitalio.DigitalInOut(board.GP18)
dio18.direction = digitalio.Direction.OUTPUT
pixel_buf = bytearray([0, 0, 0, 0, 0, 0])
neopixel_write.neopixel_write(dio18, pixel_buf)

# DHT20初期化
i2c = busio.I2C(board.GP3, board.GP2, frequency=1000000)
dht20 = adafruit_ahtx0.AHTx0(i2c)

while True:
    # 温度が高いほど明るい赤で表示
    temp = dht20.temperature
    print("Temp: %0.1f C" % temp)
    temp = 0 if temp < 0 else temp
    temp = 40 if temp > 40 else temp
    # 湿度が高いほど明るい青で表示
    humi = dht20.relative_humidity
    print("Humidity: %0.1f %%" % humi)
    humi = int(humi/100*255)

    pixel_buf = bytearray([0, int(temp/40*255), 0, 0, 0, humi])
    neopixel_write.neopixel_write(dio18, pixel_buf)
    time.sleep(1)

関連情報

・Maker Pi RP2040に関する他の情報はこちらを参照してください。

・Mu Editorに関する他の情報はこちらを参照してください。

0 件のコメント:

コメントを投稿