Tabla de contenido:

RF433 Analizador: 7 pasos
RF433 Analizador: 7 pasos

Video: RF433 Analizador: 7 pasos

Video: RF433 Analizador: 7 pasos
Video: Cómo configura controles remotos RF 433 en módulos smart Demasled Smartlife 2024, Mes de julio
Anonim
RF433 Analizador
RF433 Analizador
RF433 Analizador
RF433 Analizador

Este instructable crea un instrumento de medición para ayudar a analizar las transmisiones de RF 433MHz que se utilizan comúnmente para comunicaciones remotas de baja potencia en la automatización del hogar y los sensores. Probablemente podría modificarse fácilmente para que funcione con las transmisiones de 315 MHz que se utilizan en algunos países. Esto sería usando la versión de 315MHz del RXB6 en lugar de la actual de 433MHz.

El propósito del instrumento es doble. Primero, proporciona un medidor de intensidad de señal (RSSI) que se puede usar para examinar la cobertura alrededor de una propiedad y encontrar puntos negros. En segundo lugar, puede capturar datos limpios de los transmisores para permitir un análisis más fácil de los datos y protocolos utilizados por diferentes dispositivos. Esto es útil si intenta diseñar complementos compatibles para unidades existentes. Normalmente, la captura de datos se complica por el ruido de fondo presente en los receptores que produce muchas transiciones falsas y hace más difícil descubrir las verdaderas transmisiones.

La unidad utiliza un receptor superhet RXB6. Utiliza el chip receptor Synoxo-SYN500R que tiene una salida analógica RSSI. Ésta es efectivamente una versión con búfer de la señal AGC que se usa para controlar la ganancia del receptor y proporciona fuerza de señal en un amplio rango.

El receptor es monitoreado por un módulo ESP8266 (ESP-12F) que convierte la señal RSSI. También impulsa una pequeña pantalla OLED local (SSD1306). La electrónica también puede capturar información de tiempo en las transiciones de datos.

Las capturas se pueden activar localmente mediante un botón en la unidad. Los datos capturados se guardan en archivos para su posterior análisis.

El módulo ESP12 ejecuta un servidor web para dar acceso a los archivos y las capturas también pueden activarse desde aquí.

El instrumento funciona con una pequeña batería recargable LIPO. Esto proporciona un tiempo de funcionamiento razonable y la electrónica tiene una corriente de reposo baja cuando no está en uso.

Paso 1: Componentes y herramientas necesarios

Nota IMPORTANTE:

He encontrado que algunos receptores RXB6 433Mhz tienen una salida RSSI que no funciona a pesar de que el AGC y el resto de la funcionalidad están bien. Sospecho que puede que se estén utilizando algunos chips Syn500R clon. Descubrí que los receptores etiquetados como WL301-341 usan un chip compatible con Syn5500R y el RSSI es funcional. También tienen la ventaja de no utilizar una lata de apantallamiento, lo que facilita la modificación del condensador AGC. Recomendaría usar estas unidades.

Se necesitan los siguientes componentes

Módulo wifi ESP-12F

  • Regulador 3.3V xc6203
  • Condensador 220uF 6V
  • 2 diodos schottky
  • Pulsador de 6 mm
  • n canal MOSFET p. ej. AO3400
  • MOSFET de canal p, p. ej. AO3401
  • resistencias 2x4k7, 3 x 100K, 1 x 470K
  • pequeño trozo de placa de creación de prototipos
  • Receptor superhet 433MHz RXB6 o WL301-341
  • Pantalla OLED SSD1306 0.96 (versión SPI de un solo color)
  • Batería LIPO 802030 400mAh
  • Conector de 3 pines para cargar
  • Conectar cable
  • Autofundente de alambre de cobre esmaltado
  • Resina epoxica
  • Cinta de dos lados
  • Recinto impreso en 3D

Herramientas necesarias

  • Soldador de punta fina
  • Desoldar trenza
  • Pinzas
  • Alicates

Paso 2: esquema

Esquemático
Esquemático

El circuito es bastante sencillo.

Un regulador LDO 3.3V convierte el LIP a 3.3V que necesita el módulo ESP-12F.

La alimentación se suministra tanto a la pantalla como al receptor a través de dos MOSFETS de conmutación, por lo que se apagan cuando el módulo ESP está inactivo.

El botón inicia el sistema suministrando 3.3V a la entrada EN del ESP8266. El GPIO5 luego sostiene esto mientras el módulo está activo. El botón también se monitorea usando GPIO12. Cuando se libera GPIO5, se quita el EN y la unidad se apaga.

La línea de datos del receptor es monitoreada por GPIO4. La señal RSSI es monitoreada por el AGC a través de un divisor de potencial 2: 1.

La pantalla SSD1306 se controla a través de SPI que consta de 5 señales GPIO. Puede ser posible usar una versión I2C, pero esto requerirá cambiar la biblioteca utilizada y reasignar algunos de los GPIO.

