// #include <LiquidCrystal_I2C.h>
#include <Stepper.h>
#include <Servo.h>
#include <DHT.h>
#define DHTTYPE DHT22
#define DHTPIN 2
DHT dht(DHTPIN, DHTTYPE);
#define pushButton 12
#define LDR_PIN 5
#define LAMPU 7
#define BEBAN 6
#define SERVO_PIN 3
int inputPIR = 4; // choose the input pin (for PIR sensor)
int val = 0;
int vert, temp, humi;
// LiquidCrystal_I2C lcd(0x27, 24, 4);
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
Servo myServo;
void airCond(){
temp = dht.readTemperature();
humi = dht.readHumidity();
if ( temp < 25 ){
Serial.print("Suhu : ");
Serial.print(temp);
Serial.print(" Celcius\n");
// myStepper.setSpeed(0);
myStepper.step(20);
} else if ( temp >= 26 && temp < 31 ){
Serial.print("Suhu : ");
Serial.print(temp);
Serial.print(" Celcius\n");
// myStepper.setSpeed(30);
myStepper.step(70);
} else if( temp >= 31 ){
Serial.print("Suhu : ");
Serial.print(temp);
Serial.print(" Celcius\n");
// myStepper.setSpeed(70);
myStepper.step(150);
}
}
void ldrTrigger(){
if (digitalRead(LDR_PIN) == LOW) {
myServo.write(0);
} else if(digitalRead(LDR_PIN) == HIGH){
myServo.write(180);
}
}
void roomTrigger(){
val = digitalRead(inputPIR);
int relay = digitalRead((12));
if(relay){
digitalWrite(LAMPU, HIGH);
digitalWrite(BEBAN, HIGH);
}
if(val == HIGH){
Serial.print("Tidak Ada Pergerakan\n");
digitalWrite(LAMPU, HIGH);
digitalWrite(BEBAN, HIGH);
}
if(val == LOW){
Serial.print("Tidak Ada Pergerakan\n");
digitalWrite(LAMPU, LOW);
digitalWrite(BEBAN, LOW);
}
}
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(pushButton, INPUT_PULLUP);
pinMode(LAMPU, OUTPUT);
pinMode(BEBAN, OUTPUT);
pinMode(inputPIR, INPUT);
myServo.attach(SERVO_PIN);
myStepper.setSpeed(50);
dht.begin();
}
void loop() {
// put your main code here, to run repeatedly:
airCond();
ldrTrigger();
roomTrigger();
delay(1000);
}