#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <DHT.h> // Including library for dht
#include <Wire.h>
#define DHTPIN 11
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);
int e_ldr = 2, w_ldr = 3,m0=4,m1=5,l1=13,l2=7,m3=8,m4=9,rain=10,b=12;
unsigned int east,west,north,south,ea,we,no,so,du,a[20],i,j;
float h,t;
DHT dht(DHTPIN, DHT11);
void setup()
{
pinMode(m0,OUTPUT);
pinMode(m1,OUTPUT);
pinMode(m3,OUTPUT);
pinMode(m4,OUTPUT);
pinMode(e_ldr,INPUT);
pinMode(w_ldr,INPUT);
pinMode(l1,INPUT);
pinMode(l2,INPUT);
pinMode(rain,INPUT);
pinMode(b,OUTPUT);
// initialize the LCD
dht.begin();
//pinMode(6, OUTPUT); // Initialize the BUILTIN_LED pin as an output
Wire.begin();
lcd.begin(16,2);
// Turn on the blacklight and print a message.
lcd.backlight();
lcd.print("Hello, world!");
lcd.setCursor(0, 0);
lcd.print("SOLAR PANEL ");
lcd.setCursor(0, 1);
lcd.print(" tracking sytm! ");
Serial.begin(9600);
delay(2000);
//lcd.setCursor(0, 0);
//lcd.print("EAST: TURN: ");
//lcd.setCursor(0, 1);
//lcd.print("WEST: ");
}
void loop(){
int r=digitalRead(rain);
float v,voltage;
v=analogRead(A0);
voltage= v * (12.0 / 1023.0);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("V: ");
lcd.print(voltage);
Serial.print("E:");
Serial.print(digitalRead(e_ldr));
Serial.print(" W:");
Serial.println();
lcd.setCursor(5, 0);
//lcd.print(digitalRead(e_ldr));
//lcd.setCursor(5, 1);
//lcd.print(digitalRead(w_ldr));
h = dht.readHumidity();
t = dht.readTemperature();
Serial.print("Temperature: ");
Serial.print(t);
Serial.print(" degrees Celcius, Humidity: ");
Serial.println(h);
Serial.print(" " );
lcd.clear();
lcd.setCursor(0,1);
lcd.print("T: ");
lcd.print(t);
lcd.print("H: ");
lcd.print(h);
if(digitalRead(e_ldr)==0 && digitalRead(w_ldr)==1)
{
Serial.println("EAST-------------");
//lcd.setCursor(12, 0);
// lcd.print("EAST");
digitalWrite(m0,HIGH);
digitalWrite(m1,LOW);
delay(100);
digitalWrite(m0,LOW);
digitalWrite(m1,LOW);
delay(200);
}
else if(digitalRead(e_ldr)==1 && digitalRead(w_ldr)==0)
{
Serial.println("WEST-------------");
//lcd.setCursor(12, 0);
// lcd.print("WEST");
digitalWrite(m0,LOW);
digitalWrite(m1,HIGH);
delay(100);
digitalWrite(m0,LOW);
digitalWrite(m1,LOW);
delay(200);
}
else
{
digitalWrite(m0,LOW);
digitalWrite(m1,LOW);
//lcd.setCursor(12, 0);
// lcd.print("STBL");
}
if(digitalRead(l1)==0 && digitalRead(l2)==1)
{
Serial.println("EAST-------------");
//lcd.setCursor(12, 0);
//lcd.print("north");
digitalWrite(m3,HIGH);
digitalWrite(m4,LOW);
delay(100);
digitalWrite(m3,LOW);
digitalWrite(m4,LOW);
delay(200);
}
else if(digitalRead(l1)==1 && digitalRead(l2)==0)
{
Serial.println("WEST-------------");
//lcd.setCursor(12, 0);
//lcd.print("sourth");
digitalWrite(m3,LOW);
digitalWrite(m4,HIGH);
delay(100);
digitalWrite(m3,LOW);
digitalWrite(m4,LOW);
delay(200);
}
else
{
digitalWrite(m3,LOW);
digitalWrite(m4,LOW);
// lcd.setCursor(12, 0);
//lcd.print("STBL");
}
if(digitalRead(r)==0)
{
digitalWrite(b,HIGH);
lcd.setCursor(12, 0);
lcd.print("no rain");
}
if(digitalRead(r)==1)
{
digitalWrite(b,LOW);
lcd.setCursor(12, 0);
lcd.print("rain");;
}
}