Friday, May 30, 2014

Arduino based Automatic Air Conditioning System

Hi everyone,today I am gonna share a project entitled  Arduino Based Automatic Air Conditioning System.This is the Arduino version of the project "Temperature Controlled Automatic Air Conditioning System" which was done for Minor Project in which I was a part of the team.As the name implies the main purpose of this project is to devise a system whose sole purpose is to condition or maintain the temperature within the predefined limits.Thus,this system proves to be useful to be used as a Air Conditioning System inside room,offices,departmental stores etc.Apart from that,it can also be used in various industrial applications such as to control the temperature in boilers,refrigerator,AC computers and Laboratories etc.
Now lets look at each element of the design turn by turn:
First lets have a glance at flowchart of the system:
Block Diagram:

Above figure  shows the block diagram of the system that we have designed.Basically, it consists of microcontroller  as a central processor of the entire control operation. The temperature sensor gives the analog output voltage based on the temperature of the room.This analog voltage is fed to the A/D converter.The A/D converter then converts the analog input voltage from the temperature sensor into equivalent binary bits.The converted binary data from the A/D converter is applied to microcontroller.The microcontroller reads binary data from A/D converter,convert it to suitable form and performs different operations based on the value of temperature read from A/D converter.
The LCD is used to display the data given by microcontroller.Microcontroller can turn on dc fan through the optocoupler if required.We have used led as prototype model for heater.If appropriate condition is met microcontroller can turn on heater(i.e. LED).
In this system,if the temperature read is in between 20-25 degree celcius,it is considered normal state.In this condition both fan and heater are off but the temperature and status is displayed in LCD.If the temperature of the room is  greater that 25 degree celcius it is considered to be a situation to turn on fan and turn off heater. If the temperature of the room is in between 25-30 degree celcius it is considered as a situation to turn on fan with speed of level one.In this level,appropriate temperature and status is displayed on the LCD. If the temperature of the room is in between 30-35 degree celcius it is considered as a situation to turn on fan with speed of level two.In this level,appropriate temperature and status is displayed on the LCD. If the temperature of the room is greater than 35 degree celcius it is considered as a situation to turn on fan with speed of level three.In this level,appropriate temperature and status is displayed on the LCD. If the temperature of the room is  less that 20 degree celcius it is considered to be a situation to turn on Heater and turn off fan. If the temperature of the room is in between 10-20 it is considered as a situation to turn one heater on with heat of level one.In this level,appropriate temperature and status is displayed on the LCD. If the temperature of the room is in between 0-10 it is considered as a situation to turn two heater  on with heat of level two.In this level,appropriate temperature and status is displayed on the LCD.

Circuit Diagram:




Source Code:
/**********************************************************
Programmer: Bikal Adhikari                                                              *
Designation: Student                                                                        *
Compiled on: Arduino IDE under Windows 8 OS                                *
Project: Arduino Based Automatic Air Conditioning System                  *
***********************************************************/


#include <LiquidCrystal.h>

 int tempr=0;
 int mtrPin=8;
 int htrPin1=9;
 int htrPin2=10;
 int analogpin=3;

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  pinMode(mtrPin,OUTPUT);
  pinMode(htrPin1,OUTPUT);
  pinMode(htrPin2,OUTPUT);
  // set up the LCD's number of columns and rows: 
  lcd.begin(16, 2);
  analogReference(EXTERNAL);
}



void loop() {
 tempr=readTempr();


 while(tempr<=20 && tempr>10) //Heater level 1 logic
  {
    templateHtr(1);
    lcd.setCursor(6,0);
    lcd.print(tempr);
    digitalWrite(mtrPin,HIGH);
    digitalWrite(htrPin1,HIGH);
    digitalWrite(htrPin2,LOW);
    
    tempr=readTempr();
     }
  while(tempr>=0 && tempr<=10) //Heater level 2 logic
  {
    templateHtr(2);
    lcd.setCursor(7,0);
    lcd.print(tempr);
    digitalWrite(mtrPin,HIGH);
    digitalWrite(htrPin1,HIGH);
    digitalWrite(htrPin2,HIGH);
    tempr=readTempr();
   }
   while(tempr>20 && tempr<=25)  //Normal state logic
    {
    digitalWrite(mtrPin,HIGH);
    templateNorm();
    lcd.setCursor(6,0);
    lcd.print(tempr);
    tempr=readTempr();
     }
  
   while(tempr>25 && tempr<=30)//fan level one logic
    {
    turnhtrOff();
    templateFan(1);
    lcd.setCursor(6,0);
    lcd.print(tempr);
    digitalWrite(mtrPin,LOW);
    delay(25);
    digitalWrite(mtrPin,HIGH);
    delay(75);
    tempr=readTempr();
    }

  while(tempr>30 && tempr<=35) //fan level two logic
  {
    turnhtrOff();
    templateFan(2);
    lcd.setCursor(6,0);
    lcd.print(tempr);
    digitalWrite(mtrPin,LOW);
    delay(50);
    digitalWrite(mtrPin,HIGH);
    delay(50);
    tempr=readTempr();
   }

   while(tempr>35)   //fan level 3 logic
  {
    turnhtrOff();
    templateFan(3);
    lcd.setCursor(6,0);
    lcd.print(tempr);
    digitalWrite(mtrPin,LOW);
    tempr=readTempr();
   }
}//loop closed


