// Example testing sketch for various DHT humidity/temperature sensors
// Written by ladyada, public domain
#include "DHT.h"
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
#define DHTPIN 2
#define DHTTYPE DHT22 // DHT 22 (AM2302)
int polozenie = 0;
DHT dht(DHTPIN, DHTTYPE);
byte temp[] = {
0b00100,
0b00110,
0b00100,
0b00110,
0b00100,
0b01110,
0b01110,
0b01110
};
byte kropla[] = {
0b00100,
0b00100,
0b01110,
0b01110,
0b11111,
0b11111,
0b01110,
0b00100
};
byte cels[] = {
0b11000,
0b11000,
0b00011,
0b00100,
0b00100,
0b00100,
0b00100,
0b00011
};
void setup() {
Serial.begin(960000);
Serial.println("DHTxx test");
lcd.init(); // initialize the lcd
lcd.backlight();
lcd.createChar(0, temp);
lcd.createChar(1, kropla);
lcd.createChar(2, cels);
pinMode(A1, INPUT);
int polozenie = 0;
dht.begin();
}
void loop() {
float h = dht.readHumidity();
float t = dht.readTemperature();
polozenie = analogRead(A1);
if (isnan(t) || isnan(h)) {
Serial.println("Błędny odczyt");
} else {
Serial.print("Wilgotnosc: ");
Serial.print(h);
Serial.print(" %\t");
Serial.print("Temperatura: ");
Serial.print(t);
Serial.println(" *C");
}
const float GAMMA = 0.7;
const float RL10 = 50;
int analogValue = analogRead(A0);
float voltage = analogValue / 1024. * 5;
float resistance = 2000 * voltage / (1 - voltage / 5);
float lux = pow(RL10 * 1e3 * pow(10, GAMMA) / resistance, (1 / GAMMA));
Serial.println(lux);
{
lcd.clear();
lcd.setCursor(0, 0);
lcd.write(1);
lcd.setCursor(1,0);
lcd.print(h);
lcd.setCursor(7,0);
lcd.print("%");
lcd.setCursor(0,1);
lcd.write(0);
lcd.setCursor(1,1);
lcd.print(t);
lcd.setCursor(7,1);
lcd.write(2);
delay(3000);
}
//Serial.print(polozenie);
//PIN 3 WIATRAK
//PIN 4 WĘZEŁ GRZEWCZY
//PIN 5 ŻARÓWKI
//PIN 6 LINIA KROPLUJACA
if(lux > 180)
{
digitalWrite(5,LOW);
}
if(lux < 180)
{
digitalWrite(5,HIGH);
}
if((polozenie <= 170 && polozenie >= 0) && t >= 20) // wiatrak ON, grzanie OFF
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie <= 170 && polozenie >= 0) && t < 20)
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie <= 170 && polozenie >= 0) && h <= 80)
{
digitalWrite(6, HIGH);
}
if((polozenie <= 170 && polozenie >= 0) && h > 80)
{
digitalWrite(6, LOW);
}
if((polozenie > 170 && polozenie <= 340) && t >= 18 && lux >= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 170 && polozenie <= 340) && t <= 18 && lux >= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 170 && polozenie <= 340) && t >= 12 && lux <= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 170 && polozenie <= 340) && t <= 12 && lux <= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 340 && polozenie <= 510 && t >= 14 && lux >= 180 ))
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 340 && polozenie <= 510) && t <= 14 && lux >= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 340 && polozenie <= 510) && t >= 10 && lux <= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 340 && polozenie <= 510) && t <= 10 && lux <= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 510 && polozenie <= 680) && t >= 14)
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 510 && polozenie <= 680) && t <= 14)
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 680 && polozenie <= 850) && t >= 16 && lux >= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 680 && polozenie <= 850) && t <= 16 && lux >= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 680 && polozenie <= 850) && t >= 10 && lux <= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 680 && polozenie <= 850) && t <= 10 && lux <= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 850 && polozenie <= 1024) && t >= 16 && lux >= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 850 && polozenie <= 1024) && t <= 16 && lux >= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if((polozenie > 850 && polozenie <= 1024) && t >= 10 && lux <= 180 )
{
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
}
if((polozenie > 850 && polozenie <= 1024) && t <= 10 && lux <= 180 )
{
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
}
if(lux > 180)
{
digitalWrite(5,LOW);
}
if(lux < 180)
{
digitalWrite(5,HIGH);
}
if(polozenie > 170 && polozenie < 340 && h < 70)
{
digitalWrite(6,HIGH);
digitalWrite(4,LOW);
}
if(polozenie > 170 && polozenie < 340 && h >= 70 && h < 80)
{
digitalWrite(6,LOW);
digitalWrite(4,HIGH);
}
if(polozenie > 340 && polozenie < 510 && h < 80)
{
digitalWrite(6,HIGH);
digitalWrite(4,LOW);
}
if(polozenie > 340 && polozenie < 510 && h >= 80)
{
digitalWrite(6,LOW);
digitalWrite(4,HIGH);
}
if(polozenie > 510 && polozenie < 680 && h < 70)
{
digitalWrite(6,HIGH);
digitalWrite(4,LOW);
}
if(polozenie > 510 && polozenie < 680 && h >= 70 && h < 80)
{
digitalWrite(6,LOW);
digitalWrite(4,HIGH);
}
if(polozenie > 680 && polozenie < 850 && h < 80)
{
digitalWrite(6,HIGH);
digitalWrite(4,LOW);
}
if(polozenie > 680 && polozenie < 850 && h >= 80)
{
digitalWrite(6,LOW);
digitalWrite(4,HIGH);
}
if(polozenie > 850 && polozenie < 1024 && h < 70)
{
digitalWrite(6,HIGH);
digitalWrite(4,LOW);
}
if(polozenie > 850 && polozenie < 1024 && h >= 70 && h < 80)
{
digitalWrite(6,LOW);
digitalWrite(4,HIGH);
}
}