クリエイターの教科書

ChatGPT, Stable Diffusion, Visual Studio, Excelなど教科書

【ラズパイ4】湿度センサAM2302を使って冬の乾燥チェック! timeout? platform?

冬は乾燥するので対策としてまずはラズパイで測定することにしました。

ラズパイのセンサを使って冬の乾燥対策

冬で乾燥してきたので、ラズパイのセンサーで時間ごとの値を調べようと思い立ったのでやってみました。

 

センサー

湿度センサーではAM2302 をアマゾンで購入しました。。

かなり安いですし、サンプルがネットに多いことからこれに決めました。

 


VKLSVAN 2個入りDHT22 AM2302 デジタル 温度 湿度 センサー モジュール デジタル温湿度測定
最新価格は以下のおすすめストアで確認ください。
Amazon >>
楽天 >>
Yahoo!ストア >>

 

 

 

接続

このセンサーは3ピン、4ピンとあるようで、ネットでもいろんなつなぎ方があります。

 

結局うちのは4ピンで、こちらのサイトでのつなぎ方をしたら無事動作しました。

 

Raspberry Piでセンサーを使ってみよう ~温湿度センサーの値をSlackに通知するレシピ (1/3)|CodeZine(コードジン)

 

ラズパイ側。

 

ブレッドボード側。

 

 

オスメスx3本が必要。

 

購入したセンサーにはメスメスが入ってましたが使わず。

 

また、抵抗が必要のようで10kオームのものをつけてみました。

こちらはアマゾンで購入。


10kΩ 1% 1/4Wカーボン抵抗・抵抗 20本入 <res-742>
最新価格は以下のおすすめストアで確認ください。
Amazon >>
楽天 >>
Yahoo!ストア >>

 

 

 

プログラム

あとはPYTHONで処理します。

「Adafruit_DHT」 Unknown error?Platform?

プログラムですが、多くのサイトにあるように「Adafruit_DHT」というライブラリを使うと、「Unknown error」となってしまいました。

 

なんか「Platform」がどうのこうのということらしいです。

 

こちらのライブラリバージョンが古いらしく、Pythonをバージョンダウンしないといけないようです。

Raspberry PiでPythonからAdafruit_DHTを使おうとしたときに遭遇したエラーについて #Python - Qiita

 

現在は「Adafruit_CircuitPython_DHT」という方を使ったほうがいいようです。

 

「Adafruit_CircuitPython_DHT」 Timeout?

「Adafruit_CircuitPython_DHT」はGitから入手。

git clone https://github.com/adafruit/Adafruit_CircuitPython_DHT

 

その後「setup.py」を実行します。

この場合、GPIOもインストールしておきましょう。

 sudo apt install python3-rpi.gpio

 

ただうちでは「Adafruit_CircuitPython_DHT」を使ったもののタイムアウトで動かず。

 

配線がダメなのかなと思ったんですが、以下のライブラリでは値が取得できたので、動かない人はそちらで動作を試すといいかもしれません。

 

「MyPyDHT」

うちでは結局MyPyDHTというライブラリで動作しました。

GitHub - freedom27/MyPyDHT: A Python 3 library for Raspberry Pi to interact with the Humidity & Temperature sensors DHT11, DHT22 and AM2302

 

まずgitからクローン。

git clone --recursive https://github.com/freedom27/MyPyDHT

 

作成ディレクトリ内のsetup.pyを実行します。

sudo python setup.py install

 

あとはプログラムファイルを作って以下のように書いて実行。ポートは23を使用しています。

import MyPyDHT

humidity, temperature = MyPyDHT.sensor_read(MyPyDHT.Sensor.DHT22, 23)

 

これで湿度58.6、温度21.8と、それっぽい数値となりました。



そもそものライブラリの選定の段階でうまくいかず、思ったより稼働させるのに時間がかかってしまいました。

 

とはいえ、あとは時間ごとに計測してファイルに書き込んでいけばよさそうです。

 

日付取得パイソン

from datetime import datetime, time

now = datetime.now().time()

 

テキストに追記するパイソン

f = open('dat.txt', 'a')
f.write('この時間のデータ\n')
f.close()

 

 

cron

以下で設定します。

crontab -e

 

5分おきに実行させます。

*/5 * * * * python /home/pi/dht/sensor.py

 

ログ確認はまず以下で#cronのところのコメントオフを削除

$ sudo nano /etc/rsyslog.conf

 

あとは以下ファイルでログを確認できます。

/var/log/cron.log

 

 

このブログは、ネットや書籍上の情報、個人の体験や感想を中心にまとめたものです。 正確性を期していはいますが、間違い・誤訳等あるかもしれません。 当サイトの情報によって生じたいかなる損失について一切の責任を負わないものとします. あらかじめご了承ください。

プライバシーポリシー |〇利用規約 |〇問い合わせ