Paso 3: Modificación del receptor

Modificación del receptor
Modificación del receptor
Modificación del receptor
Modificación del receptor
Modificación del receptor
Modificación del receptor

Como se suministra, el RXB6 no hace que la señal RSSI esté disponible en sus pines de datos externos.

Una simple modificación lo hace posible. El conector de la señal DER de la unidad es en realidad una repetición de la señal de la señal de datos. Están conectados entre sí a través de la resistencia de 0 ohmios etiquetada como R6. Esto debe eliminarse con un soldador. El componente etiquetado como R7 ahora debe estar enlazado. El extremo superior es en realidad la señal RSSI y el inferior va al conector DER. Se podría usar una resistencia de 0 ohmios, pero simplemente la conecté con un poco de cable. Estas ubicaciones son accesibles fuera de la lata de malla metálica que no necesita ser removida para esta modificación.

La modificación se puede probar conectando un voltímetro a través de DER y GND con el receptor encendido. Mostrará un voltaje entre aproximadamente 0,4 V (sin energía recibida) y aproximadamente 1,8 V con una fuente local de 433 MHz (por ejemplo, un control remoto).

La segunda modificación no es absolutamente esencial, pero es muy deseable. Tal como se suministra, el tiempo de respuesta de AGC del receptor está configurado para ser bastante lento y tomar varios cientos de milisegundos para responder a la señal recibida. Esto reduce el tiempo de resolución durante las capturas RSSI y también hace que sea menos receptivo el uso de RSSI como disparador para la captura de datos.

Hay un solo condensador que controla los tiempos de respuesta de AGC pero, desafortunadamente, está ubicado debajo de la lata de protección de metal. En realidad, es bastante fácil quitar la lata de cribado, ya que solo está sujeta por 3 orejetas y se puede levantar calentando cada una de ellas por turno y haciendo palanca con un destornillador pequeño. Una vez retirado, se pueden limpiar los orificios para volver a montarlos utilizando una trenza para desoldar o volviendo a perforar con una broca de aproximadamente 0,8 mm.

La modificación consiste en quitar el condensador AGC C4 existente y reemplazarlo con un condensador de 0.22uF. Esto acelera la respuesta de AGC unas 10 veces. No tiene ningún efecto perjudicial sobre el rendimiento del receptor. En la imagen, muestro un corte de pista y un enlace a esta pista desde el condensador AGC. Esto no es necesario, pero hace que el punto AGC esté disponible en una almohadilla fuera de la lata de cribado debajo del cristal en caso de que uno quisiera agregar capacitancia adicional nuevamente. No he necesitado hacer eso. A continuación, se puede reemplazar la pantalla.

Si usa la unidad WL301-341 RX, la foto muestra esto con el capacitor AGC resaltado. También se muestra el pin de señal RSSI. En realidad, esto no está relacionado con nada. Uno puede simplemente conectar un cable fino directamente al pin. Alternativamente, allí los dos pines de puente centrales están conectados entre sí y ambos llevan la salida de datos. La traza entre ellos se puede cortar y luego el RSSI enlazado con el de reserva para que la señal RSSI esté disponible en una salida de puente.

Paso 4: Construcción

Construcción
Construcción
Construcción
Construcción
Construcción
Construcción
Construcción
Construcción

Se necesitan alrededor de 10 componentes fuera del módulo ESP-12. Estos se pueden crear y conectar en una pieza de placa de prototipos. Usé una placa de creación de prototipos específica de ESP que usé para facilitar el montaje del regulador y otros componentes smd. Esto se conecta directamente en la parte superior del módulo ESP-12.

La caja que utilicé es un diseño impreso en 3D con 3 hendiduras en la base para llevar el receptor, la pantalla y el módulo esp. Tiene un corte para la pantalla y orificios para el punto de carga y el botón pulsador que deben insertarse y asegurarse con una pequeña cantidad de resina poxy.

Usé un cable de conexión para hacer las conexiones entre los 3 módulos, el punto de carga y los botones. y luego asegúrelos en su lugar con cinta de doble cara para el ESP y el receptor y pequeñas gotas de epoxi para mantener los lados de la pantalla en su lugar. La batería se conecta al punto de carga y se monta en la parte superior del receptor con cinta de doble cara.

Paso 5: software y configuración

El software está construido en el entorno Arduino.

El código fuente para esto se encuentra en https://github.com/roberttidey/RF433Analyser El código puede tener algunas constantes para las contraseñas cambiadas por motivos de seguridad antes de compilarse y actualizarse al dispositivo ES8266.

  • WM_PASSWORD define la contraseña utilizada por wifiManager al configurar el dispositivo en la red wifi local
  • update_password define una contraseña que se utiliza para permitir actualizaciones de firmware.

