Stap 11: CODES
EXTERNE PROGRAMMA:
#include < glcd.h >
#include < SoftwareSerial.h >
SoftwareSerial xbee(2,3);
#include "fonts/SystemFont5x7.h"
int p;
int s, au;
char a, b, c;
VOID Setup
{
Serial.begin(9600);
XBee.begin(9600);
pinMode(A5,INPUT);
pinMode(12,INPUT);
pinMode(13,INPUT);
GLCD. Init();
GLCD. CursorTo(6,1);
GLCD.print("DREAMERS");
GLCD. CursorTo(3,3);
GLCD.print ("BRINGING DREAMS");
GLCD. CursorTo(6,5);
GLCD.print ("TO REALITY");
delay(2000);
GLCD. ClearScreen();
}
void loop
{
if(XBee.available())
{
een = xbee.read();
b = xbee.read();
c = xbee.read();
}
Serial.Print("a:");
Serial.Print(a);
Serial.Print("\t");
Serial.Print("b:");
Serial.Print(b);
Serial.Print("\t");
Serial.Print("c:");
Serial.Print(c);
Serial.Print("\t");
Serial.println();
int btn1 = analogRead(A5);
int btn2 = digitalRead(12);
int btn3 = digitalRead(13);
Als (btn3 == 1)
{
au = 49;
p = 48;
s = 48;
}
else if (btn3 == 0)
{
au = 48;
Als (btn1 > 1000)
{
p = 49;
}
anders
{
p = 48;
}
Als (btn2 == 1)
{
s = 49;
}
anders
{
s = 48;
}
}
XBee.write(AU);
XBee.write(p);
XBee.write(s);
Als (btn3 == 1)
{
GLCD. ClearScreen();
GLCD. CursorTo(4,0);
GLCD.print ("automatische modus");
}
else if (btn3 == 0)
{
GLCD. ClearScreen();
GLCD. CursorTo(5,0);
GLCD.print ("MANUAL MODE");
Als (btn1 > 1000)
{
GLCD. CursorTo(0,2);
GLCD.print ("pomp op");
}
anders
{
GLCD. CursorTo(0,2);
GLCD.print ("pomp af");
}
Als (btn2 == 1)
{
GLCD. CursorTo(0,4);
GLCD.print ("SPRINKLER op");
}
anders
{
GLCD. CursorTo(0,4);
GLCD.print ("SPRINKLER af");
}
}
Als (een == '1' & & au == 49)
{
GLCD. CursorTo(0,2);
GLCD.print ("pomp op");
GLCD. CursorTo(0,4);
GLCD.print ("SPRINKLER op");
}
anders als (een '0' == & & au == 49)
{
GLCD. CursorTo(0,2);
GLCD.print ("pomp af");
GLCD. CursorTo(0,4);
GLCD.print ("SPRINKLER af");
}
delay(10);
}
VELD PROGRAMMA:
#include < SoftwareSerial.h >
SoftwareSerial Rxbee(2,3);
int pomp;
int de sprink;
au char, b, c, m, lev;
VOID Setup
{
Serial.begin(9600);
Rxbee.begin(9600);
pinMode(8,OUTPUT);
pinMode(A0,INPUT);
pinMode(A1,INPUT);
pinMode(A2,INPUT);
pinMode(A3,INPUT);
pinMode(A4,INPUT);
}
void loop
{
if(Rxbee.available())
{
au = Rxbee.read();
Serial.Print(AU);
Serial.Print("\t");
b = Rxbee.read();
Serial.Print(b);
Serial.println("\t");
c = Rxbee.read();
Serial.println(c);
}
Als (au == '1')
{
int. temp = analogRead(A0);
zweven t = temp *. 48828125;
Serial.Print("t:");
Serial.println(t);
Als (lev == 48)
{
if(MOS < 1000)
{
digitalWrite(8,LOW);
pomp = 48;
Serial.Print ("auto pomp af");
}
anders
{
pomp = 49;
digitalWrite(8,HIGH);
Serial.Print ("auto pomp op");
}
anders
{
pomp = 48;
digitalWrite(8,LOW);
}
}
anders als (au == '0')
{
Als (b == '1' & & c == '1')
{
digitalWrite(8,HIGH);
Serial.println ("man beide op");
}
anders als (b == '1' & & c == '0')
{
Serial.println ("man pomp op");
digitalWrite(8,HIGH);
}
anders als (b == '0' & & c == '1')
{
Serial.println ("man sprink op");
digitalWrite(8,HIGH);
}
anders als (b == '0' & & c == '0')
{
Serial.println ("man beide uitschakelen");
digitalWrite(8,LOW);
}
anders
{
Serial.println("no");
digitalWrite(8,LOW);
}
}
int lev0 = analogRead(A1);
int lev1 = analogRead(A2);
int lev2 = analogRead(A3);
int Mnd = analogRead(A4);
Serial.println(lev0);
Serial.println(lev1);
Serial.println(LEV2);
Serial.println(MOS);
waterniveau indicator ***
Als ((lev0 < 1000) & & (lev1 < 1000) & & (lev2 < 1000))
{
Serial.println ("water niveau volledige");
Lev = 51;
}
anders als ((lev0 < 1000) & & (lev1 < 1000))
{
Serial.println ("niveau 2");
Lev = 50;
}
else if (lev0 < 1000)
{
Serial.println ("niveau 1");
Lev = 49;
}
anders
{
Serial.println ("geen water");
Lev = 48;
}
/ *** vocht waarde *** /
if(MOS > 1005)
{
Serial.Print ("Mnd geen water");
m = 48;
}
anders if(mos >990)
{
Serial.Print ("gedeeltelijk nat veld");
m = 49;
}
anders als (Mnd > 980)
{
Serial.Print ("natte veld");
m = 50;
}
anders als (Mnd > 960)
{
Serial.Print ("voldoende water");
m = 51;
}
anders
{
Serial.Print ('water overflow");
m = 52;
}
Rxbee.write(Pump);
Rxbee.write(Lev);
Rxbee.write(m);
delay(10);
}