Taula de continguts:

RF433Analyser: 7 passos
RF433Analyser: 7 passos

Vídeo: RF433Analyser: 7 passos

Vídeo: RF433Analyser: 7 passos
Vídeo: 5 AWESOME LIFE HACKS #2 2024, Juliol
Anonim
RF433Analyser
RF433Analyser
RF433Analyser
RF433Analyser

Aquesta instrucció crea un instrument de mesura per ajudar a analitzar les transmissions de RF 433 MHz que s’utilitzen habitualment per a comunicacions remotes de baixa potència en domòtica i en sensors. Probablement es podria modificar fàcilment per treballar amb transmissions de 315 MHz utilitzades en alguns països. Això seria mitjançant l’ús de la versió de 315 MHz del RXB6 en lloc de l’actual de 433 MHz.

L’objectiu de l’instrument és doble. En primer lloc, proporciona un mesurador de força del senyal (RSSI) que es pot utilitzar per examinar la cobertura al voltant d’una propietat i trobar punts negres. En segon lloc, pot capturar dades netes dels transmissors per permetre una anàlisi més fàcil de les dades i els protocols utilitzats per diferents dispositius. Això és útil si intenteu dissenyar complements compatibles amb unitats existents. Normalment, la captura de dades es complica pel soroll de fons present en els receptors que produeix moltes transicions falses i dificulta el descobriment de les transmissions reals.

La unitat utilitza un receptor superhet RXB6. Utilitza el xip receptor Synoxo-SYN500R que té una sortida analògica RSSI. Aquesta és efectivament una versió emmagatzemada del senyal AGC que s’utilitza per controlar el guany del receptor i proporciona una intensitat de senyal en un ampli rang.

El receptor està controlat per un mòdul ESP8266 (ESP-12F) que converteix el senyal RSSI. També condueix una petita pantalla OLED local (SSD1306). L'electrònica també pot captar informació de temps sobre transicions de dades.

Les captures es poden activar localment mitjançant un botó de la unitat. Les dades capturades es guarden a fitxers per analitzar-les posteriorment.

El mòdul ESP12 executa un servidor web per donar accés als fitxers i les captures també es poden activar des d’aquí.

L’instrument funciona amb una petita bateria recarregable LIPO. Això proporciona un temps d’execució raonable i l’electrònica té un baix corrent en repòs quan no s’utilitza.

Pas 1: es requereixen components i eines

Nota important:

He trobat que alguns receptors RXB6 433Mhz tenen una sortida RSSI que no funciona, tot i que l'AGC i la resta de funcionalitats estan bé. Sospito que es poden fer servir alguns xips Syn500R clonats. He comprovat que els receptors etiquetats com a WL301-341 utilitzen un xip compatible amb Syn5500R i l'RSI és funcional. També tenen l'avantatge de no fer servir una llauna de detecció, cosa que facilita la modificació del condensador AGC. Recomanaria utilitzar aquestes unitats.

Es necessiten els components següents

