drivhus

Billedet er taget d. 15 Jun 2018.

 

 

Kode til styring af vanding. 


 

 

 #include <EEPROM.h>
//#include <Wire.h> // Comes with Arduino IDE
#include <LiquidCrystal_I2C.h>
#include <dht.h>


dht DHT;

#define DHT11_PIN 31


LiquidCrystal_I2C lcd(0x3F, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);// 0x3F 0x27
int i = 0;
int antal = (5);
int hentfugt[6];
  int fugt [5] = {378, 378, 378, 378, 378};
int outputpind [7] = {13, 11, 10, 9, 8};
int indfugt [6] = {0, 1, 2, 3, 6, 7};
int antalv;
int val;
int vandstand;
int flag = 0;
int test = 0;


void setup() {
  Serial.begin(9600);

  lcd.begin(20, 4);//Antal linier og bogstaver

  Serial.print("Ok");
  pinMode (2, INPUT);
  pinMode (33, INPUT);
  pinMode(32, OUTPUT);
  pinMode (12, OUTPUT);
  pinMode (13, OUTPUT);
  pinMode (11, OUTPUT);
  pinMode (10, OUTPUT);
  pinMode (9, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (7, OUTPUT);
  pinMode (6, INPUT);
  pinMode (4, OUTPUT);
  pinMode (3, OUTPUT);
  for (int i = 3; i <= 13; i = i + 1) {
    digitalWrite(i, HIGH);

  }
}


void loop() {





  int temp;
  int luftfugt;

  int chk = DHT.read11(DHT11_PIN);
  Serial.print("Temperature = ");
  Serial.println(DHT.temperature - 1);
  temp = (DHT.temperature - 1);
  Serial.print("Humidity = ");
  Serial.println(DHT.humidity + 5);
  luftfugt = (DHT.humidity + 5);
  delay(1000);
  digitalWrite(12, LOW);//Tænd sensor
  lcd.clear();
  lcd.print("Taend sensor");
  delay (2000); //vent på stabilitet

  Serial.print("nu");
  for (int i = 0; i < antal; i = i + 1)   {
    hentfugt[i] = analogRead(indfugt[i]); //Hent sensordata
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Fugt ");
    lcd.print(hentfugt[i]);
    lcd.print("    ");
    lcd.print(fugt[i]);
    lcd.setCursor(0, 1);
    lcd.print("plante nr. ");
    lcd.print(i + 1);

    lcd.setCursor(0, 2);
    lcd.print("Temperatur    ");
    lcd.print(temp);
    lcd.setCursor(0, 3);
    lcd.print("Luftfugtighed ");
    lcd.print(luftfugt);

    delay(2000);
  }


  //lcd.clear();
  digitalWrite(12, HIGH); //Sluk sensor
  delay(1000);

  for (int i = 0; i < antal; i = i + 1)
    if (hentfugt[i] > fugt[i]) {
      digitalWrite(4, LOW); // Start motor
      digitalWrite(outputpind[i], LOW);//Begynd vandng
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Start vanding.");
      lcd.print(i + 1);
      lcd.setCursor(0, 1);

      lcd.print(hentfugt[i]);
      lcd.print("     ");
      lcd.print(fugt[i]);

      lcd.setCursor(0, 2);
      lcd.print("Temperatur    ");
      lcd.print(temp);
      lcd.setCursor(0, 3);
      lcd.print("Luftfugtighed ");
      lcd.print(luftfugt);

      delay(60000);
      digitalWrite(4, HIGH); //Stop motor
      digitalWrite(outputpind[i], HIGH);//Stop Vanding

      lcd.clear();
      lcd.print("Vanding slut ");
      antalv = EEPROM.read(i); // hent værdien i eeprom
      antalv = antalv + 1; // læg en til
      EEPROM.write(i, antalv); // skriv den nye værdi
      delay(500);
      lcd.clear();
    }
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.println("Faerdig venter.");
  lcd.setCursor(5, 1);
  lcd.print("2 min.");
  delay (3000);
  lcd.clear();

  lcd.setCursor(0, 0);
  lcd.print(EEPROM.read(0));
  lcd.print(" ");
  lcd.print(EEPROM.read(1));
   lcd.print(" ");
  lcd.print(EEPROM.read(2));
   lcd.print(" ");
  lcd.print(EEPROM.read(3));
  lcd.print(" ");
 
  lcd.print(EEPROM.read(4));

  // lcd.print(EEPROM.read (10));
  // lcd.print(" L.");
 
 
 
  //lcd.clear();
  lcd.setCursor(0,1);
  lcd.print(hentfugt[0]);
  lcd.print(" ");
  lcd.print(hentfugt[1]);
  lcd.print(" ");
  lcd.print(hentfugt[2]);
  lcd.print(" ");
  lcd.print(hentfugt[3]);
  lcd.print(" ");
  lcd.print(hentfugt[4]);
  lcd.print(" ");
    lcd.setCursor(0, 2);
  lcd.print("Temperatur    ");
  lcd.print(temp);
    lcd.setCursor(0, 3);
  lcd.print("Luftfugtighed ");
  lcd.print(luftfugt);

  delay(120000);


}