今回はDHT11による温度と湿度の取得である。
精度はあまり良くないので、温度は前回のDS18B20のほうが良さそうだ。
配線
VCCを5Vに、DATAを任意のGPIOピンに、GNDはそのままGNDピンに接続する。
3.3Vでも動くようだが、精度が悪くなるらしい。
チラシの裏の電子工作 激安温湿度センサDHT11を使ってみた やはり5V付近では概ね正しい値が出ているようです。 4.3Vを割ったあたりから、急激に計測値が悪化しているのが解ります。 http://nax9800.blog.fc2.com/blog-entry-44.html
ライブラリのインストール
PythonのライブラリがGitHubで公開されているので、それを使うのが楽。
Adafruit Python DHT Sensor Library
このリポジトリをクローンしてきて、README.mdに書いてあるようにセットアップする。 具体的には以下のように。
sudo apt-get install -y git sudo apt-get update sudo apt-get install -y build-essential python-dev git clone https://github.com/adafruit/Adafruit_Python_DHT.git cd Adafruit_Python_DHT sudo python setup.py install
値の取得
まずはサンプルを試す。 exampleフォルダにある、AdafruitDHT.pyの第一引数に11、第二引数にGPIOピンの番号を渡す。 たとえば、GPIOピンが18の場合には、以下のようになる。
[pi@ras01: ~/Adafruit_Python_DHT/examples 22:50:11]master $ ./AdafruitDHT.py 11 18 Temp=28.0* Humidity=39.0%
こんな感じで、温度が28℃の湿度が39%とわかる。
ちなみに、昨日の温度センサーの場合には、以下のようになった。
$ ./getDs17b20SensorValue.sh
26937
1℃ほど低い。
DHT11は、値段が安いかわりに精度はイマイチな代物らしい。
これで温度、湿度が取得可能になった。RaspberryPiをWEBサーバ化してグラフを見られるようにするのも良いが、GoogleSpreadSheetに保存するとバックアップが不要になるので、GoogleSpreadSheetへの保存を目指したい。