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);
}