automatic egg incubator

19
Nicolas Novian Ruslim/18211031 Muhammad Fajrin/18211010 Andy Primawan/18211031 Gilang Ramadhan /18211045 Raosan Fikri L. /18211027

Upload: raosan-lillahi

Post on 09-Jul-2015

439 views

Category:

Documents


8 download

TRANSCRIPT

Page 1: Automatic egg incubator

Nicolas Novian Ruslim/18211031

Muhammad Fajrin/18211010

Andy Primawan/18211031

Gilang Ramadhan /18211045

Raosan Fikri L. /18211027

Page 2: Automatic egg incubator

Ayam memiliki ‘mood’ untuk mengerami telur

hanya pada waktu tertentu (broody)

Dibutuhkan inkubator saat kekurangan ayam untukmengerami telur

Inkubator yang ada dan dibuat sendiri bersifatmanual harus memantau temperatur dengantermometer.

Pendahuluan

Page 3: Automatic egg incubator

Relay

Spesifikasi Inkubator -Input

Temperatur – LM35

Keypad

Sensor PIR

Page 4: Automatic egg incubator

Spesifikasi Inkubator - Proses

Di saat temperatur di bawah suhuyang diinginkan maka lampu akanmenyala untuk menghangatkan.

Page 5: Automatic egg incubator

Spesifikasi Inkubator - Proses

Di saat temperatur di atas suhuyang diinginkan maka kipas akanmenyala untuk mendinginkan.

Page 6: Automatic egg incubator

Spesifikasi Inkubator - Proses

Di saat ada gerakan maka alarm akan menyala.

Page 7: Automatic egg incubator

Spesifikasi Inkubator - Proses

Page 8: Automatic egg incubator

Kipas

Spesifikasi Inkubator -Output

Alarm Lampu

Page 9: Automatic egg incubator

User menyalakan inkubator melalui switch

User memasukkan suhu ideal melalui keypad

Sistem akan menyesuaikan agar suhu di dalaminkubator sesuai dengan suhu yang diinput

User menekan keypad untuk mematikan alarm, mengatur mode manual/otomatis, menyalakanlampu/kipas, serta mematikan lampu dan kipas

Spesifikasi Inkubator -Interaksi

Page 10: Automatic egg incubator

Blok Desain Hardware

Page 11: Automatic egg incubator

Menyalakanswitch

inkubator

Meletakkantelur

Pindah kemode manual kipas/lampu

(jikadiperlukan)

Alarm menyala saattelur menetas

Matikanalarm

Flowchart

Page 12: Automatic egg incubator

Rangkaian

Page 13: Automatic egg incubator

Kode Program – Arduino 1 (Input)/* Sensor LM 35

Mencetak temperatur ke serial monitor */

#include <Wire.h>

#include <Keypad.h>

#include <LiquidCrystal.h>

int state = 0; // 0 = otomatis & 1 = manual

//Variable untuk keypad

const int inPin = 0;

const byte ROWS = 4; // jumlah baris = 4

const byte COLS = 3; // jumlah kolom = 3

// Mendefiniskan keypad map

char keys[ROWS][COLS] = {

{'1','2','3'},

{'4','5','6'},

{'7','8','9'},

{'*','0','#'}

};

// Menyambungkan keypad ROW0, ROW1, ROW2 dan ROW3 ke pin digital arduino.

byte rowPins[ROWS] = { 0, 1 , 7, 8 };

// Menyambungkan keypad COL0, COL1 and COL2 ke pin digital arduino.

byte colPins[COLS] = { 9, 10, 13 };

//Menciptakan 'objek keypad'

Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

// Inisialisasi library tadi dengan nomor pin// yang digunakan untuk interfaceLiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {// Kita set bit rate dari komunikasi serialnya 9600 bps

Serial.begin(9600);

// Banyaknya kolom yang dipakai 16. Dan barisnya// sebanyak 2. Itu dari sananya.lcd.begin(16, 2);

// Tuliskan pesannya ke LCDlcd.print("Suhunya saat ini :");Wire.begin(); // join i2c bus (address optional for master)

}

