PROYECTO DE DOMOTICA

Dependencies:   mbed Servo DHT11

Committer:
jossarr
Date:
Tue May 28 23:33:24 2019 +0000
Revision:
0:8ff600c50722
PROYECTO DE DOMOTICA

Who changed what in which revision?

UserRevisionLine numberNew 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 }