Modulos 433Mhz codificación

Hola,
Soy nuevo con esto de arduino y me he comprado un receptor y transmisor de la frecuencia 433Mhz (de frecuencias se poco), el problema es que iba con la ilusión de que con el receptor pudiera ver el código de mi mando de la persiana y así poder transmitir el mismo código por el transmisor de la arduino. El problema se encuentra en que la codificación del chip de mi mando (he probado con otros que tengo por casa y tampoco) no es soportada por la librería RCSwitch, si modifico la librería poniendo logs en algunas condiciones puedo comprobar como realmente si recibe la señal del mando, pero no coincide con ningún protocolo de los 4 que tiene por lo cual no lo consigue decodificar.

Existe alguna forma de transmitir exactamente lo que recibe el receptor? No me importa ver el "código", sino enviarlo tal cual sin decodificarlo? O alguna otra opción que me sea válida como aprender a decodificar pero tampoco sabría por donde empezar.

Buenas tardes, para poder ayudarte debes responderme varias preguntas:

1.- Estas seguro que transmite en RF y no en IFR?
2.- Estas seguro que transmite en 433 MHz?
3.- Que identificación tiene tu chip?
4.- Estas realizando bien las conexiones en tu arduino UNO para usar RC-Switch?

Si tu chip no es soportado por la librería pues no hay problema, busca su datasheet y con eso podemos hacer el sketch decodificador.

Si no sabes que identificación tiene tu chip entonces no te queda otra que comprarte por 8 dolares en ebay un RTL-SDR dongle para poder capturar y visualizar la señal de tu mando a distancia y así poder emularla con un sketch creado por nosotros.

Atento a tus comentarios...

Buenas tardes,

Te intentaré responder
1- No conozco la diferencia entre uno y otro, solo te puedo decir que es un mando normal de código fijo
2- Si, seguro que es la 433 Mhz
3- Te adjunto imágenes con el interior dos mandos, realmente no estoy seguro cual es el código del chip así que para no liarte mejor te paso foto del interior.
4- Yo considero que si, al menos llegan datos a la arduino de que recibe señal del mando, pero no cumple ninguna condición para descifrarlo por la libreria RC-Switch.

El primer mando es un mando de autoaprendizaje (modelo HR R433AF), se puede copiar el código de cualquier otro poniéndolo al lado y pulsando los dos a la vez. El segundo mando es el que uso para la persiana.

Mando1:

Mando2:

Mando1: Dropbox - File Deleted
Mando2:
Dropbox - File Deleted
Dropbox - File Deleted

Esto asi no. Se debe usar tags para insertar enlaces.
Lee las normas del foro por favor y luego edita este post donde hay puesto mal los enlaces
Si son fotos,usa un servicio que permite guardar fotos en la Web y luego usas el tag de fotos. Ejemplo www.tinypic.com

surbyte:
Esto asi no. Se debe usar tags para insertar enlaces.
Lee las normas del foro por favor y luego edita este post donde hay puesto mal los enlaces
Si son fotos,usa un servicio que permite guardar fotos en la Web y luego usas el tag de fotos. Ejemplo www.tinypic.com

Listo, justo estaba esperando los 5 minutos por post que no me permitían la edición.

Buenas noches, por lo que puedo observar en las fotos, el mando de tus persianas esta construido con una memoria de 2 kb y pic el cual es el encargado de generar la trama de bits que envía al receptor de la persiana.

Deberás comprarte un RTL-SDR en ebay para que puedas observar a detalle la trama de bits que envía el pic.

Saludos cordiales

Hola carlos,

Me podrias recomendar alguno? Por ejemplo este serviria?
http://m.ebay.es/itm/Receptor-RTL-SDR-DVB-T-Nooelec-R-820T-/322183308912?nav=SEARCH

Ese mismo es.....

Ya lo he recibido, que pasos debería seguir ahora?

Debes instalar el SDRSharp, puedes buscar en youtube tutoriales sobre como instalarlo y como instalar el controlador de tu RTL-SDR. Una vez hecho esto, podrás ver en el espectro de frecuencia la señal emitida por tu mando a distancia.

Te invito a que mires este tutorial, Sammy Kamkar explica perfectamente como capturar la señal.
http://samy.pl/dingdong/

