GSM basado automatizado sistema de riego con lluvia-Gun (5 / 5 paso)

Paso 5: Programación del sistema

["#include

#define lcdport P0

#define adcport P1

SBIT enterkey = P2 ^ 5;

SBIT downkey = P2 ^ 6;

SBIT subir = P2 ^ 7;

SBIT rs = P2 ^ 0;

SBIT controlador = P2 ^ 1;

SBIT lcde = P2 ^ 2;

SBIT relé = P2 ^ 3;

SBIT zumbador = P2 ^ 4;

SBIT intr = P3 ^ 0;

SBIT wr = P3 ^ 1;

SBIT rd = P3 ^ 2;

unsigned char adcdata;

unsigned char referenceval;

unsigned char enterkeyflag;

unsigned char enterkeycount;

unsigned char buzzercount;

unsigned char buzzerentrycount;

unsigned char loopflag = 1;

unsigned char adcdatagreaterflag;

[] slogan1 de const unsigned char = "Riego de suelo";

[] slogan2 de const unsigned char = "Sistema de Contrl";

[] slogan3 de const unsigned char = "Valor de referencia";

[] slogan4 de const unsigned char = "Valor" del suelo;

void delay();

void lcdinit();

void clr_lcd();

void dispslogan(char*);

void senddata(unsigned char);

void send_command(unsigned char);

void next_line();

void delay1();

unsigned char xch(unsigned char);

void timer0() interrupción 1

{

buzzercount ++;

TF0 = 0;

TH0 = 00;

TL0 = 00;

if(buzzercount==100)

{

buzzercount = 1;

zumbador = 0;

ET0 = 0;

TR0 = 0;

}

}

void longdelay()

{

unsigned int i, j;

para (i = 0; i < 100; i ++)

{

para (j = 0; j < 400; j ++)

{}

}}

void adccontrol()

{

WR = 0;

Delay();

WR = 1;

Delay();

while(intr == 1); / * esperar hasta que la señal INTR hace * /

/ * transición de alta a baja que indica * /

/ * terminación de la conversión

/ * Leer el valor del voltaje del puerto * /

Delay();

Rd = 0;

Delay();

Delay();

adcdata = adcport;

RD = 1;

}

void sndconvdata (unsigned char convdata)

{

unsigned char convdata1;

convdata1 = convdata/10;

Senddata (convdata1/10 + 48);

Senddata (convdata1% 10 + 48);

Senddata (convdata % 10 + 48);

dispslogan ("%");

}

void upkeychk()

{

if(upkey==0)

{

referenceval ++;

send_command(0xc4);

sndconvdata(referenceval);

}}

void downkeychk()

{

if(downkey==0)

{

referenceval--;

send_command(0xc4);

sndconvdata(referenceval);

}}

void enterkeychk()

{

if(enterkey==0)

{

enterkeycount ++;

if(enterkeycount==1)

{

enterkeyflag = 1;

clr_lcd();

dispslogan(slogan3);

send_command(0xc4);

sndconvdata(referenceval);

}}} “]

["/ *** A PARTIR DEL PROYECTO DE CONTROLADOR DE TEMPERATURA *** /

void main()

{

Relay = 0a;

zumbador = 0;

TMOD = 0 X 01;

TH0 = 00;

TL0 = 00;

EA = 1;

ET0 = 0;

TR0 = 0;

controlador = 0;

Delay();

lcdinit();

clr_lcd();

dispslogan(slogan1);

next_line();

dispslogan(slogan2);

longdelay();

clr_lcd();"

["/ *** A PARTIR DEL BUCLE PRINCIPAL *** /

while(enterkeycount<2)

{

enterkeychk();

if(enterkeyflag)

upkeychk();

if(enterkeyflag)

downkeychk();

}

RD = 1;

WR = 1;

intr = 1;

clr_lcd();

dispslogan(slogan4);

while(1)

{

Delay();

adccontrol();

Delay();

send_command(0xc4);

sndconvdata(2*adcdata);

Si (2 * adcdata > referenceval)

{

if(!adcdatagreaterflag)

{

adcdatagreaterflag = 1;

buzzerentrycount ++;

LCDE = 1;

Relay = 0;

if(buzzerentrycount==1)

{

zumbador = 1;

ET0 = 1;

TR0 = 1;

}}}”]

["/ *** FUNCIÓN PARA INTERCAMBIAR LSBYTE Y MSBYTE DE DATOS *** /

xch char sin signo (unsigned char data1)

{

unsigned char temp, temp1;

Temp = data1;

data1 = data1 >> 4;

temp1 = data1;

data1 = temp;

data1 = data1 << 4;

data1 = data1|temp1;

Return(data1);

} “]

["/ *** INICIALIZACIÓN DE LCD *** /

void lcdinit()

{

clr_lcd(); / * FUNCIÓN CONJUNTO * /

send_command(0x28);

Delay();

send_command(0x28);

Delay();

send_command(0x28);

Delay();

send_command(0x06); MODO DE INGRESO DE

Delay()

send_command(0x0e); PANTALLA ON/OFF

() retardo

clr_lcd();

} “]

["/ * FUNCIÓN PARA MOSTRAR DATOS EN LA PANTALLA LCD *** /

void dispslogan (unsigned char * p)

{

unsigned char data1;

while(*p)

{

data1 = * p;

Senddata(data1);

p ++;

}

} “]

["/ *** FUNCIÓN PARA ENVÍO DE LCD COMANDOS *** /

void send_command (unsigned char data1)

{

newdata unsigned char;

RS = 0;

Delay();

LCDE = 1;

Delay();

lcdport = data1;

LCDE = 0;

Delay();

LCDE = 1;

NewData=xch(data1);

lcdport = newdata;

Delay();

LCDE = 0;

Delay();

RS = 1;

} “]

["/ *** FUNCIÓN PARA ESCRIBIR DATOS EN EL LCD *** /

void senddata (unsigned char data1)

{

newdata unsigned char;

RS = 1;

Delay();

LCDE = 1;

Delay();

lcdport = data1;

LCDE = 0;

Delay();

LCDE = 1;

NewData=xch(data1);

lcdport = newdata;

Delay();

LCDE = 0;

Delay();

RS = 0;

} “]

["/ *** retardo de 20 micro segundo *** /

void delay()

{

unsigned char i, j;

para (i = 0; i < 80; i ++)

{

para (j = 0; j < 120; j ++)

{}

}}”]

["/ *** COMANDO PARA LLEVAR EL CURSOR DE LA LCD EN SEGUNDA LÍNEA *** /

void next_line()

{

send_command(0xc0);

Delay();

} “]

["/ *** COMANDO LCD CLARO Y TRAER CURSOR LCD EN PRIMERA LÍNEA *** /

void clr_lcd()

{

send_command(0x01);

Delay();

send_command(0x02);

Delay();

} “]

Artículos Relacionados

Sistema de riego de la planta de WiFi ESP8266

Sistema de riego de la planta de WiFi ESP8266

En este tutorial mostramos cómo construir planta sistema de riego con ESP8266 Arduino y EasyIoT servidor (Windows o frambuesa). Con interfaz web que podemos controlar remotamente el agua bomba y suelo de la humedad. Ahora puedes ir de vacaciones y re
Cómo hacer "La raíz" (sistema de riego hidropónico automatizado)

Cómo hacer "La raíz" (sistema de riego hidropónico automatizado)

Este sistema hidropónico, compuesta principalmente de un bote de pintura de 5 galones comúnmente encontrado, está diseñado para ser un método rentable, flexible y eficiente para el cultivo de una variedad de plantas en un espacio confinado (es decir,
Sistema de riego automático con sonda capacitiva y Arduino en el barato (y serio)

Sistema de riego automático con sonda capacitiva y Arduino en el barato (y serio)

Descargo de responsabilidad: Yo no soy un ingeniero en electrónica, por lo que no puedo ofrecer ninguna garantía para el diseño (mucho menos para su implementación). Sólo sé la presentó solución trabajada para mí por lo menos unos 5-6 meses (por lo q
APIS - automatizado planta sistema de riego

APIS - automatizado planta sistema de riego

La historia:Hay bastantes instructables en el tema de la planta de riego, así que apenas inventé algo original aquí. Qué hace diferente este sistema es la cantidad de programación y Personalización que entró, lo que permite mejor control e integració
Sistema de riego automatizado que cualquiera puede hacer!

Sistema de riego automatizado que cualquiera puede hacer!

I odio riego mi jardín y no quería caer a miles en un sistema de riego permanente. Por lo tanto, se me ocurrió con esta solución usando aspersores de jardín regulares y grifería temporizadores.Uso de aspersores de césped regular y hacer custom-longit
Indicador de Sensor de lluvia sistema de riego

Indicador de Sensor de lluvia sistema de riego

Recientemente he instalado un sensor de lluvia a mi sistema de riego temporizador para desactivar las válvulas de riego cuando llueve. Estos sensores, dependiendo de su configuración y las condiciones climáticas, pueden deshabilitar los aspersores pa
Sistema de riego automatizado

Sistema de riego automatizado

Explicaremos Hacer Como un Sistema de Riego Automatizado con Arduino.Un Arduino Mega 2560Un actuador eléctrico de automóvil (Uno Que consigas en las chácharas XD).Un metro de mangueraUna llave de porta garrafónUna base de (de la ONU de material resis
INVERNADERO, RACK de servidores, acuario y otros aparatos de temperatura SUPERVISOR con SMS sistema de alarma con Arduino, itbrainpower.net 3G / GSM escudos y 1WIRE SENSOR de temperatura

INVERNADERO, RACK de servidores, acuario y otros aparatos de temperatura SUPERVISOR con SMS sistema de alarma con Arduino, itbrainpower.net 3G / GSM escudos y 1WIRE SENSOR de temperatura

Sobre el proyectoConstruir usted mismo su propio control sistema con umbrales de temperatura máxima y mínimade la temperatura, mantener vivo masajes y paginación de SMS (oldies pero goldies como) y sistema de armado/desarmado remoto. Puede supervisar
Sistema de riego inteligente con arduino...

Sistema de riego inteligente con arduino...

En este instructable quería compartir mi sistema de riego automático usando arduino, sensor de humedad del suelo y una válvula de simple acuario conectado a un servo... Sensor de humedad toma lecturas constantes de la humedad del suelo y al Arduino q
Jardín elevado con sistema de riego de seep

Jardín elevado con sistema de riego de seep

hice este 16' x 4' levantó jardín de madera, tubería de desagüe de perferated, paño sleave y dos piezas cortas de tubo de PVC. El sistema de riego está diseñado para filtrar agua que es introducitdo que drenan tuberías por la manguera o regadera. Igu
Sistema de riego controlado por frambuesa Pi

Sistema de riego controlado por frambuesa Pi

Cada primavera mi esposa obtiene realmente ambiciosa y plantas de un huerto grande. Como el verano se alarga, ambición vueltas a la pereza y por desgracia de que muchas de las plantas mueren una muerte lenta y fulminante negligencia debido a la falta
Sensor de humedad multi-DIY + sistema de riego

Sensor de humedad multi-DIY + sistema de riego

A menudo una gran cantidad de plantas de agua se convierte en una tarea tediosa y tener diferentes tipo de plantas requiere más atención porque cada tipo consume diferente cantidad de agua. Así que mis amigos y yo hemos decidido implementar un sistem
Automático Solar Powered invernadero sistema de riego

Automático Solar Powered invernadero sistema de riego

Solía molestarme que dividiría mi tomates debido a la falta de agua mientras estaba en el trabajo, así que decidí construir un sistema de riego automático para que esto no podría suceder! Yo quería que fuese solar alimentado por lo que no tengo que c
Rápido y fácil, PVC jardín sistema de riego (por debajo de $70)

Rápido y fácil, PVC jardín sistema de riego (por debajo de $70)

Jardinería es una de mis actividades principales del verano y durante los últimos años, mi jardín (como suelen hacer) ha crecido. Con ese crecimiento, también ha crecido la cantidad de tiempo y agua que toma de mi jardín.Durante años, he querido tene