冬は乾燥するので対策としてまずはラズパイで測定することにしました。
ラズパイのセンサを使って冬の乾燥対策
冬で乾燥してきたので、ラズパイのセンサーで時間ごとの値を調べようと思い立ったのでやってみました。
センサー
湿度センサーではAM2302 をアマゾンで購入しました。。
かなり安いですし、サンプルがネットに多いことからこれに決めました。
接続
このセンサーは3ピン、4ピンとあるようで、ネットでもいろんなつなぎ方があります。
結局うちのは4ピンで、こちらのサイトでのつなぎ方をしたら無事動作しました。
Raspberry Piでセンサーを使ってみよう ~温湿度センサーの値をSlackに通知するレシピ (1/3)|CodeZine(コードジン)
ラズパイ側。
ブレッドボード側。
オスメスx3本が必要。
購入したセンサーにはメスメスが入ってましたが使わず。
また、抵抗が必要のようで10kオームのものをつけてみました。
こちらはアマゾンで購入。
プログラム
あとは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というライブラリで動作しました。
まず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