int readTempr() //reads temperature 
{
  
 tempr=analogRead(analogpin);
 tempr=tempr*0.48828125;
 return tempr;

}

void templateFan(int a)
{
  lcd.setCursor(0,0);
  lcd.print("TEMPR:");
  delay(50);
  lcd.setCursor(8,0);
  lcd.print("C");
  delay(50);
  lcd.setCursor(10,0);
  lcd.print("FAN ON");
  delay(50);
  lcd.setCursor(0,1);
  lcd.print("Speed: Level");
  lcd.print(a);
  lcd.print("   ");
  delay(50);
}


void templateNorm()
{
  lcd.setCursor(0,0);
  lcd.print("TEMPR:");
  delay(50);
  lcd.setCursor(8,0);
  lcd.print("C");
  delay(50);
  lcd.setCursor(10,0);
  lcd.print("NORM  ");
  delay(50);
  lcd.setCursor(0,1);
  lcd.print("MTR,HTR OFF     ");
  delay(50);
}


void templateHtr(int b)
{
  lcd.setCursor(0,0);
  lcd.print("TEMPR:");
  delay(50);
  if(b==2)
  {
    lcd.print(" ");
  lcd.setCursor(7,0);
  lcd.print(tempr);
  lcd.print("C ");
  }
 if(b==1)
 {
  lcd.setCursor(6,0); 
  lcd.print(tempr);
  lcd.setCursor(8,0);
  lcd.print("C ");
 }
  delay(50);
  lcd.setCursor(10,0);
  lcd.print("HTR ON");
  delay(50);
  lcd.setCursor(0,1);
  lcd.print("Heating: Level");
  lcd.print(b);
  lcd.print(" ");
  delay(50);
}


void turnhtrOff()
{
  digitalWrite(htrPin1,LOW);
  digitalWrite(htrPin2,LOW);
}




The arduino IDE's .ino source file, proteus isis files and .jpg files can be downloaded in the form of a single .rar archive by clicking here.

Be sure that you have done following:
i. Installed Arduino IDE
ii.Proteus ISIS
Also in order to run simulation in proteus:
i.Download the Arduino library for proteus.
ii. You must copy the location of hex file from Arduino IDE into the proteus model. 

8 comments:

  1. Instead of performing regular commercial HVAC service maintenance on their systems, many building managers tend to put off inspections and maintenance until something goes wrong. Being proactive about industrial air conditioning service and maintenance can save on costly repairs later on in the life of the system. Not only can regular HVAC inspection and maintenance relieve the costs of small issues which have turned into expensive problems, it can also help save a significant amount of money by ensuring that the hvac repair lewisboro system is performing as efficiently as possible.

    ReplyDelete
  2. I appreciate everything you have added to my knowledge base.Admiring the time and effort you put into your blog and detailed information you offer.Thanks. hvac repair lewisboro

    ReplyDelete
  3. Improved HVAC technology offers plenty of upgrade opportunities. But a critical assessment is the first step in deciding whether and how to proceed. ducted air conditioning installation

    ReplyDelete
  4. I have found that this site is very informative, interesting and very well written. keep up the nice high quality writing Drugstore Dupes

    ReplyDelete
  5. Improved HVAC technology offers plenty of upgrade opportunities. But a critical assessment is the first step in deciding whether and how to proceed. ac repair dubai

    ReplyDelete
  6. Maintaining your air conditioning repair mcallen tx equipment not only ensures that it performs efficiently, but it also prevent it from wearing out quickly thus increasing the chances of a longer working period. This is particular important since wearing out of all working equipment is inevitable, however regular breakdowns can be avoided by ensuring that the equipment is properly maintained. One of the equipments that require good maintenance is the heating, ventilation and air conditioning (HVAC) system. This is because proper HVAC maintenance ensure the home in which it is used in is always properly air conditioned as there are lesser chances of a breakdown.

    ReplyDelete
  7. Thanks bro kindly share me pcb diagram file

    ReplyDelete