# Captura de datos por RF



## miborbolla (Jun 4, 2012)

Hola Compañeros de tan buen foro,  estas ves vengo a pedir consejo sobre un desarrollo que me han solicitado, y aunque tengo una buena idea de lo que necesito hacer, no conozco que circuitos integrados me brinden la solución que busco, dejo a manera de introducción la descripción de lo que requiero y pensado como solución.

El producto final que se busca es tener un receptor, preparado para captar las emisiones  de diferentes transmisores portátiles muy parecidos a controles remotos con un ID (Identificador único) y en el que se pueda digitar un numero del 0 al 9, para que pueda ser diferenciada cada una de las opciones (0 al 9) de cada uno de los transmisores.

Si se preguntan ¿para que? Aquí va una aplicación inicial, la idea es organizar foros, o exposiciones interactivas en las que se pueda capturar en tiempo real la opinión de los participantes a los cuales se invitan y que al registrarse se les entrega un transmisor con un teclado matriarcal de tal suerte que el expositor o ponente en turno, aviente una pregunta al aire y la gente o publico al oprimir una tecla, su opinión sea transmitida al receptor y que  esta quede debidamente registrada en una base de datos, esta base de datos obviamente será capturada por el receptor de cada uno de los transmisores.

Tengo experiencia en transmisores/receptores basados en los HT12e Y HT12d, que es mi primera idea inicial. Y que la idea es usar un microcontrolador como interface principal entre el receptor y la computadora vía puerto USB con protocolo cdc (serial bajo usb).
Sé que cada transmisor lo puedo hacer con un HT12e y tengo 8 bits para conformar el ID para cada uno de ellos, lo cual creo estoy mas que cubierto.

Mi gran dudad es como hago para hacer el receptor que me pueda separar el identificador de cada transmisor. Lo primero que se me ha ocurrido es hacer una rutina que me capture todo el tren de transmisión, o sea el ID+DATO, pero estoy liado con ello, ya que no entiendo a bien como esta el protocolo con certeza.

La parte de comunicación entre el micro controlador y la PC también esta resuelto como lo comento anteriormente y ya puedo dejar el dato en una hoja de  microsoft excel (xls)

Espero haberme podido explicar, y también estoy ansioso de escuchar sus  sugerencias, ya que quizás estoy tratando de inventar el hilo negro y ya existan chips de aplicación mucho más modernos y sencillos de lo que propongo.

Saludos


----------



## miguelus (Jun 5, 2012)

Buenos días miborbolla.
Lo que planteas, a sí a primera vista parece un poco complejo pero al analizarlo más detenídamente es, sin duda algo muy complejo.
En primer lugar... ¿Cuántos códigos distintos hay que detectar?.
Ten en cuenta que en el sitema que planteas no pudes garantizar que dos o más equipos no estén transmitiendo al mismo tiempo, si esto ocurriese se produciría una "colisión" de las señales y el receptor no las podría identificar.
La solución de emplear los TH12E y TH12D no parece ser la más acertada, ya que en el lado del receptor, necesitarías tantos TH12D como equipos transmisores.
Habría que buscar otro tipo de Identificación quizás... Tonos Secuenciales.
Dejando a un lado el tipo de Identificación.
La técnica de "Transponder" puede ser la solución, pero esto obliga a que cada participante tenga un equipo que sea TX y RX.
Cada participante tendría un equipo con un código inequívoco
La base interrogaría secuencialmente a todos los equipos y esperaría un tiempo x su respuesta, de esta forma, evitaríamos las colisiones, el tiempo de espera puede ser muy pequeño, del orden de milisegundos.
Esta forma de funcionar complica los equipos que darás a cada participante pero garantiza un funcionamiento muy fiable.
Cuando el participante pulsa un botón, ese dato no es transmitido inmediatamente, se queda memorizado y la transmisión del dato se efectua al ser interrogado.
En un tiempo de entre 20 y 30 segundos podemos obtener respuestas de 100 participantes
Esto es un pequeño resumen de la forma en la que podría funcionar el sistema.
Esto, evidentemente, hay que depurarlo.
Aunque parezca algo extraño, es una forma muy empleada de adquisición de datos Via Radio.
Espero que con esto puedas tener una base para lo que necesitas.

Sal U2


----------



## miborbolla (Jun 5, 2012)

En efecto, mi estimado Miguelus he visto los mismos problemas que me comentas, y agradezco mucho tus líneas que confirman en mucho los problemas que seguro voy a encontrar, sin embargo hay que comenzar por algo, leyendo los dataSheet del HT12E, llegue a la conclusión de que están basados en la codificación manchester. 








El cual ya aplique en un programa en C++ y programe un pic 12f508 conectado a un transmisor de rf de las series “szsaw” de 433mhz, y por otro lado en mi receptor  un pic 18f4550, aplique el decodificador del código manchester, logrando poder separar un ID y un Dato con seguridad. En mis trebejos encontré un segundo transmisor y en otro 12f508, aplique el mismo programa que al primero,  pero con la variante que los dos generan “ID” y “Datos” de manera aleatoria, y aun así he podido recibir bien la transmisión.