Cuando se usa por primera vez, el dispositivo ingresa al modo de configuración wifi. Use un teléfono o tableta para conectarse al punto de acceso configurado por el dispositivo y luego busque 192.168.4.1. Desde aquí puede seleccionar la red wifi local e ingresar su contraseña. Esto solo debe hacerse una vez o si se cambian las redes wifi o las contraseñas.

Una vez que el dispositivo se haya conectado a su red local, escuchará los comandos. Suponiendo que su dirección IP es 192.168.0.100, primero use 192.168.0.100:AP_PORT/upload para cargar los archivos en la carpeta de datos. Esto permitirá que 192.168.0.100/edit vea y cargue más archivos y también permitirá que 192.168.0.100 acceda a la interfaz de usuario.

Los puntos a tener en cuenta en el software son

  • El ADC en el ESP8266 se puede calibrar para mejorar su precisión. Una cadena en el archivo de configuración establece los valores brutos alcanzados para dos voltajes de entrada. Esto no es particularmente importante ya que RSSI es una señal relativamente relativa dependiendo de la antena, etc.
  • El voltaje RSSI a db es razonablemente lineal pero se curva en los extremos. El software tiene un ajuste cúbico para mejorar la precisión.
  • La mayor parte de la aritmética se realiza utilizando números enteros escalados, por lo que los valores RSSI son en realidad 100 veces los reales. Los valores escritos en archivos o mostrados se vuelven a convertir.
  • El software utiliza una máquina de estado simple para controlar la captura de RSSI y las transiciones de datos.
  • Las transiciones de datos se controlan mediante una rutina de servicio de interrupción. El procesamiento normal del bucle de Arduino se suspende durante la captura de datos y el perro guardián se mantiene vivo localmente. Esto es para intentar mejorar la latencia de interrupción para mantener las mediciones de tiempo lo más fieles posible.

Configuración

Esto se guarda en el esp433Config.txt.

Para la captura RSSI, se puede configurar el intervalo de muestreo y la duración.

Para la captura de datos, se puede configurar el nivel de activación de RSSI, el número de transiciones y la duración máxima. Un nivel de disparo adecuado es de aproximadamente + 20dB en el fondo sin nivel de señal. Una cadena pulseWidths también permite una categorización simple de los anchos de pulso para facilitar el análisis. Cada línea registrada tiene pulseLevel, ancho en microsegundos y el código que es el índice en la cadena pulseWidths que es mayor que el ancho medido.

CalString puede mejorar la precisión de ADC.

idleTimeout controla la cantidad de milisegundos de inactividad (sin capturas) antes de que el dispositivo se apague automáticamente. Establecerlo en 0 significa que no se agotará el tiempo de espera.

Las configuraciones de tres botones controlan lo que distingue las pulsaciones de botón cortas, medias y largas.

displayUpdate proporciona el intervalo de actualización de la pantalla local.

Paso 6: uso

La unidad se enciende presionando el botón durante un tiempo breve.

La pantalla mostrará inicialmente la dirección IP local durante unos segundos antes de comenzar a mostrar el nivel RSSI en tiempo real.

Al presionar brevemente un botón, se iniciará una captura RSSI en el archivo. Normalmente, esto terminará cuando finalice la duración de RSSI, pero una pulsación breve adicional del botón también terminará la captura.

Una pulsación media de un botón iniciará una captura de transición de datos. La pantalla mostrará esperando el disparador. Cuando el RSSI supera el nivel de activación, comenzará a capturar transiciones de datos cronometradas para el número de transiciones especificado.

Si mantiene pulsado el botón durante más tiempo que el botón, se apagará la unidad.

Los comandos de captura también se pueden iniciar desde la interfaz web.

Paso 7: Interfaz web

Interfaz web
Interfaz web
Interfaz web
Interfaz web

Acceder al dispositivo por su dirección IP muestra una interfaz web con 3 pestañas; Capturas, estado y configuración.

La pantalla de capturas muestra los archivos capturados actualmente. El contenido de un archivo se puede mostrar haciendo clic en su nombre. También hay botones de eliminar y descargar para cada archivo.

También hay botones de captura RSSI y captura de datos que pueden usarse para iniciar una captura. Si se proporciona un nombre de archivo, se utilizará; de lo contrario, se generará un nombre predeterminado.

La pestaña de configuración muestra la configuración actual y permite cambiar y guardar svalues.

La interfaz web admite las siguientes llamadas

/ editar - sistema de archivo de acceso del dispositivo; se puede utilizar para descargar archivos de medidas

  • / status: devuelve una cadena que contiene los detalles del estado
  • / loadconfig: devuelve una cadena que contiene detalles de configuración
  • / saveconfig - envía y guarda una cadena para actualizar la configuración
  • / loadcapture: devuelve una cadena que contiene medidas de un archivo
  • / setmeasureindex: cambia el índice que se utilizará para la siguiente medida
  • / getcapturefiles: obtiene una cadena con la lista de archivos de medida disponibles
  • / capture: dispara la captura de RSSI o datos
  • / firmware: inicia la actualización del firmware

Recomendado: