Projects

Rancang Bangun Sistem Ventilasi Otomatis Terbuka Menggunakan Sensor Suhu DHT11 Berbasis Arduino Uno

Projects Arduino

Projects Arduino kali ini adalah berjudul Rancang Bangun Sistem Ventilasi Otomatis Terbuka Menggunakan Sensor Suhu DHT11 Berbasis Arduino Uno. Judul proyek Arduino ini masih dalam kategori Proyek Arduino Berbahasa Indonesia lengkap mulai dar skematik sampai dengan program.

Latar Belakang Masalah

Ventilasi udara adalah bagian dari rumah yang berfungsi sebagai saluran udara dimana udara dapat mengalir dengan baik dari dan ke dalam rumah. Sirkulasi udara yang baik sangat dibutuhkan pada ruang berventilasi alami untuk mencapai kenyamanan termal, karena dapat mempercepat proses evaporative cooling, pengeluaran panas dan ketersediaan udara segar dalam ruang, Dengan demikian, udara yang ada di dalam rumah akan tergantikan secara terus menerus oleh udara dari luar melalui ventilasi tersebut.

Telah diketahui bahwa kenyamanan termal yang terpenuhi dalam ruang-ruang pada suatu bangunan akan berefek positif pada peningkatan produktivitas kinerja pengguna. Menurut (Mannan, 2007; Sugini, 2004), selayaknya bangunan dapat memberi ruang beraktivitas yang nyaman  (termasuk nyaman termal) kepada manusia sebagai penggunanya agar terlindung dari iklim luar yang tidak menguntungkan, sehingga aktivitas dalam ruangan dapat berjalan dengan optimal.

oleh sebab itu, dirancang sistem monitor dan kontrol suhu udara secara otomatis. Sistem dirancang untuk memonitor dan mengontrol suhu udara . Pembacaan suhu udara tersebut menggunakan sensor DHT11. Ketika pembacaan suhu udara mencapai 28° C maka, ventilasi mekanik bergerak secara otomatis, sehingga, dapat menurunkan suhu udara mencapai set point suhu yang diinginkan. Namun, ketika pembacaan suhu udara masih di bawah batas normal, maka, ventilasi mekanik tidak bergerak, sehingga meningkatkan efisiensi dalam kontrol suhu udara tersebut. Penerapan sistem kontrol pada prototipe ruangan mampu mengontrol suhu udara agar kembali ke kondisi aman.

Alat Dan Bahan

  • 1x Arduino Pro Mini
  • 1x Sensor Suhu LM35
  • 1x Servo
  • 1x Sensor TSOP
  • Adaptor 12V

Cara Kerja Alat

 

Skema Rangkaian

 

Source Code Program

#include <IRremote.h>
#include <LiquidCrystal.h>
#include <Servo.h>
#include "DHT.h"

LiquidCrystal lcd(2,3,4,5,6,7);
Servo myServo1;


#define bintang 0xFF6897 //nilai timer
#define pager   F0C41643 //
#define menu    0xFF6897 //nilai timer
#define left    0xFF10EF
#define right   0xFF5AA5
#define ok      0xFF38C7
#define up      0xFF18E7
#define down    0xFF4AB5


#define DHTPIN 9
#define DHTTYPE DHT11

#define dhtMax 32

int RECV_PIN = 11;
int pointer;
int servoValue; 

IRrecv irrecv(RECV_PIN);
decode_results results;
DHT dht(DHTPIN, DHTTYPE);


int adcValue[2];
float vTemp[2];
float temp[2];

float tempDht1,humDht1;

void setup()
{
  lcd.begin(16,2); //inisialisasi lcd 
  Serial.begin(9600);//baudrate
  dht.begin();
  
  myServo1.attach(10); //init servo pin pwm
  myServo1.write(20);

  lcd.setCursor(0,0);
  lcd.print("Enabling IR..");
  Serial.println("Enabling IRin");
  irrecv.enableIRIn(); // Start the receiver
  lcd.setCursor(0,0);
  lcd.print("IRin enabled..");
  Serial.println("Enabled IRin");
  lcd.clear();
}

void mainMenu(){
  int pointer=0;
  lcd.clear();
  while(1){
    lcd.setCursor(0,0);lcd.print("  Menu   ");
    if (irrecv.decode(&results)) {
      Serial.println(results.value,HEX);//print data out ir to hex value
      if(results.value==left){
        pointer--;
        if(pointer<0)
          pointer=2;   
      }

      if(results.value==right){
        pointer++;
        if(pointer>2)
          pointer=0;  
      }
      switch(pointer){
        case 0:
          lcd.setCursor(0,1);lcd.print("1.Set Min ");
          break;
        case 1:
          lcd.setCursor(0,1);lcd.print("2.Set Max ");
          break;
        case 2:
          lcd.setCursor(0,1);lcd.print("3.Set Auto");
          break;  
      }
      
      if(results.value==pager){
        loop(); 
      }
      irrecv.resume();
    }
  }
}

 
void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value,HEX);
    if(results.value== bintang){
      mainMenu();
    }

    if(results.value== 0xFF18E7){
      pointer=pointer+50;
      if(pointer>=1000)
        pointer=1000;  
    }
    if(results.value== 0xFF4AB5){
      pointer=pointer-50;  
      if(pointer<=10)
        pointer=20;
    }
    irrecv.resume(); // Receive the next value  
  }

  tempDht1=dht.readTemperature();
  
  adcValue[0]=analogRead(A0);
  adcValue[1]=analogRead(A1);

  
  for(int i=0;i<=1;i++){  
    vTemp[i]   = (float)adcValue[i]/2.0479;
    temp[i]    = (float)vTemp[i];
  }

  
  
  servoValue = map(pointer, 0, 1023, 0, 180);
  

  if(tempDht1>=dhtMax){
    myServo1.write(150);
  }

  else{
    myServo1.write(servoValue);  
  }
  
  
  lcd.setCursor(0,0);lcd.print(tempDht1);lcd.write(223);lcd.print("C");
  lcd.setCursor(8,0);lcd.print(temp[1]);lcd.write(223);lcd.print("C");
  
  lcd.setCursor(0,1);lcd.print("Angle:");
  lcd.setCursor(6,1);lcd.print(servoValue);lcd.print(" ");
  delay(200);
}

 

Related Articles

Leave a Reply

Your email address will not be published.

Back to top button