Domo Tica
-
Upload
esteban-alejandro-arriagada-carrasco -
Category
Documents
-
view
2 -
download
1
description
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