Proyecto del IPEA 238 "Carlos M Mampaey" Anexo Santa Rosa de Calamuchita - Córdoba - Argentina

jueves, 7 de septiembre de 2017

División Domótica

Domótica Aplicada a la VSI

Trabajo de Campo

Grupo DAERco

Grupo DAERco

Grupo DAERco

Grupo DAERco

SoftWare realizado con Gambas3 (Linux)
Funcionando con Arduino MEGA

                          Interface de Monitoreo

Grupo DAERco Interface Gambas3

y la imagen de la programación en IDE Arduino

Grupo DAERco Arduino Mega

Código Arduino IDE
int dato;
int Ent_SMov1=2;
int Sal_SMov1=3;
int sensorValue;
// seccion de ultrasonido
const int EchoPin = 5;
const int TriggerPin = 6;
const int LedPin = 13;
int cm;
void setup()
{
    // Inicializamos puerto serie a 9600 bps
        Serial.begin(9600);
        pinMode(13, OUTPUT);
        pinMode(12, OUTPUT);
        pinMode(11, OUTPUT);
        pinMode(10, OUTPUT);
        pinMode(9, OUTPUT);
        pinMode(8, OUTPUT);
        pinMode(2, INPUT);
        pinMode(3, INPUT);
        pinMode(4, INPUT);
        pinMode(5, INPUT);
        pinMode(6, INPUT);

        pinMode(TriggerPin, OUTPUT);
        pinMode(EchoPin, INPUT);
    // Enviamos "Casa Inteligente" con salto de línea al final
        Serial.println("Conectado con el Arduino. Casa Inteligente");
    //arduino manda esta cadena al PC
}
void loop()
{
     // funcionamiento del sensor ultrasonico
         int cm = ping(TriggerPin, EchoPin);
         Serial.print("Mido Distancia: ");
         Serial.println(cm);
         delay(1000);
         if(cm<120)
         {
 
          //¿Existen datos por el puerto serie?
             sensorValue=0;
             if (Serial.available())
             {
             //Guardamos el dato por la variable dato
                dato=Serial.read();
          
                  switch (dato)
                      {

                        case 48:
                              // escribo 0 en el PC y lo envio
                              //Apagamos el led 13 canal 1
                                digitalWrite(13,LOW);
                                Serial.println("Arduino: He apagado el Relay 1   (pin 13)");
                                break;
                        case 49:
                              // escribo 1 en el PC y lo envio al arduino
                              //Encendemos el led 13
                                digitalWrite(13,HIGH);
                                Serial.println("Arduino: He encendido el Relay 1 (pin 13)");
                                break;
                        case 50:
                              // escribo 2 en el PC y lo envio al arduino
                              //Encendemos el led 12 canal 2
                                digitalWrite(12,LOW);
                                Serial.println("Arduino: He apagado el Relay 2   (pin 12)");
                                break;
                         case 51:
                              // escribo 3 en el PC y lo envio al arduino
                              //Encendemos el led 12
                                digitalWrite(12,HIGH);
                                Serial.println("Arduino: He encendido el Relay 2 (pin 12)");
                                break;
                         case 52:
                              // escribo 4 en el PC y lo envio al arduino
                              //Encendemos el led 11 canal 3
                                digitalWrite(11,LOW);
                                Serial.println("Arduino: He apagado el Relay 3   (pin 11)");
                                break;
                         case 53:
                              // escribo 5 en el PC y lo envio al arduino
                              //Encendemos el led 11
                                digitalWrite(11,HIGH);
                                Serial.println("Arduino: He encendido el Relay 3 (pin 11)");
                                break;
                         case 54:
                              // escribo 6 en el PC y lo envio al arduino
                              //Encendemos el led 10 canal 4
                                digitalWrite(10,LOW);
                                Serial.println("Arduino: He apagado el Relay 4   (pin 10)");
                                break;
                         case 55:
                              // escribo 7 en el PC y lo envio al arduino
                              //Encendemos el led 10
                                digitalWrite(10,HIGH);
                                Serial.println("Arduino: He encendido el Relay 4 (pin 10)");
                                break;
                         case 56:
                              // escribo 8 en el PC y lo envio al arduino
                              //Encendemos el led 10
                                digitalWrite(9,LOW);
                                Serial.println("Arduino: He apagado el Relay 5    (pin 9)");
                                break;
                         case 57:
                              // escribo 9 en el PC y lo envio al arduino
                              //Encendemos el led 10
                                digitalWrite(9,HIGH);
                                Serial.println("Arduino: He encendido el Relay 5  (pin 9)");
                                break;
                              // sensores de entradas
                         case 58:
                              // esc :
                                sensorValue = analogRead(A0);
                                Serial.print("Arduino: valor SenTempDig ");
                                Serial.println(sensorValue);
                                break;
                         case 59:
                              // esc ;
                                sensorValue = analogRead(A1);
                                Serial.print("Arduino: valor SenHumDig ");
                                Serial.println(sensorValue);
                                break;
                         case 60:
                              // esc <
                                sensorValue = analogRead(A2);
                                Serial.print("Arduino: valor Sen PHDig ");
                                Serial.println(sensorValue);
                                break;
                         case 61:
                              // esc =
                                sensorValue = analogRead(A3);
                                Serial.print("Arduino: valor Sen GMDig ");
                                Serial.println(sensorValue);
                                break;
                         case 62:
                              // esc >
                                sensorValue = digitalRead(2);
                                Serial.print("Arduino: Mido Distancia 1 ");
                                Serial.println(sensorValue);
                                break;
                         case 63:
                              // esc ?
                                sensorValue = digitalRead(3);
                                Serial.print("Arduino: Mido Distancia 2 ");
                                Serial.println(sensorValue);
                                break;
                         case 64:
                              // esc @
                                sensorValue = digitalRead(4);
                                Serial.print("Arduino: Mido Distancia 3 ");
                                Serial.println(sensorValue);
                                break;
                         case 65:
                              // esc A
                                sensorValue = analogRead(A4);
                                Serial.print("Arduino: valor Celda Base ");
                                Serial.println(sensorValue);
                                break;
                         case 66:
                              // esc B
                                sensorValue = digitalRead(6);
                                Serial.print("Arduino: valor Sen5 ");
                                Serial.println(sensorValue);
                                break;
                         case 67:
                              // escribo C en el PC y lo envio al arduino
                              //Encendemos el led 10
                                digitalWrite(8,LOW);
                                Serial.println("Arduino: He apagado la Bomb Temp    (pin 8)");
                                break;
                         case 68:
                              // escribo D en el PC y lo envio al arduino
                              //Encendemos el led 10
                                digitalWrite(8,HIGH);
                                Serial.println("Arduino: He encendido la Bomb Temp  (pin 8)");
                                break;
                         case 69:
                              // esc E
                                sensorValue = analogRead(A5);
                                Serial.print("Arduino: valor Celda Base ");
                                Serial.println(sensorValue);
                                break;
                         case 70:
                              // esc F
                                sensorValue = analogRead(A6);
                                Serial.print("Arduino: valor Celda Asido ");
                                Serial.println(sensorValue);
                                break;
                         case 71:
                              // esc G
                                sensorValue = analogRead(A7);
                                Serial.print("Arduino: valor Celda Neutro ");
                                Serial.println(sensorValue);
                                break;
                         case 72:
                              // esc H
                                sensorValue = analogRead(A8);
                                Serial.print("Arduino: valor Celda Muestra ");
                                Serial.println(sensorValue);
                                break;
                        }                  
                   }
             }
}
// FUNCION DEL SENSOR DE DISTANCIA
int ping(int TriggerPin, int EchoPin)
{
   long duration, distanceCm;
  
   digitalWrite(TriggerPin, LOW);  //para generar un pulso limpio ponemos a LOW 4us
   delayMicroseconds(4);
   digitalWrite(TriggerPin, HIGH);  //generamos Trigger (disparo) de 10us
   delayMicroseconds(10);
   digitalWrite(TriggerPin, LOW);
  
   duration = pulseIn(EchoPin, HIGH);  //medimos el tiempo entre pulsos, en microsegundos
  
   distanceCm = duration * 10 / 292/ 2;   //convertimos a distancia, en cm
   return distanceCm;
}

No hay comentarios.:

Publicar un comentario

Glosario 2018

GLOSARIO de palabras técnicas POLIESTIRENO EXPANDIDO: El poliestireno expandido (EPS) es un material plástico espumado, derivado del polies...