void loop() {int alarm = 0;char key = kpd.getKey();

//mengeset hasil pembacaan sensor LM 35int value = analogRead(inPin);

/* mengubah hasil pembacaan sensor LM 35ke dalam milivolt */

float millivolts = (value / 1024.0) * 5000;

// mengkonversi ke dalam Celciusfloat celcius = millivolts / 10;

// Pindahkan kursor ke baris 2, kolom paling kirilcd.setCursor(0, 1);

Page 14: Automatic egg incubator

Kode Program – Arduino 1 (Input)// Tuliskan ke LCD!!

lcd.print(celcius); lcd.print(" C");

if(state == 1){

lcd.print(" MODE:M");

}else if(state == 0){

lcd.print(" MODE:A");

}

int out;

Wire.beginTransmission(4); // transmit to device #4

Serial.print("state masuk loop = ");

Serial.println(state);

if(key == '*'){

state = 0;

Serial.println(state);

}else if(key == '#') {

state = 1;

Serial.println(state);

}else if(key == '9'){

alarm = 9;

Serial.println(alarm);

}

if(state == 0){

if (celcius < 30.00) {

out=1;

} else if (celcius >= 30.00 && celcius <= 32.00) {out=2;

} else if (celcius > 32.00) {out=3;

}

}else if(state == 1){if(key == '1'){

Serial.println("satu");out=4;

}else if(key == '2'){out=5;Serial.println("dua");

} else if (key == '3') {out=2;Serial.print("tiga");

}}

if(alarm == 9){Wire.write(alarm);

}else{Wire.write(out);}Wire.endTransmission();

//tunggu 1 detikdelay(1000);

}

Page 15: Automatic egg incubator

Kode Program – Arduino 2 (Output)

#include <Wire.h>

//define names for the 4 Digital pins On the Arduino7,8,9,10

//These data pins link to 4 Relay board pins IN1, IN2, IN3, IN4

#define RELAY1 8

#define RELAY2 9

int valPIR = LOW;

int statePIR = LOW; // we start, assuming no motion detected

int inputPIR = 7; // choose the input pin (for PIR sensor)

int lampstate = 0; //kondisi lampu

int fanstate = 0; //kondisi kipas

int pinALARM = 13;

int statemove = 0;

int counter = 0;

void setup(){// Initialise the Arduino data pins for OUTPUTpinMode(RELAY1, OUTPUT); pinMode(RELAY2, OUTPUT);pinMode(inputPIR, INPUT);pinMode(pinALARM, OUTPUT);Wire.begin(4); // join i2c bus with address #4Wire.onReceive(receiveEvent); // register eventSerial.begin(9600); // start serial for output

}

void loop(){ delay(100);

}

Page 16: Automatic egg incubator

Kode Program – Arduino 2 (Output)// function that executes whenever data is received from master

// this function is registered as an event, see setup()

void receiveEvent(int howMany)

{

int x = Wire.read(); // receive byte as an integer

Serial.print("X = ");

Serial.println(x);

if (x == 1 && lampstate == 0) { //lampu nyalain

digitalWrite(RELAY1,LOW);

digitalWrite(RELAY2,HIGH);

lampstate = 1;

} else if (x == 2 && lampstate == 1 || x ==2 && fanstate== 1) { //matiin lampu atau kipas

digitalWrite(RELAY1,HIGH);

lampstate = 0;

digitalWrite(RELAY2,HIGH);

fanstate = 0;

} else if (x == 3 && fanstate == 0) { //kipas nyalain

digitalWrite(RELAY1,HIGH);

digitalWrite(RELAY2,LOW);

fanstate = 1;

} else if (x == 4) { //lampu nyalain mode daruratdigitalWrite(RELAY1,LOW);digitalWrite(RELAY2,HIGH); lampstate = 1;

} else if (x == 5) { //kipas nyalain mode daruratdigitalWrite(RELAY1,HIGH);digitalWrite(RELAY2,LOW); fanstate = 1;

}

valPIR = digitalRead(inputPIR); // read input value if(valPIR == HIGH && statePIR == LOW){//kirim sinyal untuk menyalakan alarmdigitalWrite(pinALARM, HIGH);statemove = 1;statePIR = HIGH;

}Serial.print("sensor gerak = ");Serial.println(x);if (statemove = 1) {counter++;

}if (counter >= 30 || x == 9 ) {statemove = 0;counter = 0;digitalWrite(pinALARM, LOW);statePIR = LOW;

}}

Page 17: Automatic egg incubator

Pengetesan dengan membandingkan kerja inkubator

dengan hasil pembacaan LM35.

Testing

Page 18: Automatic egg incubator

Temperatur yang dibaca oleh arduino input saat

ditransfer ke arduino output nilainya aneh

Kabel diganti menjadi kabel fleksibel yang di dalamnyaberupa serabut harus dilapisi timah

Serial monitor tidak ada perubahan, masalah hardware atau masalah software?

Saat menggunakan baterai kerja inkubator menjadi aneh.

Kendala

Page 19: Automatic egg incubator

Produk