Arduino Controlando Salidas Electricas Via 433mhz

Esta es mi primera publicación

En este Primer Post, deseo Compartir, Proyectos e Investigaciones realizadas, entorno al Open Hardare en mi caso estoy en la linea del Arduino y del Raspbery Pi,

Les presento este interesante Proyecto de Domotica, controlando salidas eléctricas tipo “Wireless Remote Control Outlet Switch”

El Proyecto se basa en el control de los receptores electricos mediante el comutador, sustituiremos el control remoto , utilizando arduino para el envio de señales RF

Para este Proyecto se requirieron los siguientes materiales

  • 1 Arduino.
  • 3 Pack Wireless Remote Control Power Outlet Light Switches Plug with 2 remotes
  • 1 Sets 433Mhz RF Transmitter Module and Receiver Link Kit for Arduino ARM MCU WL
  • Descargar la libreria RC- Switch

outlet433 rcswitch

Etapas del Proyecto.

  • Recepción de Códigos.
  • Transmisión de Códigos.
  • Interface Grafica para control.

Recepción de Códigos

Primero se instala dentro del IDE de arduino la lireria Rc- Switch se descomprime dentro de la siguiente ruta.” C:\Program Files\Arduino\libraries”.Luego abrimos el ide de arduino buscamos en Archivos –> Ejemplos –>RCSwitch –>Receive_Demo Simple. Sketch Receive_Demo Simple

sc1

Simple example for receiving

*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2
}
void loop() {
if (mySwitch.available()) {
int value = mySwitch.getReceivedValue();
if (value == 0) {
Serial.print(“Unknown encoding”);
} else {
Serial.print(“Received “);
Serial.print( mySwitch.getReceivedValue() );
Serial.print(” / “);
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print(“bit “);
Serial.print(“Protocol: “);
Serial.println( mySwitch.getReceivedProtocol() );
}

Conexión de módulo MX-FS-05V.Para la recepcion de datos del Control Remoto

En la imagen se detalla la conexion del modulo Receptor, al arduino
  1. Modulo “receiver”(5v) Conectado al Pin (5v) positivo de arduino.
  2. Modulo “negativo” conectado al Pin (GND) de ardino.
  3. Modulo “(DATA)” conectado al Pin (2) de Arduino.

Captura de Tramas

sc3
La captura de tramas se realiza con el Monitor serie del IDE de Arduino.
Dentro del IDE del Arduino Abrimos en Herramientas –> Monitor Serie

Ahora estamos listos para inciar la Captura, procedemos a capturar los códigos que envía el control remoto. Presionando cada botón se obtiene los códigos que trasmite el control Remoto que viene con el equipo, de esta manera se realiza el control de las salidas eléctricas.

Estos Codigos (ver imagen) los copiamos a un archivo de texto, ya que los utilizaremos para el control desde nuestro arduino en la etapa de transmisiòn de còdigos

Transmisión de Códigos.

Para la Transmisión de códigos se realizaron modificaciones a la librería RcSendDemo.

sc6

Quedando el código modificado de la siguiente manera.

#include
RCSwitch mySwitch = RCSwitch();
byte inByte = 0;
int incomingByte;
int estado;
void setup() {
Serial.begin(9600);
mySwitch.enableTransmit(3);
mySwitch.setProtocol(1);
mySwitch.setPulseLength(190);
mySwitch.setRepeatTransmit(6);
}void loop(){
/* Switch using decimal code */
if(Serial.available() > 0) { // A byte is ready to receive and read the oldest byte in the serial buffer:
inByte = Serial.read();
if(inByte == ‘1’) { // byte is ‘1’
mySwitch.send(1135923, 24);
Serial.println(“1 ON”);
}
else if(inByte == ‘2’) { // byte is ‘2’
mySwitch.send(1135932, 24);
Serial.println(“1 OFF”);
}
else if(inByte == ‘3’) { // byte is ‘3’
mySwitch.send(1136067, 24);
Serial.println(“2 ON”);
}
else if(inByte == ‘4’) { // byte is ‘4’
mySwitch.send(1136076, 24);
Serial.println(“2 OFF”);
}
else if(inByte == ‘5’) { // byte is ‘5’
mySwitch.send(1136387, 24);
Serial.println(“3 ON”);
}
else if(inByte == ‘6’) { // byte is ‘6’
mySwitch.send(1136396, 24);
Serial.println(“3 OFF”);
}
else if(inByte == ‘7’) { // byte is ‘7’
mySwitch.send(1137923, 24);
Serial.println(“4 ON”);
}
else if(inByte == ‘8’) { // byte is ‘8’
mySwitch.send(1137932, 24);
Serial.println(“4 OFF”);
}
// aqui se tiene que seactivar todas enviando los comandos al puerto por ejemplo enviando 2,4,6,8,0 que serian los que aparian las cadena
else if(inByte == ‘9’) { // byte is ‘9’
mySwitch.send(1135923, 24);
mySwitch.send(1136067, 24);
mySwitch.send(1136387, 24);
Serial.println(“All ON”);
}
else if(inByte == ‘0’) { // byte is ‘9’
mySwitch.send(1135932, 24);
mySwitch.send(1136076, 24);
mySwitch.send(1136396, 24);
Serial.println(“All Off”);
}
else { // byte isn’t known
Serial.println(“Unknown”);
}
//esta parte devolvera el estado del puerto serial para verificar que dispositivos estan activos
char c = Serial.read(); //Guardamos la lectura en una variable char
if (c == ‘H’) { //Si es una ‘H’, enciendo el LED
Serial.println(“‘H’ pulsada”);
} else if (c == ‘L’) { //Si es una ‘L’, apago el LED
Serial.println(“‘L’ pressed”);
} else {
Serial.println(“Caracter no reconocido”);
}
}
}
Recuerde reemplazar los valores de cada botón por los que capturo en la recepción de códigos

.Conexion del Modulo Transmisor FS1000A

arduino-rcswitch

Probamos

Abrimos en Herramientas –>Monitor Serie, le enviamos los comandos declarados en la programación por cada botón.

sc5
En mi caso envié números desde el computador al arduino por el puerto serial, Arduino al recibir el comando devuelve el estado, imprimiéndolo por puerto serial
  • 1 = encendido (on)
  • 2= apagado (off)

 Interfase Grafica del Proyecto.

la interfase Grafica fue realizada en Visual estudio 2013.esta interface cuenta como inicio con un boton conectar.

sc7

al precionar el boton conectar se abrira una ventana de conexion en ella estableceremos la conexion del programa con el arduino, es muy sencillo solo debemos de saber en que puerto esta conectado el arduino , ya que el programa realiza un scan de puertos y los despliega en el select box.

sc8

Luego de darle conectar podemos observar que el botón de conexión cambia de estado e icono indicando que se realizó la conexión, se puede observar que se habilitan los botones de apagado o Encendido, pudiendo seleccionar solo uno

sc9

la imagen sale como debe de estar el led del equipo fisico

Video.

Link de descarga.

descarga el Programa, descomprime y ejecuta el Wireless Remote Control Outlet Switch.exe

DESCARGA

saludos

Javier Brathwaite V.

Advertisements

3 thoughts on “Arduino Controlando Salidas Electricas Via 433mhz

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s