Obviamente y como bien comentas seguramente en un ambiente de 50 o mas transmisores, seguramente habrá colisiones, que habrá que valorar, la estadística de estas, espero mañana conseguir con amigos mas 12f508 y transmisores...Por cierto a tu pregunta de cuantos "ID" se necesitan, de manera inicial unos 50, pero la idea es que sean al rededor de 250 o mas.






Por otro lado he contemplado tu bien atinada opción de transponder, y un modulo posible son los NRF24L01, que son bidireccionales y que bien se podría implementar  la “cola de espera”, pero ahí si considero sale del presupuesto, sin embargo no dejo de contemplar la opción.

Por lo pronto, creo fue una noche muy productiva para mi, y agradezco tus comentarios que me hacen reflexionar en muchas cosas, Gracias.


----------



## miguelus (Jun 5, 2012)

Buenos días de nuevo miborbolla.
En principio el tipo de datos a enviar es algo secundario. Primero hay que evaluar la viabilidad del sistema.
Lo que comentas de acerca de que serían 250 equipos me asusta un poco.
Otra forma sería la siguiente...
Los equipos serían solamente TX.
Cada uno tendría un código inequívoco.
Desde que  se pulsa TX hasta que el equipo empieza a transmitir sería distinto en todos ellos, este tiempo podría variar entre 1 segundo y 10 segundos.
La transmisión sería repetitiva, esto quiere decir que cada equipo transmitiría sus datos varias veces a intervalos aleatorios.
Esto que en principio parece algo caótico es también una forma de enviar datos, cierto que habrá muchas colisiones pero al final, todo es cuestión de tiempo y de intentos, todos los equipos habrán enviado sus datos, sería tarea del Software del receptor eliminar las repeticiones.
De esta forma simplificamos los equipos ya que solamente serán Transmisores.
En cuanto al formato del dato a enviar, lo más sencillo sería que te generaras tu un código, tienes la ventaja de necesitarás un PIC, este PIC lo puedes programar para que genere el código y los tiempos aleatorios de repetición.
Sobre los tiempos de repetición es muy importante que sean aleatorios en el tiempo, de esta forma evitaremos la posibilidad de coincidencias de repetición con otros equipos.
Todo es hacer un estudio estadístico dónde hay que tener en cuenta la duración de la trama,
el número de equipos, el número de repeticiones...
Otra cosa que tienes que valorar es la precisión de los datos...
Si son 250 los equipos que van a transmitir... ¿Qué error es asumible?, por ejemplo si al final de la interrogación faltan 2 o 3 equipos ¿Es asumible?.
Solución aumentar o disminuir el número de reenvíos de cada equipo.
Partes con la ventaja de que no tienes problemas con el Software y eso te va a ayudar mucho en tu proyecto.
Otro problema que vas a tener es la frecuencia de trabajo, por lo que comentas vas a utilizar módulos TX/RX en 433.92Mhz, ten en cuenta que esta frecuencia es de "Uso Común" por lo que la puede utilizar cualquiera, tendrás que asumir la interferencias que te creen otros servicios.

Bueno, me quedo a la espera de tus decisiones y mucha suerte con tu proyecto.

Sal U2


----------



## miborbolla (Jun 5, 2012)

Miguelus, pues al parecer esto se convirtió en un chat entre tu y yo, pero bueno, hoy ya conseguí 10 transmisores de RF (ahora necesito protoboards jejeje) mas 2 míos que tenia  ya suman 12, me dedicare toda la tarde a montar mi escenario y ya te contare como va la cosa, y aplicare dentro del "algoritmo" de transmisión, lo que comentas; sobre hacer repeticiones cada determinado tiempo de manera aleatoria, creo que con los 12 microcontroladores/transmisores tendré una buena idea de lo que sucede, y por supuesto te lo compartiré, ya que considero mereces una copia de todo este proyecto ya que me has ayudado en mucho, sobre todo en el razonamiento que a veces es lo mas valioso y que yo te lo agradezco y reconozco. 

Por ultimo basado en el codigo manchester ya tengo perfectamente el asunto de diferenciar cada transmisor, y de entrada usare el proio "ID" como semilla numerica para el sistema aleatorio (random) al parecer solo se requiere solventar el asunto de las colisiones en la portadora de RF. así que "según yo" el verdadero reto que ahora vislumbro es en desarrollar el asunto de hacer la transmisión tomando como base la teoria del caos.

Recibe un cordial saludo.


----------



## miborbolla (Jun 12, 2012)

Finalmente termine la primera fase de este proyecto, en el que se aplica mucho de lo que aquí se describe, aunque los principales problemas que se tuvieron fue la intermodulacion o "saturacion de la portadora" que los transmisores de RF generaban y se tuvo que añadir a los "transmisores" un switch electrónico para "conmutar" al transmisor de rf y así energizar solo cuando se transmitía, por lo demás en base a la discriminacion por software (en el lado de la computadora) y a la atinada observacion que hace Miguelus de transmitir a destiempo y de manera repetida pero aleatoria 5 veces (en mi caso) logro captar la información de hasta un 95% de los transmisores.

