#include LiquidCrystal lcd(7, 6, 5, 4, 3, 2) ; float humi = 0; float prehum = 0; float humconst = 0; float truehum = 0; float pretruehum = 0; long pretruehumconst = 0; long valb = 0; int lux = 0; int lum = A2; int lumina = 0; int temp = A0; int sensorValue = 0; float Umiditate =A1; float sensorUmiditate = 0; int i1; int i2; float dif1; float dif2; int tempsense = 0; int temp1 = 0; int rh = 0; void setup() { Serial.begin(9600); lcd.begin(16, 2); pinMode(13, OUTPUT); pinMode(11, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(8, INPUT); } int butonpushcounter=1; int last=0; void loop() { digitalWrite(10, HIGH); delay(1000); int butonstate=digitalRead(8); digitalWrite(10, LOW); sensorUmiditate = analogRead(Umiditate); sensorValue = analogRead(temp); if (butonstate == last) { } else { if(butonstate==1) { butonpushcounter++; } } if(butonpushcounter==0) { lcd.clear(); butonpushcounter=1; } if(butonpushcounter==1) { if(citesteTempInCelsius(10)>15&&citesteTempInCelsius(10)<40) { if(citesteTempInCelsius(10)<20) { digitalWrite(13, HIGH); digitalWrite(11, LOW); digitalWrite(9, LOW); } if(citesteTempInCelsius(10)>20&&citesteTempInCelsius(10)<25) { dif1=(citesteTempInCelsius(10)-20)*100/5; dif2=(25-citesteTempInCelsius(10))*100/5; i1=dif1*255/100; i2=dif2*255/100; digitalWrite(11, i2); digitalWrite(9, LOW); digitalWrite(13, i1); Serial.println(i1); Serial.println( i2); } if(citesteTempInCelsius(10)>25&&citesteTempInCelsius(10)<30) { digitalWrite(11, HIGH); digitalWrite(9, LOW); digitalWrite(13, LOW); } if(citesteTempInCelsius(10)>30&&citesteTempInCelsius(10)<35) { dif1=(citesteTempInCelsius(10)-30)*100/5; dif2=(35-citesteTempInCelsius(10))*100/5; i1=dif1*255/100; i2=dif2*255/100; digitalWrite(11, i2); digitalWrite(9, i2); digitalWrite(13, LOW); } if(citesteTempInCelsius(10)>35) { digitalWrite(13, LOW); digitalWrite(11, LOW); digitalWrite(9, HIGH); } } else { digitalWrite(13, HIGH); digitalWrite(11, HIGH); digitalWrite(9, HIGH); } float tempC=citesteTempInCelsius(10); prehum = (valb/5); valb = analogRead(Umiditate); humconst = (0.16/0.0062); humi = prehum - humconst; pretruehumconst = 0.00216*tempC; pretruehum = 1.0546-pretruehumconst; rh= humi/pretruehum ; delay(100); lcd.setCursor(0, 0); lcd.print("Temp:"); lcd.print(tempC); lcd.print("C"); lcd.setCursor(0, 1); lcd.print("Humidity:"); lcd.print((long)rh); lcd.print("% "); Serial.println(citesteTempInCelsius(10)); } if(butonpushcounter==2) { digitalWrite(13,HIGH); digitalWrite(11,LOW); digitalWrite(9,HIGH); lux = analogRead(lum); Serial.println(lux); lumina = lux*100/1023; lcd.clear(); lcd.setCursor(0,0); lcd.print("Luminosity:"); lcd.print(lumina); lcd.print("%"); lcd.setCursor(0,1); lcd.print("----------------"); delay(1000); } last=butonstate; Serial.println (butonstate); Serial.println (last); Serial.println (butonpushcounter); if(butonpushcounter==3) { butonpushcounter=0; } delay(1000); } float citesteTempInCelsius(int count) { float temperaturaMediata = 0; float sumaTemperatura; for(int i =0; i, i<10; i++) { int reading = analogRead(0); float voltage = reading * 5.0; voltage /= 1024.0; float temperatureCelsius = (voltage - 0.5) * 100; sumaTemperatura = sumaTemperatura + temperatureCelsius; delay(1); } return sumaTemperatura / float(count); }