الاثنين، 4 فبراير 2019

مستشعر الرطوبة- التحكم بمروحة الحمام

المكونات والإمدادات


اردوينو نانو ار 3
مصدر طاقة 12 فولت
اسلاك توصيل


حول هذا المشروع
تم تصميم هذا المشروع لإحساس مستوى الرطوبة في الحمام وتهويةه حتى يجف الأرض المبللة لتقليل تراكم الرطوبة في المساحة المغلقة.

يتم تجهيز الحمامات عادة بمراوح العادم لإزالة البخار أثناء الاستحمام ، على سبيل المثال ، ويتم إيقاف تشغيلها في اللحظة التي ننجز فيها. سوف تجف الأرض من تلقاء نفسها ولكن الرطوبة تبقى في الحمام. مع مرور الوقت ، يؤدي تراكم الرطوبة إلى نمو العفن ، والذي يمكن أن يسبب مشاكل صحية شديدة 
يمكن أن يكون ترك مروحة العادم الرئيسية خيارًا ، ولكنه مزعج إلى حد ما ويضيف إلى فاتورة الكهرباء.
في هذا المشروع ، أستفيد من مستشعر رطوبة DHT-11 ، ومروحة غلاف كبيرة للكمبيوتر (200 مم DIA ، و 12 أمبير 300 ميلي أمبير) ، و Nano Arduino ، وموصف MOSFET للقيام بهذه المهمة. في نهاية المطاف ، 






كود البرمجة


#include <SimpleDHT.h>

//Declaring digital pin no 2 as the dht11 data pin

int pinDHT11 = 2;
int DHTpower = 3;
int Fan = 13;
int LDRstate = LOW;
SimpleDHT11 dht11;

void setup() {
  pinMode(Fan, OUTPUT);
  pinMode(DHTpower, OUTPUT);
  pinMode(LDR, INPUT);
  pinMode(LDRpower, OUTPUT);
  digitalWrite(DHTpower, LOW);
  digitalWrite(LDRpower, LOW);
  digitalWrite(Fan, LOW);
  Serial.begin(9600);   
}

void loop() {
  delay(1000);
  RHcheck();                        //check Humidity Level
  delay(15000);                     //wait 15sec
  }


void RHcheck() {                    //Check Humidity Level Function
  digitalWrite(DHTpower, HIGH);     //On Humidity Sensor
  delay(5000);
  Serial.println("============ Check Humidity ===============");
  delay(1000);
  Serial.println("DHT11 readings...");
   
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;

  //This bit will tell our Arduino what to do if there is some sort of an error at getting readings from our sensor
  if ((err = dht11.read(pinDHT11, &temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    Serial.print("No reading , err="); Serial.println(err);delay(1000);
    return;
  }
  Serial.print("Readings: ");
  Serial.print((int)temperature); Serial.print(" C, ");
  Serial.print((int)humidity); Serial.println(" %");
  delay(500);
  if((int)humidity < 50){
    digitalWrite(DHTpower, LOW);
    delay(500);
    Serial.println("Fan OFF");
    delay(500);
    digitalWrite(Fan, LOW);
  }else{
    if ((int)humidity > 58){
      Serial.println("Humidity > 58%");
      digitalWrite(DHTpower, LOW);
      delay(500);
      Serial.println("Fan ON @ full speed");
      delay(500);
      digitalWrite(Fan, HIGH);
    }else{
      Serial.println("50% < Humidity < 58%");
      digitalWrite(DHTpower, LOW);
      delay(500);
      Serial.println("Fan ON @ low speed");
      delay(500);
      analogWrite(Fan, 200);
    }
  }
 }







ليست هناك تعليقات:

إرسال تعليق