#include <LiquidCrystal.h> //library LCD
//koneksi LCD, lihat rangkaian
LiquidCrystal lcd(2,3,4,5,6,7);
#include <DHT.h> //library DHT22
#define DHTPIN 8 //pin data DHT22 konek ke pin 8 Arduino
#define DHTTYPE DHT22 //jenis sensor DHT22
DHT dht(DHTPIN, DHTTYPE); //setup pin dan jenis DHTT ke library
//deklarasi variabel untuk menampung pembacaan suhu & kelembaban
float humi, temp;
const int lampu = 9; // pin relay lampu
const int dif = 10; // pin difuser
const int servo=11; // pin servo
void setup()
{
pinMode(lampu, OUTPUT); // relay lampu
digitalWrite(lampu, LOW);
pinMode(dif, OUTPUT); // difuser
digitalWrite(dif, LOW);
pinMode(servo, OUTPUT); // servo
digitalWrite(servo, LOW);
//================
lcd.begin(16, 2); //type LCD 16x2
lcd.print("INCUBATOR"); //tampilan pertama
delay(2000); //tunda 2 detik
lcd.clear(); //hapus tampilan
lcd.print("Temp=");//tampilkan di baris 1
lcd.setCursor(0,1);//pindah ke baris 2
lcd.print("Humi=");//tampilkan di baris 2
}
//============================
void loop()
{
humi = dht.readHumidity(); //baca kelembaban
temp = dht.readTemperature();//baca suhu
if (isnan(humi) || isnan(temp)) { //jika tidak berhasil
return;//kembali
}
else{ //jika berhasil membaca sensor
lcd.setCursor(5,0); //set kursor di baris 1, kolom 6
lcd.print(temp);//tampilkan nilai suhu
lcd.print(" C ");//Celcius
lcd.setCursor(5,1);//set kursor di baris 2, kolom 6
lcd.print(humi);//tampilkan nilai kelembaban
lcd.print(" % "); //% RH
}
delay(1000); //tunda 1 detik
// bagian lampu dan difuser
if(temp <=37.5)
{digitalWrite(lampu, HIGH);}
if(temp >=38.5)
{digitalWrite(lampu, LOW);}
if(humi <=50)
{digitalWrite(dif, HIGH);}
if(humi >=60)
{digitalWrite(dif, LOW);}
// bagian rotor
digitalWrite(servo, HIGH);
delay(1000);
digitalWrite(servo, LOW);
delay(1000);
}