« Arduino NANO-DHT11-OLED_Display を使って温度表示 | Main | PCがネットに繋がらない・・・どうしたんだ! »

02/03/2018

Arduino NANO, DHT11 を使い、湿度によりPower制御する

前回の回路を利用して、温度・湿度計測センサ「DHT11」で計測した環境湿度が30%よりも低下した場合に、リレーにより電源のSWをONにする装置のモデルを作成した。

前回に対して追加したのは、下記①~③
①パワーリレー
②パワーリレーを制御するための電源線と信号線(これはArduino NANOのD8ピンに接続した)
③パワースイッチの動作を確認するために、
  外部電源とLEDを組込んだ。
尚、私が前回使っていたブレッドボードでは、電源ラインに問題点がある事が判明したので、
OLEDディスプレイ周辺の回路は、別の新しいブレッドボードを使ってジャンパーピンの接続を簡素化した(見栄えを良くした)。

Fritzingを使って回路を描いてみた。
Dht11oled_displayrelay Img_20180203_203316PowerRelayの出力のところには、換気用ファン用の電源回路にすることになるが、ここでは論理が合っているか否かを確認するために、外部電源でLEDを点灯することとした。



拙宅では、衣類を入れるクローゼットに、換気ファンを設けたが、温度・湿度共に低い冬期でも常にファンが回るために、低い湿度の状況ではファンを停止したいと思った。それで、ファンをコントロールするための湿度はどれくらいに設定するのが良いか、調べてみると、「エコハウス・マニュアルノート・ページ
」 の中に下記の記事を見つけた。私は、室温に関わらず、ファンを制御する湿度を30%でやってみる事にした。

http://www.ecolab.or.jp/yumesekkei/note310.htmより引用
カビ発生の条件→
適度な湿度
カビは湿気を好みます。相対湿度77%~99%がカビにとって繁殖しやすい湿度といわれます。室内の湿気を40~60%に保っていても、風が通らず結露しやすい部屋の隅や押し入れ、温度の低い部屋などは湿度が高くなりやすく、カビが生えやすい場所です。


スケッチは下記のようになる。
《Sketch》

// DHT11センサーから湿度と温度を読み取り、PowerRelayを制御する

#include "DHT.h"
#include "U8glib.h"
U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0);

#define DHTPIN 2     // データピンをD2へ

// Uncomment whatever type you're using!
#define DHTTYPE DHT11   // DHT 11 
//#define DHTTYPE DHT22   // DHT 22  (AM2302)
//#define DHTTYPE DHT21   // DHT 21 (AM2301)

// DHT11の pin 1 (正面左側) NANOの +5Vへ
// DHT11の pin 2(正面左から2番目、データピン)NANOの D2 且つ 10kΩ経由で +5Vへ
// Connect pin 4 (正面右側) NANOの GNDへ

int powerSW   = 8;    // power SW

DHT dht(DHTPIN, DHTTYPE, 6);

char str[10];

void drawTest(void) {
  u8g.setFont(u8g_font_unifont);
  u8g.drawStr( 5, 20, "Measurements");  // 画面表示が 2pixほど右にシフトしているため
}

void setup() {
  Serial.begin(9600); 
  Serial.println("DHT11 Measurements");
 
  dht.begin();
  u8g.firstPage();  
  do {
    drawTest();
  } while( u8g.nextPage() );

  pinMode(powerSW, OUTPUT);
  digitalWrite(powerSW, HIGH);  // power Off
  // Wait a few seconds.
  delay(2000);
}

void loop() {
  // Reading temperature or humidity takes about 250 milliseconds!
  // Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)
  float h = dht.readHumidity();
  // Read temperature as Celsius
  float t = dht.readTemperature();
  // Read temperature as Fahrenheit
  float f = dht.readTemperature(true);
  
  // Check if any reads failed and exit early (to try again).
  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("DHTセンサからのデータ読取りに失敗しました!");
    return;
  }

  // Compute heat index
  // Must send in temp in Fahrenheit!
  float hi = dht.computeHeatIndex(f, h);

  Serial.print("Humidity: "); 
  Serial.print(h);
  Serial.print(" %\t");
  
  Serial.print("Temperature: "); 
  Serial.print(t);
  Serial.print(" *C ");
  Serial.print(f);
  Serial.print(" *F\t");
  
  Serial.print("Heat index: ");
  Serial.print(hi);
  Serial.println(" *F");

  if ( h > 30.0 ) {
     digitalWrite(powerSW, LOW);  // power On
  } else {
     digitalWrite(powerSW,HIGH);  // power Off
  }
  
  // picture loop
  u8g.firstPage();  
  do {
    u8g.setFont(u8g_font_helvB08);

    u8g.drawStr( 5, 15, "Humidity:");
    u8g.drawStr( 80, 15, dtostrf(h, 5, 2, str));
    u8g.drawStr( 112, 15, "%");
    
    u8g.drawStr( 5, 30, "Temperature:");
    u8g.drawStr( 80, 30, dtostrf(t, 5, 2, str));
    u8g.drawStr( 112, 30, "\260C");
    
    u8g.drawStr( 80, 45, dtostrf(f, 5, 2, str));
    u8g.drawStr( 112, 45, "\260F");
    
    u8g.drawStr( 5, 60, "Heat index:");
    u8g.drawStr( 80, 60, dtostrf(hi, 5, 2, str));
    u8g.drawStr( 112, 60, "\260F");
    
  } while( u8g.nextPage() );

// Wait 30 seconds between measurements.
  delay(30000);
}

この結果を用いて、実用基板を起こしてみようと思う。

« Arduino NANO-DHT11-OLED_Display を使って温度表示 | Main | PCがネットに繋がらない・・・どうしたんだ! »

PC and PC troubles」カテゴリの記事

Comments

Post a comment

Comments are moderated, and will not appear on this weblog until the author has approved them.

(Not displayed with comment.)

TrackBack


Listed below are links to weblogs that reference Arduino NANO, DHT11 を使い、湿度によりPower制御する:

« Arduino NANO-DHT11-OLED_Display を使って温度表示 | Main | PCがネットに繋がらない・・・どうしたんだ! »

June 2019
Sun Mon Tue Wed Thu Fri Sat
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30            

Recent Trackbacks

無料ブログはココログ