ちぎっては投げるブログ

Programming, Android, RaspberryPi, Digital Devices, Kinkuma Hamster...

Raspberry Piで温度と湿度を取得する

denpa-shinbun.com

今回はDHT11による温度と湿度の取得である。

精度はあまり良くないので、温度は前回のDS18B20のほうが良さそうだ。

denpa-shinbun.com

配線

VCCを5Vに、DATAを任意のGPIOピンに、GNDはそのままGNDピンに接続する。

f:id:mczh:20160719230019j:plain

3.3Vでも動くようだが、精度が悪くなるらしい。

チラシの裏の電子工作 激安温湿度センサDHT11を使ってみた やはり5V付近では概ね正しい値が出ているようです。 4.3Vを割ったあたりから、急激に計測値が悪化しているのが解ります。 http://nax9800.blog.fc2.com/blog-entry-44.html

ライブラリのインストール

PythonのライブラリがGitHubで公開されているので、それを使うのが楽。

Adafruit Python DHT Sensor Library

github.com

このリポジトリをクローンしてきて、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への保存を目指したい。