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); }