Paso 11: códigos
PROGRAMA DE CONTROL REMOTO:
#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 ("trayendo sueños");
GLCD. CursorTo(6,5);
GLCD.print ("a la realidad");
Delay(2000);
GLCD. ClearScreen();
}
void loop()
{
if(XBee.Available())
{
un = 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();
btn1 int = analogRead(A5);
btn2 int = digitalRead(12);
btn3 int = digitalRead(13);
Si (btn3 == 1)
{
au = 49;
p = 48;
s = 48;
}
else if (btn3 == 0)
{
au = 48;
Si (btn1 > 1000)
{
p = 49;
}
otra cosa
{
p = 48;
}
Si (btn2 == 1)
{
s = 49;
}
otra cosa
{
s = 48;
}
}
XBee.Write(AU);
XBee.Write(p);
XBee.Write(s);
Si (btn3 == 1)
{
GLCD. ClearScreen();
GLCD. CursorTo(4,0);
GLCD.print ("modo automático");
}
else if (btn3 == 0)
{
GLCD. ClearScreen();
GLCD. CursorTo(5,0);
GLCD.print ("modo MANUAL");
Si (btn1 > 1000)
{
GLCD. CursorTo(0,2);
GLCD.print ("bomba a");
}
otra cosa
{
GLCD. CursorTo(0,2);
GLCD.print ("bomba");
}
Si (btn2 == 1)
{
GLCD. CursorTo(0,4);
GLCD.print ("riego en");
}
otra cosa
{
GLCD. CursorTo(0,4);
GLCD.print "(regadera de apagado");
}
}
Si (a == '1' & & au == 49)
{
GLCD. CursorTo(0,2);
GLCD.print ("bomba a");
GLCD. CursorTo(0,4);
GLCD.print ("riego en");
}
else if (a == '0' & & au == 49)
{
GLCD. CursorTo(0,2);
GLCD.print ("bomba");
GLCD. CursorTo(0,4);
GLCD.print "(regadera de apagado");
}
Delay(10);
}
PROGRAMA DE CAMPO:
#include < SoftwareSerial.h >
SoftwareSerial Rxbee(2,3);
bomba int.
sprink int;
char la au, 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);
}
Si (au == '1')
{
int temp = analogRead(A0);
Float t = temp *. 48828125;
Serial.Print("t:");
Serial.println(t);
Si (lev == 48)
{
if(MOS < 1000)
{
digitalWrite(8,LOW);
bomba = 48;
Serial.Print ("bomba de auto apagado");
}
otra cosa
{
bomba = 49;
digitalWrite(8,HIGH);
Serial.Print ("bomba de auto en");
}
otra cosa
{
bomba = 48;
digitalWrite(8,LOW);
}
}
else if (au == '0')
{
Si (b == '1' & & c == '1')
{
digitalWrite(8,HIGH);
Serial.println ("hombre tanto");
}
else if (b == '1' & & c == '0')
{
Serial.println ("hombre la bomba a");
digitalWrite(8,HIGH);
}
else if (b == '0' & & c == '1')
{
Serial.println ("hombre sprink en");
digitalWrite(8,HIGH);
}
else if (b == '0' & & c == '0')
{
Serial.println ("hombre ambos apagado");
digitalWrite(8,LOW);
}
otra cosa
{
Serial.println("no");
digitalWrite(8,LOW);
}
}
int lev0 = analogRead(A1);
lev1 int = analogRead(A2);
lev2 int = analogRead(A3);
mos de int = analogRead(A4);
Serial.println(lev0);
Serial.println(lev1);
Serial.println(lev2);
Serial.println(MOS);
indicador de nivel de agua ***
Si ((lev0 < 1000) & & (lev1 < 1000) & & (lev2 < 1000))
{
Serial.println ("nivel del agua completo");
Lev = 51;
}
else if ((lev0 < 1000) & & (lev1 < 1000))
{
Serial.println ("nivel 2");
Lev = 50;
}
else if (lev0 < 1000)
{
Serial.println ("nivel 1");
Lev = 49;
}
otra cosa
{
Serial.println ("sin agua");
Lev = 48;
}
/ *** valor de humedad *** /
if(MOS > 1005)
{
Serial.Print ("mos sin agua");
m = 48;
}
otro if(mos >990)
{
Serial.Print ("campo parcialmente mojado");
m = 49;
}
else if (mos > 980)
{
Serial.Print ("campo mojado");
m = 50;
}
else if (mos > 960)
{
Serial.Print ("agua");
m = 51;
}
otra cosa
{
Serial.Print ("desbordamiento de agua");
m = 52;
}
Rxbee.Write(pump);
Rxbee.Write(Lev);
Rxbee.Write(m);
Delay(10);
}