Billedet er taget d. 15 Jun 2018.
- Detaljer
- Skrevet af Super User
- Kategori: Sample Data-Articles
- Visninger: 887
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);
}
- Detaljer
- Skrevet af Super User
- Kategori: Sample Data-Articles
- Visninger: 436
- Detaljer
- Skrevet af Super User
- Kategori: Sample Data-Articles
- Visninger: 6933
Hvordan virker det.
Hele systemet styres af 1 Arduino Nano. Der kan vandes 6 forskellige steder, men der er mulighed for flere.
Systemet er opbygget således at hver vandingessted kan styres vedrørende fugt. Det gøres ved hjælp af de 6 nummerede potintiometre.
Den sidste, mærket Gødning, styrer hvor meget gødning der blandes i vandingsvandet.
I displayet aflæser man på de 2 øverste linier, fuftigheden i jorden på det enkelte vandingssted, plus mulighed for hvor meget der er givet i liter..
3. linie er temperatur og luftfugtighed.
4. linie er anteal ml. gødning (7,14 ml.), alntal l. vand i alt (298,2 L.). og antal l. siden sidste nulstilling (16 L.).
Potentiometre mærket 1-6 styrer fugtigheden i jorden på det enkelte vandingessted.
Potentiometeret mærket Gødning regulerer hvor meget gødning der blandes i vandingsvandet, (fra 0 til 14 ml.) 7 ml. svarer til 2 promille.
Knappen til højre har 3 funktioner:
Ved et kort tryk vises hvor meget vand det enkelte vandingssted har fået.
Ved et langt tryk, over 5 sekunder, nulstilles det.
Ved at holde knappen nede under opstart nulstilles vand i alt.
Hvis man ikke skal bruge alle 6 vandingsmuligheder fjerner man stikket hvorefter der ikke vandes mere.
Denne e-mail adresse bliver beskyttet mod spambots. Du skal have JavaScript aktiveret for at vise den.