Una vez que captures la señal tal cual te lo explica sammy, podrás ver los pulsos con Audacity. este es un software freeware que puedes descargar de la pagina web.

Una vez visualizados los pulsos podrás ver la duración del periodo y con ellos ya podemos entonces crear nuestro propio código en arduino para emular o replicar esa señal.

Informa por esta vía tus avances para irte ayudando en lo que podamos.

Saludos

carlosjq10:
Debes instalar el SDRSharp, puedes buscar en youtube tutoriales sobre como instalarlo y como instalar el controlador de tu RTL-SDR. Una vez hecho esto, podrás ver en el espectro de frecuencia la señal emitida por tu mando a distancia.

Te invito a que mires este tutorial, Sammy Kamkar explica perfectamente como capturar la señal.
Samy Kamkar - Digital Ding Dong Ditch

Una vez que captures la señal tal cual te lo explica sammy, podrás ver los pulsos con Audacity. este es un software freeware que puedes descargar de la pagina web.

Una vez visualizados los pulsos podrás ver la duración del periodo y con ellos ya podemos entonces crear nuestro propio código en arduino para emular o replicar esa señal.

Informa por esta vía tus avances para irte ayudando en lo que podamos.

Saludos

Lo veo muy complejo para algo mas simple.

Revisa el circuito y ves cual es el pin que transmite la trama. lo conectas a un analizador logico como un EZ USB y tienes tus bits en pantalla listos para hackear.

Escribes tu codigo para que genere esa misma trama de bits y listo.

Pero revisa que cada vez que pulses sea la misma informacion, quizas la memoria que tiene la usa para generar nuevos codigos.

No es tan simple como lo dices amigo, el analizador lógico te va a ver los bits en pwm. Debes instalar el SDRsharp y veras la trama de bits con sus respectivos tiempos. Acá tengo un sketch que se puede adaptar para que repliques la señal pero debes primero decirnos cual es con la duración de los tiempos.

Gracias carlos, aquí tengo una muestra en la imagen de abajo del audacity.

Si no me equivoco tiene una duración total de 11000 microsegundos, ahora imagino que el siguiente paso es dar corriente al TX 433 de arduino siguiendo la misma secuencia.
La duración de cada pulsación son 275microsegundos y las largas son de 600, imagino que si aproximamos las cortas se podrían poner de 300microsegundos. Los espacios igual, los cortos a 300 y largos a 600.

Imagino que es jugar con el delaymicroseconds y el digitalWrite para imitarlo no?

Adjunto el código, me ha funcionado perfectamente.

#include <Arduino.h>
#define MAX_SIGNAL 37
#define TX_PIN 9
#define DELAY 300

const int SIGNAL[MAX_SIGNAL]={1,0,0,1,0,0,1,0,1,1,0,0,1,0,1,1,0,1,1,0,0,1,0,0,1,0,1,1,0,0,1,0,0,1,0,1,1};

void setup(){
  pinMode(TX_PIN, OUTPUT);
  Serial.begin(9600);
}

void loop(){
  for(int i=0; i<MAX_SIGNAL; i++){
    digitalWrite(TX_PIN, SIGNAL[i]);
    delayMicroseconds(DELAY);
  }
  digitalWrite(TX_PIN, 0);
}

Quisiera saber si hay alguna manera de pasar de las ondas de audacity a binario, ya que en algunos casos se empieza a complicar y algunos mandos envían señales muy largas para ser copiadas a mano.

Hola buenas noches,

Si amigo estas en lo correcto, esa era la manera de emular la señal.
En lo referente a tratar de procesar la señal de audacity no he conseguido un software que manipule y decodifique los archivos de audacity pero te tengo la solución super economica y muy práctica.

Mira esta web y si sabes algo de inglés veras como funciona

https://rurandom.org/justintime/w/Cheapest_ever_433_Mhz_transceiver_for_PCs

Quiero aclararte algo, hay controles que utilizan código fijo cuya seguridad es muy débil y otros tipos de controles que utilizan código variable cuyas longitudes son desde 32 bits hasta mas de 100. Para este tipo de seguridad con código variable sera mas complicado usar el metodo que se expone en la web pero igual puedes capturar y emular cualquier tipo de señales.

saludos Cordiales