profile-photo

温湿度計(高精度タイプ)

以前に何台か作った温湿度計。実はセンサに問題があった。


Arduinoを始めた頃に習作として温湿度計を作った。
ユニバーサル基板に手配線で苦労して作った。そもそも温湿度計を作るきっかけは、a店で1個10円と言う4桁7セグLEDを見つけたからなのだが。安さに惹かれてついつい買い込んでしまい。
「さて、これを何に使おう…」と、何とも順番がおかしなスタートだった。
同じ頃、"DHT11"と言う温湿度センサを知り、使いやすさに惚れて中国から沢山輸入してしまった。
何とも不純な製作理由だった。しかし、結構人気でいくつか作っては家中に設置したり、友人にあげたりしたものだ。
だが、このセンサ、実は値がおかしい。温度はまあそれなりだが、湿度はどうみても表示が低すぎるのだ。仕様上も精度5%と控えめだが、20%は違っている。
そこで今回使ったのは「工業用高精度」を謳うSi7021温湿度センサだ。湿度の精度は±3%で、I2Cで接続できる。温度も、DHT11は0℃からしか測れなかったのが、-40℃〜115℃と広範囲をカバーする。 それで外形も小さいのだ。
最初ブレッドボードでUNOに繋いでテストしてみた。ライブラリはSparkfunから"Si7201_Breakout-master"と言うのがダウンロード可能だ。
湿度の精度3%は分からないが、我が家の他の湿度計と比べても、納得いく程度の値が計測できた。

 

001

前回の物は、4桁表示のLEDに2桁ずつ温度と湿度を同時に表示していた。
湿度センサの値がおかしいこともあって、どちらが温度か湿度かが分かりにくかった。
そこで今回は贅沢にもLEDを2つ使った。上が湿度下が温度の表示だ。

002

タクトスイッチで表示を切り替えれるようにした。
4桁と2桁の表示だ。2桁表示の場合は、下の2桁に単位を表示する。
とは言え7セグなので、ちょっと苦しい。
 湿度は"rH"、温度は" C"と表示してみた。
実際小数点以下2桁の表示はあまり意味が無く、2桁で単位の付く表示の方が好評だった。

003

単位表示をしている例。
ダイナミック点灯をしているので、写真では表示は分かりにくくなってしまう。

004

基板のハンダ面
CPUにはArduino Pro/Miniの3.3V/8MHzを採用。
Si7021の電源が1.9〜3.6Vであることと、電池駆動できないかとの目論みもあった。
確かに電池でも動くが、あっという間(数日間)に電池が終わってしまうので、やはり電源はUSBが現実的との結論。

005

4桁表示の例。
やはり、殆ど写真では見えない(^_^;


参考までにハードウェア・ソフトウェアの情報を。ただしこれらは僕の覚えであり、正確に改版を反映していない可能性があります。この通り作って動かないからと、怒らないで欲しい。