PROYECTO DE DOMOTICA
Dependencies: mbed Servo DHT11
main.cpp@0:8ff600c50722, 2019-05-28 (annotated)
- Committer:
- jossarr
- Date:
- Tue May 28 23:33:24 2019 +0000
- Revision:
- 0:8ff600c50722
PROYECTO DE DOMOTICA
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jossarr | 0:8ff600c50722 | 1 | /* ########################################################################### |
jossarr | 0:8ff600c50722 | 2 | ** Archivo : main.c |
jossarr | 0:8ff600c50722 | 3 | ** Proyecto : FRDM-KL46Z_Proyecto_bluetooth |
jossarr | 0:8ff600c50722 | 4 | ** Procesador : MKL46Z256VLL4 |
jossarr | 0:8ff600c50722 | 5 | ** Herramienta : Mbed |
jossarr | 0:8ff600c50722 | 6 | ** Version : Driver 01.01 |
jossarr | 0:8ff600c50722 | 7 | ** Compilador : GNU C Compiler |
jossarr | 0:8ff600c50722 | 8 | ** Fecha/Hora : 28-05-2019, 11:48, # CodeGen: 0 |
jossarr | 0:8ff600c50722 | 9 | ** Descripción : |
jossarr | 0:8ff600c50722 | 10 | ** Poryecto de domotica para control de sensores, por app en celular, registro de temperatura y humedad. |
jossarr | 0:8ff600c50722 | 11 | ** |
jossarr | 0:8ff600c50722 | 12 | ** Componentes : GPIO, Inteerupt, NFC, . |
jossarr | 0:8ff600c50722 | 13 | ** Configuraciones : IRF, DTH11 |
jossarr | 0:8ff600c50722 | 14 | ** Autores : JOSÉ CARLOS ARRATIA CASAS |
jossarr | 0:8ff600c50722 | 15 | ** ATEAM Development Group: |
jossarr | 0:8ff600c50722 | 16 | ** - Antulio Morgado Valle |
jossarr | 0:8ff600c50722 | 17 | ** |
jossarr | 0:8ff600c50722 | 18 | ** Versión : Beta |
jossarr | 0:8ff600c50722 | 19 | ** Revisión : A |
jossarr | 0:8ff600c50722 | 20 | ** Release : 0 |
jossarr | 0:8ff600c50722 | 21 | ** Bugs & Fixes : |
jossarr | 0:8ff600c50722 | 22 | ** Date : 28/05/2019 |
jossarr | 0:8ff600c50722 | 23 | ** Added support for Led_RGB |
jossarr | 0:8ff600c50722 | 24 | ** 22/09/2018 |
jossarr | 0:8ff600c50722 | 25 | ** |
jossarr | 0:8ff600c50722 | 26 | ** |
jossarr | 0:8ff600c50722 | 27 | * ###########################################################################/ |
jossarr | 0:8ff600c50722 | 28 | */ |
jossarr | 0:8ff600c50722 | 29 | #include "mbed.h" |
jossarr | 0:8ff600c50722 | 30 | #include "Serial.h" |
jossarr | 0:8ff600c50722 | 31 | #include "string.h" |
jossarr | 0:8ff600c50722 | 32 | #include "stdio.h" |
jossarr | 0:8ff600c50722 | 33 | #include"stdlib.h" |
jossarr | 0:8ff600c50722 | 34 | #include "Dht11.h" |
jossarr | 0:8ff600c50722 | 35 | #include "MFRC522.h" |
jossarr | 0:8ff600c50722 | 36 | #include "Servo.h" |
jossarr | 0:8ff600c50722 | 37 | |
jossarr | 0:8ff600c50722 | 38 | |
jossarr | 0:8ff600c50722 | 39 | #define MF_RESET D8 |
jossarr | 0:8ff600c50722 | 40 | DigitalIn sensor_g (PTB20); |
jossarr | 0:8ff600c50722 | 41 | DigitalOut rojo(LED_RED); |
jossarr | 0:8ff600c50722 | 42 | DigitalOut led_pir(PTE16); |
jossarr | 0:8ff600c50722 | 43 | DigitalOut led_1 (PTE6); |
jossarr | 0:8ff600c50722 | 44 | DigitalOut led_2(PTE3); |
jossarr | 0:8ff600c50722 | 45 | DigitalOut led_3 (PTE2); |
jossarr | 0:8ff600c50722 | 46 | Serial bluetooth(PTE20, PTE21); |
jossarr | 0:8ff600c50722 | 47 | Dht11 sensor_t(PTD4); |
jossarr | 0:8ff600c50722 | 48 | DigitalIn pir(PTA13); |
jossarr | 0:8ff600c50722 | 49 | DigitalOut buzzer (PTD3); |
jossarr | 0:8ff600c50722 | 50 | DigitalOut led_rojo (PTB19); |
jossarr | 0:8ff600c50722 | 51 | DigitalOut led_verde (PTC0); |
jossarr | 0:8ff600c50722 | 52 | MFRC522 RfChip (PTD6, PTD7, PTD5, PTC9, PTD2); |
jossarr | 0:8ff600c50722 | 53 | DigitalOut servo(PTA4); |
jossarr | 0:8ff600c50722 | 54 | |
jossarr | 0:8ff600c50722 | 55 | void open(){ |
jossarr | 0:8ff600c50722 | 56 | for(int hz=0; hz<50; hz++){ |
jossarr | 0:8ff600c50722 | 57 | servo=1; |
jossarr | 0:8ff600c50722 | 58 | wait_us(2300); |
jossarr | 0:8ff600c50722 | 59 | servo=0; |
jossarr | 0:8ff600c50722 | 60 | wait_ms(18); |
jossarr | 0:8ff600c50722 | 61 | } |
jossarr | 0:8ff600c50722 | 62 | |
jossarr | 0:8ff600c50722 | 63 | |
jossarr | 0:8ff600c50722 | 64 | led_rojo= !led_rojo; |
jossarr | 0:8ff600c50722 | 65 | led_verde= !led_verde; |
jossarr | 0:8ff600c50722 | 66 | } |
jossarr | 0:8ff600c50722 | 67 | void close (){ |
jossarr | 0:8ff600c50722 | 68 | for(int hz=0; hz<50; hz++){ |
jossarr | 0:8ff600c50722 | 69 | servo=1; |
jossarr | 0:8ff600c50722 | 70 | wait_us(700); |
jossarr | 0:8ff600c50722 | 71 | servo=0; |
jossarr | 0:8ff600c50722 | 72 | wait_ms(20); |
jossarr | 0:8ff600c50722 | 73 | } |
jossarr | 0:8ff600c50722 | 74 | led_rojo= !led_rojo; |
jossarr | 0:8ff600c50722 | 75 | led_verde = !led_verde; |
jossarr | 0:8ff600c50722 | 76 | |
jossarr | 0:8ff600c50722 | 77 | } |
jossarr | 0:8ff600c50722 | 78 | |
jossarr | 0:8ff600c50722 | 79 | /* sensor.read() |
jossarr | 0:8ff600c50722 | 80 | pc.printf("T: %f, H: %d\r\n", sensor.getFahrenheit(), sensor.getHumidity());*/ |
jossarr | 0:8ff600c50722 | 81 | /////////////////////////PROGRAMA PRINCIPAL/////////////////////////////////// |
jossarr | 0:8ff600c50722 | 82 | |
jossarr | 0:8ff600c50722 | 83 | |
jossarr | 0:8ff600c50722 | 84 | int main() |
jossarr | 0:8ff600c50722 | 85 | { |
jossarr | 0:8ff600c50722 | 86 | buzzer=1; |
jossarr | 0:8ff600c50722 | 87 | //myservo.calibrate(2.0, 0.0); |
jossarr | 0:8ff600c50722 | 88 | led_rojo=1; |
jossarr | 0:8ff600c50722 | 89 | led_verde=0; |
jossarr | 0:8ff600c50722 | 90 | RfChip.PCD_Init(); |
jossarr | 0:8ff600c50722 | 91 | |
jossarr | 0:8ff600c50722 | 92 | led_1=1;// por el rele |
jossarr | 0:8ff600c50722 | 93 | led_2=1; //por rele |
jossarr | 0:8ff600c50722 | 94 | led_3=0; //led de potencia; |
jossarr | 0:8ff600c50722 | 95 | led_pir=0; |
jossarr | 0:8ff600c50722 | 96 | bluetooth.baud(115200); |
jossarr | 0:8ff600c50722 | 97 | char selec='0'; |
jossarr | 0:8ff600c50722 | 98 | |
jossarr | 0:8ff600c50722 | 99 | |
jossarr | 0:8ff600c50722 | 100 | wait_ms(500); |
jossarr | 0:8ff600c50722 | 101 | while(true){ |
jossarr | 0:8ff600c50722 | 102 | if ( RfChip.PICC_IsNewCardPresent()) |
jossarr | 0:8ff600c50722 | 103 | { |
jossarr | 0:8ff600c50722 | 104 | buzzer=0; |
jossarr | 0:8ff600c50722 | 105 | wait_ms(10); |
jossarr | 0:8ff600c50722 | 106 | buzzer=1; |
jossarr | 0:8ff600c50722 | 107 | open(); |
jossarr | 0:8ff600c50722 | 108 | wait(2); |
jossarr | 0:8ff600c50722 | 109 | close(); |
jossarr | 0:8ff600c50722 | 110 | // continue; |
jossarr | 0:8ff600c50722 | 111 | } |
jossarr | 0:8ff600c50722 | 112 | sensor_t.read(); |
jossarr | 0:8ff600c50722 | 113 | led_pir=pir.read(); |
jossarr | 0:8ff600c50722 | 114 | |
jossarr | 0:8ff600c50722 | 115 | bluetooth.printf("%d,%d,",sensor_t.getCelsius(), sensor_t.getHumidity()); |
jossarr | 0:8ff600c50722 | 116 | rojo=1; |
jossarr | 0:8ff600c50722 | 117 | |
jossarr | 0:8ff600c50722 | 118 | wait(2); |
jossarr | 0:8ff600c50722 | 119 | rojo=0; |
jossarr | 0:8ff600c50722 | 120 | |
jossarr | 0:8ff600c50722 | 121 | |
jossarr | 0:8ff600c50722 | 122 | if(bluetooth.readable()){ |
jossarr | 0:8ff600c50722 | 123 | selec = bluetooth.getc(); |
jossarr | 0:8ff600c50722 | 124 | switch(selec){ |
jossarr | 0:8ff600c50722 | 125 | case 'a':{ |
jossarr | 0:8ff600c50722 | 126 | led_1=0; // en caso de usar rele por que se activa con un cero |
jossarr | 0:8ff600c50722 | 127 | |
jossarr | 0:8ff600c50722 | 128 | } |
jossarr | 0:8ff600c50722 | 129 | break; |
jossarr | 0:8ff600c50722 | 130 | case 'b':{led_1 =1;} // en caso de usar rele |
jossarr | 0:8ff600c50722 | 131 | |
jossarr | 0:8ff600c50722 | 132 | break; |
jossarr | 0:8ff600c50722 | 133 | case 'c':{led_2=0;} //hecho para usar rele |
jossarr | 0:8ff600c50722 | 134 | break; |
jossarr | 0:8ff600c50722 | 135 | case 'd':{led_2=1;}//hecho para usar rele |
jossarr | 0:8ff600c50722 | 136 | break; |
jossarr | 0:8ff600c50722 | 137 | case 'e':{led_3=1;}// led de potencia |
jossarr | 0:8ff600c50722 | 138 | break; |
jossarr | 0:8ff600c50722 | 139 | case 'f': {led_3=0;} |
jossarr | 0:8ff600c50722 | 140 | break; |
jossarr | 0:8ff600c50722 | 141 | } |
jossarr | 0:8ff600c50722 | 142 | |
jossarr | 0:8ff600c50722 | 143 | selec='0'; |
jossarr | 0:8ff600c50722 | 144 | } |
jossarr | 0:8ff600c50722 | 145 | if(sensor_g==0){ |
jossarr | 0:8ff600c50722 | 146 | int lec_g=0; |
jossarr | 0:8ff600c50722 | 147 | while(lec_g==0){ |
jossarr | 0:8ff600c50722 | 148 | led_1=led_2=led_pir=buzzer=0; |
jossarr | 0:8ff600c50722 | 149 | led_3=1; |
jossarr | 0:8ff600c50722 | 150 | wait_ms(1000); |
jossarr | 0:8ff600c50722 | 151 | led_1=led_2=led_pir=buzzer=1; |
jossarr | 0:8ff600c50722 | 152 | led_3=0; |
jossarr | 0:8ff600c50722 | 153 | wait_ms(1000); |
jossarr | 0:8ff600c50722 | 154 | lec_g=sensor_g.read(); |
jossarr | 0:8ff600c50722 | 155 | |
jossarr | 0:8ff600c50722 | 156 | |
jossarr | 0:8ff600c50722 | 157 | } |
jossarr | 0:8ff600c50722 | 158 | } |
jossarr | 0:8ff600c50722 | 159 | |
jossarr | 0:8ff600c50722 | 160 | |
jossarr | 0:8ff600c50722 | 161 | |
jossarr | 0:8ff600c50722 | 162 | |
jossarr | 0:8ff600c50722 | 163 | |
jossarr | 0:8ff600c50722 | 164 | |
jossarr | 0:8ff600c50722 | 165 | } |
jossarr | 0:8ff600c50722 | 166 | |
jossarr | 0:8ff600c50722 | 167 | |
jossarr | 0:8ff600c50722 | 168 | } |