(2019-04-22 初稿 - 2021-05-13 転記・修正 - 2021-12-02 追記)
はじめに
以下の記事後、飽差についての報告も要望があった。
Raspberry Pi3で温度を測る
飽差は、植物の生育を管理するうえで、重要な指標とのこと。
飽差とは
誤解を恐れずに言えば、「空気中にどれくらい水蒸気を放出できるか」を示す指標。
単位は、g/m3 で、1立方メートル当たりの水分の重さで表す。
植物は、飽差が大き過ぎると気孔が閉じて、小さすぎると蒸散が起こりにくくなる。
このため、植物の生育のためには、換気や冷房よる除湿やミスト噴霧による加湿などの方法で、適度な飽差に管理することが必要。
一般的に、飽差は、3〜6g/m3くらいで管理することが良いと言われている。
飽差の詳細は、以下のサイトを参照のこと。
飽差の計算
飽差の計算は、上記2番めのサイト、または、以下のサイトを参照のこと。
以下のとおり、水蒸気圧、飽和水蒸気量を求め、飽差を計算することができる。
水蒸気圧(WVP) = 6.1078*10^((7.5*気温/(気温+237.3)))
飽和水蒸気量 (SWVA) = 217*WVP/(気温+273.15)
飽差(HD) = (100-相対湿度)*SWVA/100
上記のとおり、温度と湿度がわかれば、飽差は計算によって求めることができる。
温度と湿度のセンサー
今回の目的のために、新たに温度と湿度のセンサーを購入した。
1個500〜600円なので、財布には優しい。
このセンサーはDHT22が温度・湿度センサーで、既にハンダ付けされて付属のケーブルでつなぐだけのAM2302を購入した。
以下、このセンサーをAM2302と呼ぶ。
AM2302のつなぎ方
最初に買ったAM2302は、つなぎ方を間違えて壊してしまった。(-_-;)
写真を載せるので、付属ケーブルの接続方法を確認すること。
+ ⇒ pin1
out ⇒ pin7
- ⇒ pin9
温度と湿度を測る
接続完了後、以下のとおりプログラムをダウンロードしてインストールする。
まず、python3の pip を事前にインストール。既にインストールされていれば、不要。
$ sudo apt-get update $ sudo apt-get install python3-pip
プログラムをダウンロードし、ライブラリをインストールする。
(2021-12-02 追記)
以下のライブラリは開発元で非推奨とのこと、正常動作しなくなってしまった。(^_^;)
お手数ですが、今後は以下のページを参考に。
(追記終了)
$ git clone https://github.com/adafruit/Adafruit_Python_DHT.git $ cd Adafruit_Python_DHT $ sudo python3 setup.py install
温度の計測テスト。
$ cd /home/pi/Adafruit_Python_DHT/examples $ python3 ./AdafruitDHT.py 2302 4 Temp=27.1* Humidity=58.6%
上記のとおり、温度と湿度が表示されれば、正常に作している。
さっそくプログラムに付属している simpletest.py を修正し、飽差を計算する関数(calc_hd)を書き加えた hd.py スクリプトを作成する。
(以下、修正部分を赤字で示す)
#!/usr/bin/env python3 # -*- coding: utf-8 -*- # Copyright (c) 2014 Adafruit Industries # Author: Tony DiCola import Adafruit_DHT # add H.Y 2019-04-22 def calc_hd(temp,humidity): WVP=6.1078*10**(7.5*temp/(temp+237.3)) # Water Vapor Pressure SWVA=217*WVP/(temp+273.15) # Saturated Water Vapor amount return (100-humidity)*SWVA/100 # Adafruit_DHT.DHT22, or Adafruit_DHT.AM2302. sensor = Adafruit_DHT.AM2302 # Example using a Raspberry Pi with DHT sensor # connected to GPIO23. pin = 4 humidity, temperature = Adafruit_DHT.read_retry(sensor, pin) # calc humidity Defict # add H.Y 2019-04-22 hd = calc_hd(temperature, humidity) if humidity is not None and temperature is not None: print('温度= {0:0.1f} ℃, 湿度= {1:0.1f} %, 飽差(HD)= {2:0.2f} g/m3'.format(temperature, humidity, hd)) else: print('Failed to get reading. Try again!')
$ hd.py 温度= 26.9 ℃, 湿度= 57.7 %, 飽差(HD)= 10.84 g/m3
上記のように、表示されればスクリプトは正常動作している。
つぶやいてみる
twitterでつぶやくために、詳細は以下のページを参照のこと。
上記のページのbashスクリプトを修正して、以下のスクリプトを作成する。
#!/bin/bash echo "現在時刻は $(date +"%Y-%m-%d %H:%M:%S") です。「ひゃまだ家」の部屋の $(/home/pi/bin/hd.py) で、Raspberry Pi3のCPU温度は $(vcgencmd measure_temp) です。(^^♪" | /usr/local/bin/tw --pipe
上記ページのとおり、作成したスクリプトをcrontabに登録して、実際につぶやくと以下のとおりになる。
現在時刻は 2019-04-22 20:43:42 です。「ひゃまだ家」の部屋の 温度= 27.0 ℃, 湿度= 57.7 %, 飽差(HD)= 10.90 g/m3 で、Raspberry Pi3のCPU温度は temp=53.7'C です。(^^♪</ pre>
実際にtwitterでつぶやいている様子は、以下のようになる(かなり無駄なつぶやきが多い^^;)。
おわりに
不明な部分があったら、hymd3a アット gmail.comか、上記のtwitterアカウントにダイレクトメールして質問を。
それでは、また。