Integrando productos comerciales con RF 433Mhz

Integrando productos comerciales con RF 433Mhz

Existen un gran número de productos comerciales que se comunican a 433Mhz como por ejemplo sensores de alarmas y controles remoto. Es posible recibir su mensaje si se saben algunos datos de antemano. También es posible con solo confirmar que la frecuencia es la correcta (que efectivamente es un producto que transmite a 433Mhz) “escuchar” y de lo recibido sacar información suficiente para integrar dichos productos.

Aplicaciones

Integración de sensores de alarma. Si usted ya posee una alarma con sensores inalámbricos en su casa, podrá reutilizarlos para otros propósitos, como por ejemplo saber si en un ambiente cubierto por un sensor hay alguien o no y apagar las luces si no hay nadie en el cuarto para ahorrar energía (casa inteligente).

También puede comprar los sensores y hacerlo usted mismo. Otra idea sería hacer una alarma aunque siempre recomiendo no re-inventar la rueda, ya hay infinidad de alarmas por ahi que hacen su trabajo muy bien. Otra idea con sensores de alarma sería el control de temperatura con forzadores de aire, es decir si un cuarto tiene A/C o calefacción y otros no, puede instalar forzadores de aire (ventiladores) y sensores de temperatura en los ambientes e integrar todo en una solución que distribuya inteligentemente el aire acondicionado a la temperatura ideal.

Otras aplicaciones incluyen la reutilización de controles remoto. Algunos operan a esas frecuencias y podría re-utilizar uno para otros propósitos. O sino lo inverso, podría emular un control remoto para automatizar un dispositivo que se comanda con él.

Como vé, son muchas las aplicaciones posibles y a medida que juegue con estos módulos de RF económicos espero se le vayan ocurriendo más. Recuerde que hay módulos que operan a 315Mhz que es la otra frecuencia común que se encuentra en el mercado.

¿Qué necesitamos para las pruebas?

Yo usé un Arduino (Mega 2560 en mi caso), un módulo RF 433Mhz receptor (no usé emisor para las pruebas que comparto acá), algunos cables de conexión y breadboard, y algunos sensores de alarma inalámbricos que trabajan a la misma frecuencia que mi módulo.

Para las pruebas usted no necesita agregar una antena a su receptor. Sin embargo, para una aplicación más realista es posible que sí la necesite ya que el alcance de estos módulos sin antena es realmente muy bajo, del orden de los 2m-3m solamente.

Arduino Mega 2560 con módulo receptor RF 433Mhz

Sensores de alarma inalámbricos a RF 433Mhz

Esquema de conexión para el módulo receptor:

Módulo -> Arduino UNO / Mega 2560
GND -> GND
VCC -> 5V
DATA -> Pin 2

 

La librería RCSwitch

Debido a que no tenemos control del protocolo o parámetros de comunicación como en los otros ejemplos de comunicación con estos módulos, no podemos usar la fantástica librería RadioHead. En su lugar, usaremos la librería RCSwitch ya que su fortaleza radica en la capacidad de “escuchar” independientemente de los parámetros de comunicación (en la frequencia obviamente del módulo integrado) y luego “interpretar” lo que se escuchó.

La librería utiliza el concepto de longitud de pulso, y cálculos matemáticos para interpretar lo escuchado que exceden el objetivo de esta página pero será suficiente con que digamos que puede escuchar a todos los dispositivos que transmitan en esa frecuencia.

Podrá descargar la librería aqui: https://github.com/sui77/rc-switch/archive/master.zip

El Sketch

El Sketch que les comparto a continuación usa el monitor Serial para ir mostrando la información respecto a cada lectura. No toda la información compartida es util (el sketch es basado en los ejemplos compartidos por la librería), pero revisando el código del mismo usted podrá identificar la información que le es util de la que no, y usarla a su gusto.

#include <RCSwitch.h>

RCSwitch mySwitch = RCSwitch();

void setup() {
 Serial.begin(9600);
 
 // Puede cambiar el pin 2 por cualquier otro pin que soporte interrupciones
 mySwitch.enableReceive(digitalPinToInterrupt(2));
}

void loop() {
  unsigned int* raw;
  
  // Información recibida disponible?
  if (mySwitch.available()) {
    raw = mySwitch.getReceivedRawdata();
    
    Serial.print("Recibido: ");
    
    for (unsigned int i=0; i <= mySwitch.getReceivedBitlength()*2; i++) {
      Serial.print(raw[i]);
      Serial.print(",");
    }
    
    Serial.println();
    Serial.println();
    
    // Reiniciamos la clase para otra lectura
    mySwitch.resetAvailable();
  }
}

Debido a que esta página ya explica y comparte conceptos avanzados, los invito a analizar los resultados e investigar más si desean avanzar con una aplicación en especial. También pueden consultarme si tienen dudas o inconvenientes con lo compartido. No dejen de revisar los ejemplos que vienen con las librería RCSwitch que son muy utiles e interesantes.

Para probar el Sketch solo abran el monitor Serial y enciendan algun producto como los que mostré y deberán ver información inmediatamente similar a la que les muestro a continuación:

Recibido: 9200,296,900,916,300,916,304,912,304,300,900,300,900,300,900,296,900,300,900,296,904,912,308,912,304,912,304,912,304,912,308,912,304,912,308,296,904,908,312,908,308,908,308,296,904,908,312,292,904,

8 comentarios en “Integrando productos comerciales con RF 433Mhz”

    • El truco está en el emisor, no en el receptor. El emisor es el que hace la diferencia. Yo he logrado distancias de hasta 100m con el emisor configurado correctamente. ¿Qué emisor estás usando?

      • Estoy usando como emisor un sensor movimiento inalambrico PIR Marca GHIA el cual indica que tiene alcance de 120metros en área abierta.

      • Esas antenas no son apropiadas para los modulos. La antena apropiada será rígida, derecha y de unos 13-16cm de largo. Vienen comerciales pero podés hacer pruebas con un cable telefónico rígido de antena de esas dimensiones. Prueba y me avisas!

Deja un comentario