温湿度センサー買ってみました [ハード]
早速、どんなもんかテスト。
今までみたいにアナログで計測ではなく、
デジタルでデータが出てくるというので、
PICを使う必要もないので、RaspberryPiで実験。
回路は、簡単。パスコンもあるといいんだろうけど、パス。
プルアップだけ入れといた。
![ノーブランド品 温湿度センサーモジュール DHT11 [並行輸入品] ノーブランド品 温湿度センサーモジュール DHT11 [並行輸入品]](https://images-fe.ssl-images-amazon.com/images/I/41F9eeq9VJL._SL160_.jpg)
こっちの方が安いけど、これだとプルアップされてるのかな?

プログラムの方は、
「DHT11 raspberrypi」で、検索すれば何人か先人がいらっしゃる。
みなさん、「Raspberry Pi Blog」に書かれてるものをモディっているようです。
ちょっと気になるとこもあるけど、動いてるからいいかってわけで、
そのまま、コピらせていただいて、
2014/09/10 20:23:23 ,Humidity = 55.0 % Temperature = 28.0 *C
という結果に。
そこそこ合ってるような感じだけど、何回やってもおんなじような結果で、
温度がちょっと高め。それに、湿度の振れが今一つ。50%台しか見たことない。
本当かな。
まーでも、温度変化とかを記録するのにいいかな。
Raspberry Piだから、結果ファイルに入れるのも簡単だし。
それにしても、やっぱ、温度が小数点以下が出ないのは面白くない。
同じシリーズのDHT22の方がよさそうだけど、いきなり値段があがるね。

今までみたいにアナログで計測ではなく、
デジタルでデータが出てくるというので、
PICを使う必要もないので、RaspberryPiで実験。
回路は、簡単。パスコンもあるといいんだろうけど、パス。
プルアップだけ入れといた。
![ノーブランド品 温湿度センサーモジュール DHT11 [並行輸入品] ノーブランド品 温湿度センサーモジュール DHT11 [並行輸入品]](https://images-fe.ssl-images-amazon.com/images/I/41F9eeq9VJL._SL160_.jpg)
ノーブランド品 温湿度センサーモジュール DHT11 [並行輸入品]
- 出版社/メーカー: Phishine
- メディア: おもちゃ&ホビー
こっちの方が安いけど、これだとプルアップされてるのかな?

EasyWordMall DHT11温湿度センサーモジュール Arduino用
- 出版社/メーカー: Apple Trees E-commerce co., LT
- メディア: その他
プログラムの方は、
「DHT11 raspberrypi」で、検索すれば何人か先人がいらっしゃる。
みなさん、「Raspberry Pi Blog」に書かれてるものをモディっているようです。
ちょっと気になるとこもあるけど、動いてるからいいかってわけで、
そのまま、コピらせていただいて、
2014/09/10 20:23:23 ,Humidity = 55.0 % Temperature = 28.0 *C
という結果に。
そこそこ合ってるような感じだけど、何回やってもおんなじような結果で、
温度がちょっと高め。それに、湿度の振れが今一つ。50%台しか見たことない。
本当かな。
まーでも、温度変化とかを記録するのにいいかな。
Raspberry Piだから、結果ファイルに入れるのも簡単だし。
#include <wiringPi.h> #include <stdio.h> #include <stdlib.h> #include <stdint.h> #include <time.h> #define MAX_TIME 85 #define DHT11PIN 4 int dht11_val[5]={0,0,0,0,0}; int res; int dht11_read_val() { uint8_t lststate=HIGH; uint8_t counter=0; uint8_t j=0,i; float farenheit; for(i=0;i<5;i++) dht11_val[i]=0; pinMode(DHT11PIN,OUTPUT); digitalWrite(DHT11PIN,LOW); delay(18); digitalWrite(DHT11PIN,HIGH); delayMicroseconds(40); pinMode(DHT11PIN,INPUT); for(i=0;i<MAX_TIME;i++) { counter=0; while(digitalRead(DHT11PIN)==lststate){ counter++; delayMicroseconds(1); if(counter==255) break; } lststate=digitalRead(DHT11PIN); if(counter==255) break; // top 3 transistions are ignored if((i>=4)&&(i%2==0)){ dht11_val[j/8]<<=1; if(counter>16) dht11_val[j/8]|=1; j++; } } // verify cheksum and print the verified data if((j>=40)&&(dht11_val[4]==((dht11_val[0]+dht11_val[1]+dht11_val[2]+dht11_val[3])& 0xFF))) { time_t timer; struct tm *date; char str[256]; timer = time(NULL); date = localtime(&timer); strftime(str, 255, \"%Y/%m/%d %H:%M:%S\", date); printf(\"%s ,\", str); printf(\"Humidity = %d.%d %% Temperature = %d.%d *C\\n\",dht11_val[0],dht11_val[1],dht11_val[2],dht11_val[3]); return 2; } } int main(void) { // printf(\"Interfacing Temperature and Humidity Sensor (DHT11) With Raspberry Pi\\n\"); if(wiringPiSetupGpio()==-1) exit(1); while(1) { res = 1; res = dht11_read_val(); if(res==2) { return 0; break; } delay(3000); } return 1; }
それにしても、やっぱ、温度が小数点以下が出ないのは面白くない。
同じシリーズのDHT22の方がよさそうだけど、いきなり値段があがるね。

【ノーブランド品】DHT22/AM2302 デジタル温度と湿度センサー 接続線付き
- 出版社/メーカー: 【ノーブランド品】
- メディア: エレクトロニクス
コメント 0