miércoles, 17 de febrero de 2016

Arduino Nano - Relay y sensor de movimiento PIR


Estimados acabó de terminar de jugar con mi placa Nano Arduino utilizando un sensor de movimiento (PIR) y un modulo Relay , me ha agradado bastante lo fácil de programar y conectar estos  dispositivo con los casi nulos conocimientos de electrónica que poseo , y que quise compartir lo aprendido.


Lista de materiales a utilizar.


  • 1 Placa Arduino Nano
  • 1 Sensor PIR
  • 1 Modulo Relay
  • 1 Led
  • 10 cables macho-macho y macho hembra.
  • 1 Protoboard.
Aca explico la ilustración de cómo conecté cada componente desde la Arduino a los diferentes dispositivos.

Arduino -PIR
  • GND - GND
  • D8 - OUT
  • 5V - VCC
Arduino - Relay
  • GND - GND
  • D2 - OUT
  • 5V - VCC
Arduino - Led
  • GND - Catodo Led
  • D3 - Anodo Led

Aquí comparto el código fuente para ser cargado en la placa arduino, Esto además activar el led y el modulo relay, también es capaz de enviar atraves del puerto serial  mensajes cuando se activan o apagan los dispositivos, esto podría estar conectado a una placa ethernet o una placa inalámbrica y enviar la información a algun servidor que que este recolectando los datos.


const int LEDPin= 3;
const int PIRPin= 8;
const int RELPin= 2;

int pirState = LOW;           // de inicio no hay movimiento
int val = 0;                  // estado del pin
 
void setup() 
{
  pinMode(RELPin, OUTPUT); 
  pinMode(LEDPin, OUTPUT);
  pinMode(PIRPin, INPUT);
  Serial.begin(9600);
}
 
void loop()
{
  val = digitalRead(PIRPin);
  if (val == HIGH)   //si está activado
  { 
    digitalWrite(LEDPin, HIGH);  //LED ON
    digitalWrite(RELPin, HIGH);  //RELAY ON
    delay(9000);
    if (pirState == LOW)  //si previamente estaba apagado
    {
      Serial.println("Sensor activado");
      Serial.println("Relay LUZ Encendido");
      pirState = HIGH;
    }
  } 
  else   //si esta desactivado
  {
    digitalWrite(LEDPin, LOW); // LED OFF
    digitalWrite(RELPin, LOW);  //RELAY ON
    if (pirState == HIGH)  //si previamente estaba encendido
    {
      Serial.println("Sensor parado");
      Serial.println("Relay LUZ Apagado");
      pirState = LOW;
    }
  }
}



Esto se podría usar fácilmente en domótica como el activar las luces de áreas especificas de la casa , guarda ropas , baños ,aparcamiento de vehículos, etc. El costo de estos dispositivos es realmente bajo ya que el costo de estos dispositivos no supero los $8.000.- pesos chilenos y en cuanto a espacio que ocupa eso podría entrar en una caja estanca. solo habria que ver como alimentar el dispitivo pero con un cargador de celular esto quedaría solucionado.

6 comentarios :

  1. Hola, muy bueno tu trabajo. Se podra hacer que el relay se encendiera y apagase unas diez veces aunque el sensor haya cambiado de estado. Como quedaria el código??

    ResponderEliminar
  2. Disculpa, recién vi tu consulta, ¿me puedes explicar para que seria el ejemplo?, solo deberías eliminar el código que verificar el pin de rele ya que querida en un lup

    ResponderEliminar
  3. Hola. Muchas gracias por el tuyo. Impresionante.
    Me podrías decir como hacer para que una vez se activa el pir,y accione el Led y el rele, este último no se apague nunca {en caso de quererlo apagar hacerlo con un módulo bluetooth (hc-05)}
    P.d: estoy pensando ponerlo en una tienda de campaña.
    Un saludo.

    ResponderEliminar
  4. Hola Amigo me podrías ayudar. Es quiero hacer una escalera con luces que encienden independientemente al subir y al bajar con un sensor en una punta de la escalera y otro sensor en el otro punto de la escalera gracias

    ResponderEliminar
  5. hola, me podrian ayudar? Estoy intentando que cuando el sensor detecte movimiento se prenda un led (que serviria de aviso) y luego yo al presionar un pulsador se active el relay. Muchas gracias

    ResponderEliminar