Obviamente falta una serie de pruebas en "campo" que deberemos sortear en la realidad y ver el comportamiento de este primer desarrollo del proyecto piloto. Como es de esperarse hay todavía un buen camino por andar sin embargo tengo buenas expectativas en base a las pruebas obtenidas hasta hoy.

Saludos y buen dia.


----------



## miguelus (Jun 12, 2012)

Buenas tardes miborbolla.

Me alegra enormemente que tu proyecto siga "palante".
El tema de de hacer que los TX emitan solo cuando tienen que enviar datos es algo que no te comenté pero creo que es evidente, hay que seguir la premisa de... "si no tengo algo que decir, mejor me callo y no molesto".
Si ves que la cosa empieza a funcionar es señal de que vas por el camino correcto.
Tendrás que empezar a valorar las veces de repetición del mensaje, alargar los tiempos entre envíos etc.
En fin tienes que valorar si ese porcentaje de efectividad del 95% es suficiente, ya que puede pasar que intentar mejorar algo el porcentaje te obligue a aumentar mucho los tiempos y quizás no sea necesaria más efectividad.

Cuando te comenté la "idea", la verdad es que creía que tenía que funcionar de esa manera.
Hace ya algunos años (muchos) , participé en un proyecto parecido a lo que estás haciendo.
Los equipos eran solamente TX, cada hora se ponian a transmitir los datos almacenados.
La forma de funcionar era prácticamente como te comenté.
El sistema funcionaba muy bien y era muy fiable.
La ventaja con la que contabamos era que trabajábamos en una  frecuencia propietaria por lo que no teníamos el problema de interferencias de otros servicios.

Ya contarás como te va

Sal U2


----------



## inspector gadget (Ago 22, 2012)

saludos estimados colegas, alguien de ustedes me puede decir si los decoder HT12D y PT2272 son compatibles? resulta que xperimentando un poco con los modulos rf que venden, estropee el deco PT2272 y no lo consigo en colombia, ya que venia incuido en una tarjeta rf como kit, solo hay para pedir por correo el HT12D, para ustedes qu han experimntado con rf, creen que tenga problemas al sustituirlo, o tambien hay que cambiar el codificador PT2262 por el HT 12E en el Tx? gracias por su colaboracion


----------



## miborbolla (Ago 22, 2012)

inspector gadget dijo:


> saludos estimados colegas, alguien de ustedes me puede decir si los decoder HT12D y PT2272 son compatibles? resulta que xperimentando un poco con los modulos rf que venden, estropee el deco PT2272 y no lo consigo en colombia, ya que venia incuido en una tarjeta rf como kit, solo hay para pedir por correo el HT12D, para ustedes qu han experimntado con rf, creen que tenga problemas al sustituirlo, o tambien hay que cambiar el codificador PT2262 por el HT 12E en el Tx? gracias por su colaboracion



Si son compatibles, ya que los dos están basados en el codigo manchester, las diferencias visibles por mi, es que en el PT2262 tienes dos versiones una que las salidas tienen un latch (que guardan el ultimo dato recibido) y el otro es momentánea, mientras que los los HT son solo momentaria (sin latch). de todos modos hay que verificar las patillas ya que en la versión de 18 pins todo parece coinsidir. asi que hay que verificar exactamente que numero te ofrecen para hacer uan comparativa mas exacta.


http://www.hobbyelektronik.de/theorie/datenblaetter/ht12d.pdf

http://www.datasheetcatalog.org/datasheet/PrincetonTechnologyCorporation/mXqzsrr.pdf

Saludos


----------



## inspector gadget (Ago 22, 2012)

muy oportuna tu respuesta miborbolla, un saludo desde colombia, me has sacado de una duda muy grande, mañana mismo pido este decodificador y lo ensayo ya que en los datasheets que posteaste esta muy claro, ya estare comentando el resultado de hacer esta sustitucion. mil gracias


----------



## mmaatti (Ene 17, 2013)

hola quisiera saber donde puedo consegir lo modulos para unos HT12 en BS AS  solo enconte de estos   _Buscar en Mercadolibre: MLA-445722180-modulo-rf-transmisor-receptor-microcontrolador-433-mhz-ask-_JM_





 sirven ??


----------



## mendek (Mar 4, 2013)

Que tal compañeros, pues mi duda es; si puedo hacer comunicación tx/rx con los pines 25 y 26 del PIC16f887 que precisamente son los pines de TX/RX a través de los ht12e/ht12d.
También de si puedo utilizar directamente el NRF24L01 (sin necesidad de decodificadores) con un microcontrolador PIC? desde ya gracias por su ayuda


----------



## miborbolla (Mar 15, 2013)

Con respecto a la primera pregunta; no puedes usar los tx/rx del pic con los ht12e/ht12d.

Para el segundo caso, si se puede lograr, sin embargo las rutinas o librerías y documentación al menos para mi no fueron lo suficientemente claras. El NRF24l01 utiliza la interfaces SPI.

Saludos


----------

