PROYECTO DE DOMOTICA

Dependencies:   mbed Servo DHT11

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 /* ###########################################################################
00002 **    Archivo        : main.c
00003 **    Proyecto       : FRDM-KL46Z_Proyecto_bluetooth
00004 **    Procesador     : MKL46Z256VLL4
00005 **    Herramienta    : Mbed
00006 **    Version        : Driver 01.01
00007 **    Compilador     : GNU C Compiler
00008 **    Fecha/Hora     : 28-05-2019, 11:48, # CodeGen: 0
00009 **    Descripción    :
00010 **     Poryecto de domotica para control de sensores, por app en celular, registro de temperatura y  humedad.    
00011 **         
00012 **   Componentes     : GPIO, Inteerupt, NFC,  .
00013 **   Configuraciones : IRF, DTH11
00014 **   Autores         : JOSÉ CARLOS ARRATIA CASAS
00015 **         ATEAM Development Group:
00016 **          - Antulio Morgado Valle
00017 **
00018 **   Versión        : Beta
00019 **   Revisión       : A
00020 **   Release        : 0
00021 **   Bugs & Fixes   :
00022 **   Date           : 28/05/2019
00023 **                    Added support for Led_RGB
00024 **                    22/09/2018 
00025 **                    
00026 **
00027 * ###########################################################################/
00028 */
00029 #include "mbed.h"
00030 #include "Serial.h"
00031 #include "string.h"
00032 #include "stdio.h"
00033 #include"stdlib.h"
00034 #include "Dht11.h"
00035 #include "MFRC522.h"
00036 #include "Servo.h"
00037 
00038 
00039 #define MF_RESET    D8 
00040 DigitalIn sensor_g (PTB20);
00041 DigitalOut rojo(LED_RED);
00042 DigitalOut led_pir(PTE16);
00043 DigitalOut led_1 (PTE6);
00044 DigitalOut led_2(PTE3);
00045 DigitalOut led_3 (PTE2);
00046 Serial bluetooth(PTE20, PTE21);
00047 Dht11 sensor_t(PTD4);
00048 DigitalIn pir(PTA13);
00049 DigitalOut buzzer (PTD3);
00050 DigitalOut led_rojo (PTB19);
00051 DigitalOut led_verde (PTC0);
00052 MFRC522    RfChip   (PTD6, PTD7, PTD5, PTC9, PTD2);
00053 DigitalOut servo(PTA4);
00054 
00055 void open(){
00056     for(int hz=0; hz<50; hz++){
00057             servo=1;
00058             wait_us(2300);
00059             servo=0;
00060             wait_ms(18);
00061             }
00062     
00063      
00064 led_rojo= !led_rojo;
00065 led_verde= !led_verde;
00066 }
00067 void close (){
00068     for(int hz=0; hz<50; hz++){
00069             servo=1;
00070             wait_us(700);
00071             servo=0;
00072             wait_ms(20);
00073             }
00074     led_rojo= !led_rojo;
00075 led_verde = !led_verde;
00076     
00077     }
00078 
00079 /* sensor.read()
00080      pc.printf("T: %f, H: %d\r\n", sensor.getFahrenheit(), sensor.getHumidity());*/
00081 /////////////////////////PROGRAMA PRINCIPAL///////////////////////////////////
00082 
00083 
00084 int main()
00085 {
00086   buzzer=1;
00087   //myservo.calibrate(2.0, 0.0);
00088   led_rojo=1;
00089   led_verde=0;
00090   RfChip.PCD_Init();
00091   
00092   led_1=1;// por el rele
00093   led_2=1; //por rele
00094   led_3=0; //led de potencia;
00095   led_pir=0;
00096   bluetooth.baud(115200);
00097     char selec='0';
00098 
00099  
00100   wait_ms(500);
00101    while(true){
00102        if (  RfChip.PICC_IsNewCardPresent())
00103     {
00104      buzzer=0;
00105      wait_ms(10);
00106      buzzer=1;
00107      open();
00108       wait(2);
00109       close();
00110       // continue;
00111     }
00112        sensor_t.read();
00113 led_pir=pir.read();
00114  
00115   bluetooth.printf("%d,%d,",sensor_t.getCelsius(), sensor_t.getHumidity());
00116     rojo=1;
00117                     
00118             wait(2);
00119             rojo=0;
00120           
00121    
00122    if(bluetooth.readable()){
00123        selec = bluetooth.getc();
00124        switch(selec){
00125            case 'a':{
00126                led_1=0; // en caso de usar rele por que se activa con un cero
00127               
00128                }
00129                break;
00130            case 'b':{led_1 =1;} // en caso de usar rele
00131                
00132            break;
00133            case 'c':{led_2=0;} //hecho para usar rele
00134            break;
00135            case 'd':{led_2=1;}//hecho para usar rele
00136            break;
00137            case 'e':{led_3=1;}// led de potencia
00138            break;
00139            case 'f': {led_3=0;}
00140            break;
00141            }
00142               
00143        selec='0';
00144        }   
00145       if(sensor_g==0){
00146            int lec_g=0;
00147            while(lec_g==0){
00148                led_1=led_2=led_pir=buzzer=0;
00149                led_3=1;
00150                wait_ms(1000);
00151                led_1=led_2=led_pir=buzzer=1;
00152                led_3=0;
00153                wait_ms(1000);
00154                lec_g=sensor_g.read();
00155                
00156                
00157            }
00158            }
00159        
00160        
00161        
00162        
00163        
00164            
00165      }
00166        
00167      
00168 }