机の上を整理したくダッシュボードを作ります。

概要

デジタルダッシュボード作成 第四弾。 温度と湿度を測定するDHT22を購入したので、ラズパイと接続させ動作するのか確認します。

この記事はそのメモやまとめです。 すでに設定済みの項目がいくつかある。 試行錯誤しながらやったので、手順として不要かもしれない。あくまでメモ用。

実装したい内容とか整理

ここでは ・温度 ・湿度 をラズパイ上できちんと計測してくれるかまでやります。

測定準備

https://zenn.dev/hasegawasatoshi/articles/f4708b23077cf7

の記事を参考にしました。 DHT22の接続は+/OUT/-になっているので、これをラズパイの2(5v)/7(GPIO4)/9(GND)に接続しました。

ラズパイ側の準備をします。

# 必要となるパッケージインストール
sudo apt-get install libgpiod2

# 仮想環境の作成
python -m venv .venv
. .venv/bin/activate

# adafruit-circuitpython-dht をインストール
pip install adafruit-circuitpython-dht

測定用のコードを準備します。
基本的にはそのままですが、board.D4と自分の環境に合わせたボード番号に変更しています。

import time
import board
import adafruit_dht

dhtDevice = adafruit_dht.DHT22(board.D4)

while True:
    try:
        # Print the values to the serial port
        temperature_c = dhtDevice.temperature
        temperature_f = temperature_c * (9 / 5) + 32
        humidity = dhtDevice.humidity
        print(
            "Temp: {:.1f} F / {:.1f} C    Humidity: {}% ".format(
                temperature_f, temperature_c, humidity
            )
        )

    except RuntimeError as error:
        # Errors happen fairly often, DHT's are hard to read, just keep going
        print(error.args[0])
        time.sleep(2.0)
        continue
    except Exception as error:
        dhtDevice.exit()
        raise error

    time.sleep(2.0)

測定

準備ができたので実際に動かしてみます。

. .venv/bin/activate

python sample.py

 $ python sample.py
Temp: 79.3 F / 26.3 C    Humidity: 55.3%
Temp: 79.3 F / 26.3 C    Humidity: 55.5%
Temp: 79.3 F / 26.3 C    Humidity: 55.6%
Temp: 79.3 F / 26.3 C    Humidity: 55.7%
Temp: 79.3 F / 26.3 C    Humidity: 55.5%
Temp: 79.3 F / 26.3 C    Humidity: 55.4%
Temp: 79.3 F / 26.3 C    Humidity: 55.5%
Temp: 79.3 F / 26.3 C    Humidity: 58.4%
Temp: 79.5 F / 26.4 C    Humidity: 69.2%
Temp: 79.5 F / 26.4 C    Humidity: 77.7%
Temp: 79.7 F / 26.5 C    Humidity: 79.2%
Temp: 79.7 F / 26.5 C    Humidity: 71.9%
Temp: 79.9 F / 26.6 C    Humidity: 66.1%
Temp: 79.9 F / 26.6 C    Humidity: 61.9%
Temp: 79.9 F / 26.6 C    Humidity: 59.6%
Temp: 80.1 F / 26.7 C    Humidity: 57.9%
Temp: 80.1 F / 26.7 C    Humidity: 56.8%
....

いい感じに取れてそうです!
今自室にある温度計と湿度計は
温度:26.5
湿度:50%
でした。
そもそもこの2つのデバイスの位置がだいぶ離れているので数値が違っているようですが、温度についてはほぼほぼ同じ値でした。

次やりたいこと

  • 上記の測定結果を利用してダッシュボードに反映させる
  • ラズパイ1台で完結するタイプと計測結果をWindowsに転送してWindows上でダッシュボード表示させる2つのパターンを考えたい