Introduction: Digital Incubator Using Arduino

Introduction

An incubator is a device which is used to breed and preserve the bacteriological cultures or cell cultures. It supports the prime temperature, light intensity, humidity and other conditions inside the atmosphere. Incubators are very important for many experimental works in the field of cell biology, microbiology as well as molecular biology and cultures are used for the bacteria and other Eukaryota cells. They are also used as a substitute for the poultry chickens which often leads to a high rate of explosion because of the ability to control the major factor. i.e. Temperature.

The simplest incubator cased in the insulated box contains an adjustable heater, typically occurs 60 to 65o C (140 to 150o F) and some others with typically higher temperature range. The temperature often used for both bacteria as well as mammalian cell is approximately around 37oC,as these organisms grow under these conditions. For other organisms which are used in the biological experiments such as the budding yeast the optimal temperature required for their grow this 30o C.

The incubator which we have designed basically an egg incubator that monitors and control the temperature as well as lightness in the desired or optimum range required for the proper hatching of eggs as a primary task because of its importance as a guiding factor / parameter.

Basically, it is similar to the type of incubator which can be used as a substitute of poultry chicken to hatch the chicken eggs automatically. It will be helpful for the farmers to hatch the eggs automatically without the need of human intervention by keeping the egg worm, allowing the fetuses inside them to grow and hatch without the presence of mother.

Furthermore, egg incubator will not only improve the poultry production considerably but will also help in the regularity of income making, enabling the farmers to be able to get transition into possible rural entrepreneurship.

Step 1: Project Block Diagram + Description

We have used a temperature sensor (LM35) and light sensor (LDR) which sense the temperature and light intensity inside the incubator, the output of which is provided to the Arduino microcontroller which takes the decision based on the comparison between the desired set point values and the input values obtained from the sensor. The current temperature is displayed on theLCD. The decision taken by the microcontroller is either to turn on the Bulb (when temperature is low) or turn the Fan on (when temperature is high).

Basically the incubation system start by reading the current values of temperature and light intensity. This system is designed depending upon the sunshine. If there is a sunshine, it means that this is the day time. So, the fan in this condition runs at the full speed. On the other hand if there is no sunshine, then it means that the time is the night time. So, in this condition, the fan runs using the Pulse Width Modulation Technique through which the speed of the fan can be varied. In fact, this is done because therefore temperature outside is the low in the night time as compared to the daytime when the sun is shining So, it will be work efficiently.

Step 2: Flow Chart

Step 3: Circuit Diagrams

All of these circuits are implemented in Proteus Simulator.

For Power supply I have used ATX Computer Power supply.

Components and Other things Required

1. BC547 Transistor for Bulb circuit

2. LED'S

3. TIP122 Transistor for Fan circuit.

4. 16x2 Alpha Numeric LCD

5. 12 volt Relay

6. 12 volt Cooling Fans (computer power supply fans)

7. 100 watt bulb

8. LM35 and LDR

9. Resistors (10k,1k and 10k pot for lcd brightness adjustment)

10. Arduino UNO

11. Jumper wires and connectors.

12. Heat sink for tip 122.

Step 4: Project Implemantion

Step 5: Source Code for Arduino

Coding

n Using Simple IF-ELSE LOGIC

// Digital Data Acquisition – Spring 2015 (NUST UNIVERSITY)

// End Semester Project

// Incubator by M. Aatif Mobeen, M. Ali Farooq and S. M. Afaq Khan

#include

LiquidCrystal lcd (12, 11, 5, 4, 3, 2);

// initialization

int fan = 6;

int bulb = 8;

int ldrpin = 9;

float temp;

int temppin=0;

int ldrstate = 0;

void setup()

{

pinMode (fan, OUTPUT);

pinMode (bulb, OUTPUT);

pinMode (ldrpin, INPUT);

Serial.begin (9600); // Setting the Baud Rate

lcd.begin (16, 2); // Activating both Rows of LCD

lcd.print (“NUST PNEC”);

delay (5000); // 5 Seconds Delay

lcd.clear();

lcd.print (“SPRING 2015”);

delay (5000);

lcd.clear();

lcd.print (“DDAC”);

delay (5000);

lcd.clear ();

lcd.print (“by”);

delay (5000);

lcd.clear ();

lcd.print (“Cdr. Dr. Aleem”);

delay (5000);

lcd.clear ();

lcd.print (“And”);

delay (5000);

lcd.clear ();

lcd.print (“Cdr. Dr. Attaullah”);

delay (5000);

lcd.clear ();

lcd.print (“Semester Project”);

delay (5000);

lcd.clear ();

lcd.print (“INCUBATOR”);

delay (5000);

lcd.clear ();

lcd.print (“Group Members”);

delay (5000);

lcd.clear ();

lcd.print (“M. Ali Farooq”);

delay (5000);

lcd.clear ();

lcd.print (“M. Aatif Mobeen”);

delay (5000);

lcd.clear ();

lcd.print (“S. M. Afaq Khan”);

delay (5000);

lcd.clear ();

lcd.print (“Initialization”);

delay (5000);

lcd.clear ();

lcd.print (“Temperature = ”);

}

void loop ()

{

ldrstate = digitalRead (ldrpin); // Reading the LDR State

temp = analogRead (tempPin); // Reading the Temperature

temp = temp*0.48828125; // Conversion Factor

delay (1000);

Serial.printIn (temp); // Printing in Serial Monitor

Serial.printIn (“Centigrade”);

lcd.serCursor (0, 1); // Selecting the LCD Cursor to 1st Line

lcd.print (temp);

lcd.print (“Centigrade”);

if (ldrstate == HIGH)

{

if (temp>36) // Maintaining the Range 32 – 36.

{

digitalWrite (fan, HIGH);

digitalWrite (bulb, LOW);

}

else if (temp<32)

{

digitalWrite (fan, LOW);

digitalWrite (bulb, HIGH);

}

else

{

digitalWrite (fan, LOW);

digitalWrite (bulb, LOW);

}

}

else

{

if (temp>36)

{

digitalWrite (fan, HIGH);

delay (800);

digitalWrite (fan, LOW);

delay (200);

digitalWrite (bulb, LOW);

}

else if (temp<32)

{

digitalWrite (fan, LOW);

digitalWrite (bulb, HIGH);

}

else

{

digitalWrite (fan, LOW);

digitalWrite (bulb, LOW);

}

}

}

Step 6: Further Plans

After successfully implementation of this project we have further decided to add humidity sensor and vary the intensity or brightness of bulb using more advance circuit based on traic and other power electronics components.

Moreover we have also decided to implement PID logic rather then if else to make our system more efficient.

Thank you

Regards,

Muhammad Ali Farooq

MS (CONTROL)

NUST University.

Comments

author
ku5e (author)2017-01-15

I am interested in building this and adding moisture control. I have 2 questions:
1. Why did you use a light sensor instead of querying the state of the pin 8 (bulb control)? (I ask because I would like to use a heating pad or a hot plate.)
2. How would you control moisture?

author
rbusch (author)2015-06-26

im going to have to make one of these soon. going to try hatching some quail :) nice indestructible!

author
seamster (author)2015-06-26

Nicely done. Thanks for sharing this!

author
aliifrq (author)seamster2015-06-26

Thanks ..

author
aliifrq (author)seamster2015-06-26

Thankyou so much..