自宅では、エアコンリモート操作とセットでDS18B20を使ってWebから室温を見られるようにしていますが、ちょっと前に買った湿度計によって自宅の湿度がおかしいということが判明したため、湿度もWebで見たくなりました。
そこで、温湿度センサーを調べて、安かったDHT11と言うセンサーでまずはお試しすることにしました。こちら1個300円。各ブログとかdx.comのレビューを見ると、精度はイマイチとのこと。まあ、コツを掴んだら上位型番のDHT22とかに変えていくと良さそうです。
で、物自体は先週アキバの秋月電子で購入したのですが、どうも5KΩの抵抗とパスコン?として0.1uFの積層セラミックコンデンサが必要とのことなので、昨日の夕方散歩に出たついでにアキバまで足を伸ばして買い足しに行ってきました。抵抗は5KΩぴったりがなかったので4.7KΩで妥協。5.1KΩのほうが良かったかな。別のサイトで4.7KΩでやってるところがアッたからみたいな感じで選んだ記憶が(適当)
- 4.7KΩの抵抗: 5円
- 0.1uFの積層セラミックコンデンサ: 20円
電車賃のほうが高かった。
話は逸れますが、昨日は午前中チャリで長津田を見て回り、鍼灸に通ったあと宮前平でハムスターの砂を買い、等々力渓谷を散歩してからアキバ周りと、なぜか充実した土曜日でした。後半は思いつきで回っていたため、ハムスターの砂を買うタイミングを間違えた感。
さて、写真。まずは購入時のセンサー。
で、ブレッドボードで試した時の写真を撮り忘れて基板に実装してしまった後の様子。
裏面はこんな感じで良かったんでしょうか。相変わらず適当な感じである。
プログラムは以下のページを参考に、Cのソースをもらってコンパイルして取得しました。
Raspberry Pi Blog: Interfacing Temperature and Humidity Sensor (DHT11) With Raspberry Pi
温湿度センサDHT11をRaspberry Piに繋いでシリアル入力を学ぶ | 徒労日記
接続もだいたい参考サイト通りですが、電源は5Vに接続するとよさげです。
情報は取りこぼしが多く、Invalid data!!とか言われまくるので、ソースは適宜改造してやると良いようです。わたしは実行時に1回だけデータを返すようにして、形式はJSONにしてとりあえず一式よこせ的な雰囲気にしました。後の加工はWeb側でやれば良いので。
$ sudo ./sensor {'humidity':'60.0','temperature':'25.0','farenheit':'77.0'}
DS18B20を外してこちらでしばらく観察してみましょうかね〜。