PROYECTO DE DOMOTICA
Dependencies: mbed Servo DHT11
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 }
Generated on Sun Jul 17 2022 20:09:47 by 1.7.2