Mòdul wifi ESP-12F

  • Regulador de 3.3V xc6203
  • Condensador 220uF 6V
  • 2 díodes schottky
  • Polsador de 6 mm
  • n canal MOSFET per ex. AO3400
  • canal MOSFET p. ex. AO3401
  • resistències 2x4k7, 3 x 100K, 1 x 470K
  • petit tros de tauler de prototipatge
  • Receptor RXB6 o WL301-341 superhet de 433 MHz
  • Pantalla OLED SSD1306 0,96 (versió SPI d'un sol color)
  • Bateria LIPO 802030 400mAh
  • Connector de 3 pins per carregar
  • Connecteu filferro
  • Filferro de coure esmaltat autofluent
  • Resina epoxídica
  • Cinta de doble cara
  • Recinte imprès en 3D

Eines necessàries

  • Soldador de punt fi
  • Trena desoldadora
  • Pinces
  • Alicates

Pas 2: esquema

Esquema
Esquema

El circuit és bastant senzill.

Un regulador LDO 3.3V converteix el LIP a 3.3V que necessita el mòdul ESP-12F.

L'alimentació es subministra tant a la pantalla com al receptor mitjançant dos MOSFETS de commutació, de manera que estan apagats quan el mòdul ESP està inactiu.

El botó engega el sistema subministrant 3,3V a l’entrada EN de l’ESP8266. El GPIO5 ho mantindrà mentre el mòdul estigui actiu. El botó també es pot controlar mitjançant GPIO12. Quan s’allibera GPIO5, l’EN s’elimina i la unitat s’apaga.

GPIO4 supervisa la línia de dades del receptor. El senyal RSSI és monitoritzat per l'AGC mitjançant un divisor de potencial 2: 1.

La pantalla SSD1306 es controla mitjançant SPI que consta de 5 senyals GPIO. Pot ser possible utilitzar una versió I2C, però caldrà canviar la biblioteca utilitzada i tornar a mapar alguns dels GPIO.

Pas 3: modificació del receptor

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

Tal com es proporciona, el RXB6 no fa que el senyal RSSI estigui disponible als seus pins de dades externs.

Una simple modificació ho fa possible. El connector de senyal DER de la unitat és en realitat només una repetició del senyal de senyal de dades. Es connecten mitjançant la resistència de 0 Ohm etiquetada com R6. S’ha d’eliminar mitjançant un soldador. Ara cal enllaçar el component etiquetat R7. La part superior és en realitat el senyal RSSI i la part inferior es dirigeix al connector DER. Es podria utilitzar una resistència de 0 Ohm, però acabo de connectar amb una mica de filferro. Aquestes ubicacions són accessibles fora de la llauna metàl·lica que no necessita ser eliminada per a aquesta modificació.

La modificació es pot provar connectant un voltímetre a DER i GND amb el receptor encès. Mostrarà una tensió entre uns 0,4 V (sense alimentació rebuda) i uns 1,8 V amb una font local de 433 MHz (per exemple, un control remot).

La segona modificació no és del tot imprescindible, però és bastant desitjable. Tal com es proporciona, el temps de resposta AGC del receptor està configurat per ser bastant lent, trigant uns quants centenars de mil·lisegons a respondre al senyal rebut. Això redueix la resolució de temps durant les captures RSSI i també fa que sigui menys sensible utilitzar RSSI com a activador de la captura de dades.

Hi ha un condensador únic que controla els temps de resposta de l’AGC, però, malauradament, es troba sota la llauna metàl·lica. En realitat, és bastant fàcil treure la llauna de protecció, ja que només està subjecta per tres orelles i es pot apreciar escalfant cadascuna d’aquestes al seu torn i palançant-la amb un petit tornavís. Un cop retirats, es poden netejar els forats per tornar-los a muntar mitjançant una trena de soldadura o tornada a perforar amb una broca d’uns 0,8 mm.

La modificació consisteix a eliminar el condensador AGC C4 existent i substituir-lo per un condensador de 0,22 uF. Això accelera la resposta AGC aproximadament 10 vegades. No té cap efecte perjudicial sobre el rendiment del receptor. A la imatge mostro un tall de pista i un enllaç a aquesta pista des del condensador AGC. Això no és necessari, però fa que el punt AGC estigui disponible en un coixinet fora de la llauna de protecció que hi ha sota el vidre en cas que es volgués afegir una capacitat addicional. No he necessitat fer-ho. Després es pot substituir la projecció.

Si utilitzeu la unitat WL301-341 RX, la foto ho mostra amb el condensador AGC ressaltat. També es mostra el pin del senyal RSSI. En realitat, això no està relacionat amb res. Només es pot connectar un fil fi directament al passador. Alternativament, els dos pins de pont central estan connectats entre si i tots dos porten la sortida de dades. Es pot tallar la traça entre ells i, a continuació, enllaçar el RSSI amb el de recanvi per fer disponible el senyal RSSI en una sortida de pont.

Pas 4: construcció

Construcció
Construcció
Construcció
Construcció
Construcció
Construcció
Construcció
Construcció

Hi ha uns deu components necessaris fora del mòdul ESP-12. Aquests es poden maquillar i connectar en una peça de tauler de prototipatge. He utilitzat una placa de prototipatge específica per a ESP que he utilitzat per facilitar el muntatge del regulador i altres components de smd. Es connecta directament a la part superior del mòdul ESP-12.

La caixa que he utilitzat és un disseny imprès en 3D amb 3 sagnats a la base per agafar el mòdul receptor, pantalla i esp. Té un retall per a la pantalla i orificis per al punt de càrrega i un polsador que s’han d’inserir i fixar amb una petita quantitat de resina de potoxi.

He utilitzat filferro de connexió per fer les connexions entre els 3 mòduls, el punt de càrrega i els botons. i després fixeu-los al seu lloc mitjançant cinta lateral doble per a l'ESP i el receptor i petites gotes d'epoxi per mantenir els laterals de la pantalla al seu lloc. La bateria es connecta al punt de càrrega i es munta a la part superior del receptor mitjançant cinta de doble cara.

Pas 5: programari i configuració

El programari està integrat a l'entorn Arduino.

El codi font d’això es troba a https://github.com/roberttidey/RF433Analyser El codi pot tenir algunes constants per canviar les contrasenyes per motius de seguretat abans de compilar-les i enviar-les al dispositiu ES8266.

  • WM_PASSWORD defineix la contrasenya que utilitza wifiManager quan configura el dispositiu a la xarxa wifi local
  • update_password defineix una contrasenya que s’utilitza per permetre les actualitzacions del firmware.

Quan s’utilitza per primera vegada, el dispositiu entra en mode de configuració wifi. Utilitzeu un telèfon o una tauleta per connectar-vos al punt d’accés configurat pel dispositiu i aneu a 192.168.4.1. Des d’aquí podeu seleccionar la xarxa wifi local i introduir-ne la contrasenya. Això només s’ha de fer una vegada o si canvieu les xarxes wifi o les contrasenyes.

Un cop el dispositiu s'hagi connectat a la seva xarxa local, escoltarà les ordres. Suposant que la seva adreça IP és 192.168.0.100, primer utilitzeu 192.168.0.100:AP_PORT/upload per carregar els fitxers a la carpeta de dades. A continuació, això permetrà que 192.168.0.100/edit visualitzi i carregui altres fitxers i també que 192.168.0.100 accedeixi a la interfície d'usuari.

Els punts que cal tenir en compte al programari són

  • L’ADC de l’ESP8266 es pot calibrar per millorar-ne la precisió. Una cadena al fitxer de configuració estableix els valors en brut obtinguts per a dos voltatges d'entrada. Això no és especialment important ja que RSSI és un senyal bastant relatiu en funció de l’antena, etc.
  • El voltatge RSSI a db és raonablement lineal, però es corba als extrems. El programari té un ajust cúbic per millorar la precisió.
  • La major part de l'aritmètica es realitza mitjançant enters enters escalats, de manera que els valors RSSI són en realitat 100 vegades els reals. Els valors escrits en fitxers o mostrats es tornen a convertir.
  • El programari utilitza una màquina d'estats senzilla per controlar la captura de transicions de dades i RSSI.
  • Les transicions de dades es controlen mitjançant una rutina de servei d’interrupcions. El processament normal del bucle Arduino està suspès durant la captura de dades i el gos de vigilància es manté viu localment. Es tracta d’intentar millorar la latència d’interrupcions per mantenir les mesures de temps tan fidels com sigui possible.

Configuració

Això es guarda a l'esp433Config.txt.

Per a la captura RSSI es pot configurar l'interval i la durada de mostreig.

Per a la captura de dades es pot configurar el nivell d'activació RSSI, el nombre de transicions i la durada màxima. Un nivell d'activació adequat és d'aproximadament + 20 dB al fons sense nivell de senyal. Una cadena pulseWidths també permet una categorització senzilla de les amplades de pols per facilitar l'anàlisi. Cada línia registrada té pulseLevel, ample en micorsegons i el codi que és l’índex de la cadena pulseWidths que és superior a l’amplada mesurada.

CalString pot millorar la precisió de l’ADC.

idleTimeout controla el nombre de mil·lisegons d'inactivitat (sense captures) abans que el dispositiu s'apagui automàticament. Establir-lo a 0 vol dir que no s’espera.

La configuració dels tres botons controla el que distingeix les pulsacions curtes de botó mitjà i llarg.

displayUpdate proporciona l'interval d'actualització de la pantalla local.

Pas 6: Ús

L'aparell s'encén prement el botó durant poc temps.

La pantalla mostrarà inicialment l'adreça IP local durant uns segons abans de començar a mostrar el nivell RSSI en temps real.

Si premeu un botó curt, s'iniciarà una captura RSSI al fitxer. Normalment, això finalitzarà quan finalitzi la durada de l'RSI, però una altra pulsació curta del botó també finalitzarà la captura.

Si premeu un botó mitjà, s'iniciarà una captura de transició de dades. La pantalla mostrarà l'espera del disparador. Quan l'RSI superi el nivell d'activació, començarà a capturar transicions de dades temporitzades pel nombre de transicions especificat.

Si manteniu premut el botó durant més temps que el botó de llarga durada, s’apagarà la unitat.

Les ordres de captura també es poden iniciar des de la interfície web.

Pas 7: interfície web

Interfície web
Interfície web
Interfície web
Interfície web

L’accés al dispositiu per la seva adreça IP mostra una interfície web amb 3 pestanyes; Captures, estat i configuració.

La pantalla de captures mostra els fitxers capturats actualment. Es pot mostrar el contingut d'un fitxer fent clic sobre el seu nom. També hi ha botons de supressió i descàrrega de cada fitxer.

També hi ha botons de captura RSSI i dades que es poden utilitzar per iniciar una captura. Si es dóna un nom de fitxer, s'utilitzarà en cas contrari es generarà un nom per defecte.

La pestanya de configuració mostra la configuració actual i permet canviar i desar els valors.

La interfície web admet les trucades següents

/ edit - accés al sistema de fitxers del dispositiu; es pot utilitzar per descarregar fitxers de mesures

  • / status: retorna una cadena que conté detalls d'estat
  • / loadconfig: retorna una cadena que conté els detalls de la configuració
  • / saveconfig: envieu i deseu una cadena per actualitzar la configuració
  • / loadcapture: retorna una cadena que conté mesures d'un fitxer
  • / setmeasureindex: canvieu l'índex que s'utilitzarà per a la següent mesura
  • / getcapturefiles: obteniu una cadena amb la llista de fitxers de mesura disponibles
  • / capture: activa la captura de dades o RSSI
  • / firmware: inicia l'actualització del firmware

Recomanat: