Domo Tica

22
PROYECTO DE DOMOTICA Asignatura: Aplicaciones Avanzadas de Microcontroladores Profesor: Luis Vera Valverde Alumnos: -Esteban Arriagada -Cristian Daza -Iván estrada -Nicolás Roa -Ismael Mora -Luis Rubio

description

domotica aplicacion y control

Transcript of Domo Tica

Presentacin de PowerPoint

PROYECTO DE DOMOTICAAsignatura: Aplicaciones Avanzadas de MicrocontroladoresProfesor: Luis Vera ValverdeAlumnos: -Esteban Arriagada-Cristian Daza-Ivn estrada-Nicols Roa-Ismael Mora-Luis Rubio

Introduccin

El presente trabajo tiene como objetivo principal dar a conocer el diseo de un sistema inteligente capaz de dar apoyo y confort en la cotidianidad del hogar ya que cubre necesidades de climatizacin e iluminacin.En la siguiente presentacin se explica paso a paso como lograr el control mediante WIFI y ejecucin automtica en el caso de las luces exteriores y el sistema de climatizacin que mejora la calidad de vida del usuario.

Programacin y ahorro energtico

Confort

Seguridad

componentes

El Display LCD tiene muy bajo consumo de energa.Los Display LCD son visualizadores pasivos, esto significa que no emiten luz.Sensor de temperatura

Tiene un rango de medicin de -55 a 150C, con una precisin de 0,25C a temperatura ambiente o de 0,75C entre 55 y 150C. El sensor es bastante sensible y nos permite obtener la rpidamente. Pic 16f877a

QFN44DIP40

- 5 Puertos I/O (A, B, C, D y E).- 3 Timers (0, 1 y 2).- 8 Conversiones analgico-digital (AN0,1,2,3,4,5,6 y 7) de 16 bits- 2 Mdulos CCP (Capture-Compare-PWM)Arduino nano v 3.0

Arduino NanoEl Arduino Nano es una placa pequea, completa Tarjeta programable amigable basada en elATmega328(Arduino Nano 3.0).El Nano fue diseado y est siendo producido por Gravitech.Usa un lenguaje de programacin an ms accesible y fcil para el usuario.Esquema y DiseoArduino Nano 3.0(ATmega328):

Especificaciones Tcnicas

MicrocontroladoresAtmelATmega168oATmega328Tensin de funcionamiento (nivel lgico)5 VVoltaje de entrada (recomendado)7-12 VVoltaje de entrada (lmites)6-20 VDigital pines I / O14 (de las cuales 6 proporcionan salida PWM)Botones de entrada analgica8Corriente DC por E / S Pin40 mAMemoria Flash16 KB (ATmega168) o 32 KB (ATmega328) de los cuales 2 KB utilizado por el gestor de arranqueSRAM1 KB (ATmega168) o 2 KB (ATmega328)EEPROM512 bytes (ATmega168) o 1 KB (ATmega328)Velocidad De Reloj16MHzDimensiones0,73 "x 1,70"Longitud45 mmAnchura18 mmPeso5 gCircuito general

Esquema General

Software programacin

Bsicamente es el medio por el cual cargamos nuestro cdigo o set de instrucciones hacia el arduino Nano v3.0

Programacin

int input=0;int time=0;int h;int t;int c;int d;int u;int umbral;int luminosidad;boolean lum=true;boolean tem=true;void setup(){pinMode(12, OUTPUT);void loop(){time++;if (Serial.available()>0){input = Serial.read();lum=false;tem=false;if (input=='1'){ digitalWrite(12, HIGH); }if (input=='2'){ digitalWrite(11, HIGH); }

if (input=='3'){ digitalWrite(12, LOW); }if (input=='4'){ digitalWrite(11, LOW); }if (input=='5'){lum=true;d = Serial.read();delay(15);c = Serial.read();delay(15);u = Serial.read();luminosidad=(c*100)+(d*10)+c;}if (input=='6'){ tem=true; d = Serial.read(); delay(15); c = Serial.read(); umbral=(d*10)+c;}}if (lum==true){if (analogRead(A0)>luminosidad){digitalWrite(12, HIGH); }else{ digitalWrite(12, LOW);}}

Control luces

Para establecer la comunicacin utilizamos el modulo ESP8266, el cual para establecer la comunicacin utilizamos los pines TXD, RXD, GND, CH_PD,VCC. Para establecer la comunicacin es necesario los siguientes comandos: AT+CWMODE=3", "AT+CWQAP", "AT+CWJAP=\nombre\",\clave\"", "AT+CIFSR" , "AT+CIPMUX=1", "AT+CIPSERVER=1,80#include SoftwareSerial BT1(3, 2); // RX | TX String W =" ";char w ;

void setup() { Serial.begin(115200); BT1.begin(115200); pinMode(12, OUTPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); pinMode(9, OUTPUT); }

void loop() { if (BT1.available()) // transforma de WIFI a Serial { w = BT1.read() ; Serial.print(w); W = W + w ; } if (Serial.available()) // transforma Serial a WIFI { char s = Serial.read(); BT1.print(s); }

if ( w == '\n') // si se pulsa intro { if ( W.indexOf("P12") > 0 ) // Comprobamos //si P12 esta incluido en el string

{ digitalWrite( 12, !digitalRead(12)); Serial.println("Invirtiendo pin 12");} { if ( W.indexOf("P11") > 0 ) digitalWrite( 11, !digitalRead(11)); Serial.println("Invirtiendo pin 11");} { if ( W.indexOf("P10") > 0 ) digitalWrite( 10, !digitalRead(10)); Serial.println("Invirtiendo pin 10");} { if ( W.indexOf("P9") > 0 ) digitalWrite( 9, !digitalRead(9)); Serial.println("Invirtiendo pin 9"); } W = "" ; w = ' ' ; // Limpiamos las //variables } if ( W.indexOf("P8") > 0 ) // Comprobamos si P8 //esta incluido en el string { digitalWrite( 8, !digitalRead(8)) ; Serial.println("Invirtiendo pin 8"); }}

Control Temperatura

Control Temperatura

CDIGO CSS#DEVICE ADC=16#USE DELAY(CLOCK=4000000)#FUSES XT,NOWDT#INCLUDE "LCD.C"#USE STANDARD_IO(D)#BYTE TRISB=0X86#BYTE PORTC=0X07INT X;INT Y;VOID MAIN () {CHAR I=9; // INT DISPLAY[10]={0XC0,0XF9,0XA4,0XB0,0x99,0x92,0x83,0XB8,0X80,0X98}; // NUMEROS QUE TOMARA EL DISPLAYSET_TRIS_B(0X00);FLOAT TEM,MED;LCD_INIT();LCD_PUTC("CONTROL\n");LCD_PUTC("TEMPERATURA");DELAY_MS(2000);LCD_PUTC("\f");LCD_PUTC("TEMPERATURA");DELAY_MS(1000);LCD_GOTOXY(12,2);LCD_PUTC("C");

20

CDIGO CSSWHILE(1){OUTPUT_B(DISPLAY[I]);IF(INPUT(PIN_C0)==1 && i>0 ) {DELAY_MS(30);X=X-1;OUTPUT_TOGGLE(I--);WHILE(INPUT(PIN_C0)==1);}OUTPUT_B(DISPLAY[I]);IF(INPUT(PIN_C1)==1 && i!=9 ) {DELAY_MS(30);Y=Y-1;OUTPUT_TOGGLE(I++);WHILE(INPUT(PIN_C1)==1);

}

21

CDIGO CSSLCD_GOTOXY(8,2);LCD_PUTC(" ");LCD_GOTOXY(8,2);SETUP_ADC (ADC_CLOCK_INTERNAL);SETUP_ADC_PORTS (ALL_ANALOG);SET_ADC_CHANNEL(0);DELAY_US(20);MED=READ_ADC ();SETUP_ADC (ADC_OFF);TEM=MED*(0.007629394531);PRINTF(LCD_PUTC,"%02.1F" , TEM);DELAY_MS(1000);IF(TEM>=I)OUTPUT_HIGH (PIN_C3);ELSE OUTPUT_LOW (PIN_C3);}}22