7 votos

Mejora el alcance del enlace RF de 433MHz

Tengo un sistema compuesto por un sensor inalámbrico que transmite las lecturas de temperatura a una base principal.

El sistema de sensores inalámbricos se compone de:

  1. 12F683 pic para tomar la lectura de la temperatura (codificada en manchester)
  2. Transmisor RF Solutions AM-RT4-433 para transmitir los datos
  3. Actualmente en una pequeña placa de pan (protoboard) con un cable de 1/4 de longitud de onda actuando como antena

La codificación manchester es: 0 = 10 y 1 = 01 para un tiempo total de 416 micro segundos (cada baja y alta es de 208 micro segundos)

La base del receptor se compone de (todo en placa de pan de nuevo)

  1. Receptor RF Solutions HRR30 con un cable de 1/4 de longitud de onda para la antena
  2. microcontrolador mbed que decodifica los datos del receptor y busca un patrón de sincronización corto y luego recibe el paquete de datos (el patrón de sincronización es de 15 1s seguido de un 0 y luego comienzan los datos)

Todo esto funciona bien cuando se transmite de un lado a otro de mi escritorio (1-2m) pero una vez que muevo el transmisor a otra habitación se vuelve muy poco fiable. El sistema remoto actualmente toma una lectura del sensor, luego enciende el transmisor para enviar los datos y luego apaga el transmisor una vez transmitido - puedo obtener alguna transmisión a distancias mayores aumentando el número de veces que se transmite el paquete de datos de 1 a 5 con un breve retraso entre ellos.

Esto funciona más o menos, pero sigue sin ser muy fiable. Ambas placas funcionan con 5V.

Cualquier sugerencia sobre dónde buscar los problemas sería genial. Supongo que el uso de la placa de pan y las antenas de látigo no es grande, pero yo habría esperado que el rango de más de 2 metros - tal vez estoy equivocado?

Sé que otras frecuencias distintas a los 433 MHz podrían servirme mejor y he utilizado los transceptores RFM12B pero me gustaría ceñirme a estos componentes por ahora.

13voto

MarkSchoonover Puntos 716

Necesitarás un elemento conducido de unas 6" de altura y 4 radiales de la misma longitud para obtener una buena eficiencia a 433MHz. También tendría en cuenta lo que hay en la pared, o cuántas paredes estás tratando de transmitir a través también.

Otra opción es alargar el preámbulo. Puede que quieras investigar un protocolo mejor para superar uno o dos bits invertidos.

3voto

Masi Puntos 1471

Los módulos que estás utilizando sólo tienen 0dBm (1mW), lo que es una potencia bastante baja. Los RFM12 a los que estás acostumbrado son normalmente de 8dBm (6mW) y tienen un protocolo robusto ya hecho. También son de montaje superficial, así que asumo que los estás usando montados en una PCB.

Mi primera idea sería aislar los problemas de radiofrecuencia de los problemas de protocolo. Configure un transmisor que haga 101010101010 a la velocidad que sea necesaria para transmitir los datos en su aplicación. Parece que tienes una tasa de unos 2400Hz que es buena para larga distancia sin ser tan lenta como para confundir cualquier AGC en el receptor. Utiliza un indicador en el receptor o configura algo para detectar este patrón de preámbulo, y mira hasta dónde puedes llegar con tu configuración actual. Esto debería permitir averiguar si se trata de un problema de RF o de protocolo.

No conozco el receptor HRR30, pero la mayoría de los receptores básicos de AM tienen un AGC no ajustable en ellos. Esto significa que puede ser difícil calcular exactamente la longitud del preámbulo que se necesita para polarizar la ganancia correctamente, y también es difícil calcular las velocidades de datos que se admiten. Si el preámbulo es demasiado corto, el receptor seguirá ganando y respondiendo al ruido. Si la velocidad de datos es demasiado lenta, la ganancia estará por todas partes. Tu configuración suena bien, pero puede valer la pena investigar.

El embarque de estos transmisores y receptores está plagado de problemas. Sin embargo, no creo que sea necesario recurrir a nada más que un dipolo de un cuarto de onda. Pon el módulo en una simple placa de circuito impreso y probablemente verás una gran mejora.

Otra gran suposición, pero con proyectos como éste a menudo no vale la pena implementar la corrección de errores. Simplemente transmite varias veces y asume que perderás algunos paquetes. Si eso no es aceptable, un sistema de envío/retorno será mejor que la corrección de errores.

2voto

András Puntos 245

Hice casi el mismo proyecto pero AVR uno y alcanzó un rango de unos 30 metros al aire libre y unos 15 metros en interiores (edificio de hormigón) a 5 voltios. Por favor, encontrar más detalles sobre: Lado TX:

  1. Lista de artículos
  2. 2xLM335 sensores de temperatura conectados a ADC0 y ADC1
  3. El barato transmisor de 433MHz de ebay
  4. Uso de la UART nativa
  5. Antes de la transmisión, cada byte se codifica en 2 bytes con codificación Manchester.
  6. Transmisión de paquetes: -- bytes de preámbulo (0xF0) -- dirección de destino -- dirección de origen -- número de bytes -- peros de datos -- suma de comprobación

Lado RX:

  1. Lista de artículos
  2. 16x02 LCD
  3. El barato receptor de 433MHz de ebay
  4. Uso de la UART nativa
  5. Cada byte recibido se decodifica en un nibble.
  6. Contador de paquetes válidos.

Puede consultar el código fuente aquí en mi cuenta de Microsoft SkyDrive.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X