// C++ code
//
#include <Servo.h>
#include <LiquidCrystal.h>
int wind_speed = 0;
int overrule = 0;
int outdoor_temperature = 0;
int indoor_temperature = 0;
int rain = 0;
int overrule_control = 0;
int i = 0;
int j = 0;
Servo servo_6;
LiquidCrystal lcd_1(0);
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(A0, INPUT);
pinMode(12, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(13, INPUT);
pinMode(6, OUTPUT);
servo_6.attach(6, 500, 2500);
lcd_1.begin(16, 2);
digitalWrite(13, LOW);
digitalWrite(12, LOW);
wind_speed = map(analogRead(A0), 0, 1023, 0.4, 2);
wind_speed = constrain(analogRead(A0), 0, 34.2);
overrule = digitalRead(12);
overrule_control = analogRead(A1);
outdoor_temperature = map(analogRead(A2), 0, 1023, 0, 1);
indoor_temperature = map(analogRead(A3), 0, 1023, 0, 1);
rain = digitalRead(13);
digitalWrite(6, HIGH);
servo_6.write(0);
}
void loop()
{
if (digitalRead(12) == HIGH) {
analogWrite(6, analogRead(A1));
if (analogRead(A1) == 0) {
servo_6.write(0);
lcd_1.print("Window closed");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
} else {
if (analogRead(A1) == 1) {
servo_6.write(180);
lcd_1.print("window open");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
}
}
} else {
if (digitalRead(12) == LOW) {
if (analogRead(A2) > analogRead(A3)) {
servo_6.write(0);
lcd_1.print("Window closed");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
} else {
if (digitalRead(13) == HIGH) {
servo_6.write(0);
lcd_1.print("Window closed");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
} else {
if (analogRead(A0) < 10) {
servo_6.write(0);
lcd_1.print("Window closed");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
} else {
if (analogRead(A3) > 40 && analogRead(A2) < analogRead(A3)) {
servo_6.write(180);
lcd_1.print("Window open");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
} else {
if (analogRead(A3) < 40 && analogRead(A2) > analogRead(A3)) {
servo_6.write(0);
lcd_1.print("Window closed");
delay(1000); // Wait for 1000 millisecond(s)
lcd_1.clear();
}
}
}
}
}
}
}
}