Índice:

Analisador RF433: 7 etapas
Analisador RF433: 7 etapas

Vídeo: Analisador RF433: 7 etapas

Vídeo: Analisador RF433: 7 etapas
Vídeo: Демонстрация электронной калибровки (ECal) 2024, Julho
Anonim
RF433Analyser
RF433Analyser
RF433Analyser
RF433Analyser

Este instrutível cria um instrumento de medição para ajudar a analisar as transmissões RF 433MHz que são comumente usadas para comunicações remotas de baixa potência em automação residencial e sensores. Provavelmente, ele poderia ser facilmente modificado para funcionar com transmissões de 315 MHz usadas em alguns países. Isso seria usando a versão de 315 MHz do RXB6 em vez da atual de 433 MHz.

O objetivo do instrumento é duplo. Primeiro, ele fornece um medidor de intensidade de sinal (RSSI) que pode ser usado para examinar a cobertura ao redor de uma propriedade e encontrar quaisquer pontos negros. Em segundo lugar, ele pode capturar dados limpos de transmissores para permitir uma análise mais fácil dos dados e protocolos usados por diferentes dispositivos. Isso é útil se estiver tentando projetar complementos compatíveis para unidades existentes. Normalmente a captura de dados é complicada pelo ruído de fundo presente nos receptores, produzindo muitas transições espúrias e tornando mais difícil descobrir as transmissões verdadeiras.

A unidade usa um receptor RXB6 superhet. Ele usa o chip do receptor Synoxo-SYN500R que possui uma saída analógica RSSI. Esta é efetivamente uma versão em buffer do sinal AGC usado para controlar o ganho do receptor e fornece a força do sinal em uma ampla faixa.

O receptor é monitorado por um módulo ESP8266 (ESP-12F) que converte o sinal RSSI. Ele também dirige um pequeno display OLED local (SSD1306). A eletrônica também pode capturar informações de tempo nas transições de dados.

As capturas podem ser acionadas localmente por um botão na unidade. Os dados capturados são salvos em arquivos para análise posterior.

O módulo ESP12 executa um servidor web para dar acesso aos arquivos e as capturas também podem ser acionadas a partir daqui.

O instrumento é alimentado por uma pequena bateria recarregável LIPO. Isso dá um tempo de execução razoável e os componentes eletrônicos têm uma corrente quiescente baixa quando não estão em uso.

Etapa 1: Componentes e ferramentas necessários

Nota importante:

Eu descobri que alguns receptores RXB6 de 433Mhz têm uma saída RSSI que não funciona, embora o AGC e o resto da funcionalidade estejam OK. Eu suspeito que pode haver alguns chips do clone Syn500R sendo usados. Descobri que os receptores rotulados como WL301-341 usam um chip compatível com Syn5500R e o RSSI é funcional. Eles também têm a vantagem de não usar uma blindagem, tornando o capacitor AGC mais fácil de modificar. Eu recomendaria usar essas unidades.

Os seguintes componentes são necessários

Módulo wi-fi ESP-12F

  • Regulador de 3,3 V xc6203
  • Capacitor 220uF 6V
  • 2 diodos schottky
  • Botão de pressão de 6 mm
  • n canal MOSFET, por exemplo AO3400
  • canal p MOSFET, por exemplo AO3401
  • resistores 2x4k7, 3 x 100K, 1 x 470K
  • pequeno pedaço de placa de prototipagem
  • Receptor RXB6 ou WL301-341 superhet 433 MHz
  • SSD1306 Tela OLED de 0,96 (versão SPI de cor única)
  • Bateria LIPO 802030 400mAh
  • Conector de 3 pinos para carregamento
  • Fio de engate
  • Fio de cobre esmaltado autofluente
  • Resina epóxi
  • Fita dupla face
  • Invólucro impresso em 3D

Ferramentas necessárias

  • Ferro de solda de ponta fina
  • Trança desolder
  • Pinças
  • Alicate

Etapa 2: Esquemático

Esquemático
Esquemático

O circuito é bastante simples.

Um regulador LDO 3,3 V converte o LIP em 3,3 V necessário para o módulo ESP-12F.

A energia é fornecida ao visor e ao receptor por meio de dois MOSFETs de comutação, de forma que eles sejam desligados quando o módulo ESP estiver em repouso.

O botão inicia o sistema fornecendo 3,3 V à entrada EN do ESP8266. O GPIO5 então sustenta isso enquanto o módulo está ativo. O botão também é monitorado usando GPIO12. Quando o GPIO5 é liberado, o EN é removido e a unidade é desligada.

A linha de dados do receptor é monitorada pelo GPIO4. O sinal RSSI é monitorado pelo AGC por meio de um divisor de potencial 2: 1.

A exibição do SSD1306 é controlada por meio de SPI, consistindo em 5 sinais GPIO. Pode ser possível usar uma versão I2C, mas isso exigirá a alteração da biblioteca usada e o remapeamento de parte do GPIO.

Etapa 3: Modificação do receptor

Modificação do receptor
Modificação do receptor
Modificação do receptor
Modificação do receptor
Modificação do receptor
Modificação do receptor

Conforme fornecido, o RXB6 não disponibiliza o sinal RSSI em seus pinos de dados externos.

Uma modificação simples torna isso possível. O conector do sinal DER na unidade é, na verdade, apenas uma repetição do sinal do sinal de dados. Eles são ligados entre si através do resistor de 0 Ohm identificado como R6. Isso deve ser removido usando um ferro de solda. O componente rotulado como R7 agora deve ser vinculado. A extremidade superior é na verdade o sinal RSSI e a parte inferior vai para o conector DER. Pode-se usar um resistor de 0 Ohm, mas eu apenas conectei com um fio. Esses locais são acessíveis fora da lata de blindagem de metal, que não precisa ser removida para esta modificação.

A modificação pode ser testada conectando um voltímetro entre DER e GND com o receptor ligado. Ele mostrará uma tensão entre cerca de 0,4 V (sem energia recebida) e cerca de 1,8 V com uma fonte local de 433 MHz (por exemplo, um controle remoto).

A segunda modificação não é absolutamente essencial, mas bastante desejável. Conforme fornecido, o tempo de resposta do AGC do receptor é definido para ser bastante lento, levando várias centenas de milissegundos para responder ao sinal recebido. Isso reduz o tempo de resolução durante as capturas RSSI e também torna menos responsivo o uso do RSSI como gatilho para a captura de dados.

Existe um único capacitor que controla os tempos de resposta do AGC, mas, infelizmente, está localizado sob a lata de blindagem de metal. Na verdade, é bastante fácil remover a lata de tela, pois ela é presa apenas por 3 alças e pode ser removida aquecendo cada uma delas por vez e levantando-a com uma pequena chave de fenda. Uma vez removido, pode-se limpar os orifícios para remontagem usando uma trança de solda ou re-furando com uma broca de cerca de 0,8 mm.

A modificação é remover o capacitor C4 AGC existente e substituí-lo por um capacitor de 0,22uF. Isso acelera a resposta do AGC em cerca de 10 vezes. Não tem nenhum efeito prejudicial no desempenho do receptor. Na imagem, mostro um corte de trilha e um link para essa trilha do capacitor AGC. Isso não é necessário, mas disponibiliza o ponto AGC em uma almofada fora da lata de blindagem sob o cristal, caso alguém queira adicionar capacitância extra de volta. Não precisei fazer isso. A tela pode então ser substituída.

Se estiver usando a unidade WL301-341 RX, a foto mostra isso com o capacitor AGC destacado. O pino de sinal RSSI também é mostrado. Na verdade, isso não está conectado a nada. Basta conectar um fio fino diretamente ao pino. Como alternativa, os dois pinos de jumper centrais são conectados juntos e ambos carregam a saída de dados. O traço entre eles pode ser cortado e, em seguida, o RSSI vinculado ao sobressalente para disponibilizar o sinal RSSI em uma saída de jumper.

Etapa 4: construção

Construção
Construção
Construção
Construção
Construção
Construção
Construção
Construção

Existem cerca de 10 componentes necessários fora do módulo ESP-12. Eles podem ser feitos e conectados em uma placa de prototipagem. Usei uma placa de prototipagem específica do ESP para facilitar a montagem do regulador e de outros componentes smd. Ele se conecta diretamente na parte superior do módulo ESP-12.

A caixa que usei é um desenho 3D impresso com 3 recortes na base para levar o receptor, display e módulo esp. Possui um recorte para o display e orifícios para o ponto de carga e botão que deve ser inserido e preso com uma pequena quantidade de resina poxy.

Usei fio de gancho para fazer as conexões entre os 3 módulos, o ponto de carga e os botões. e, em seguida, fixe-os no lugar usando fita dupla-face para o ESP e o receptor e pequenas gotas de epóxi para segurar as laterais da tela no lugar. A bateria é conectada ao ponto de carga e montada na parte superior do receptor usando fita dupla-face.

Etapa 5: Software e configuração

O software é construído no ambiente Arduino.

O código-fonte para isso está em https://github.com/roberttidey/RF433Analyser O código pode ter algumas constantes de senhas alteradas para fins de segurança antes de ser compilado e atualizado para o dispositivo ES8266.

  • WM_PASSWORD define a senha usada pelo wifiManager ao configurar o dispositivo na rede wi-fi local
  • update_password define uma senha usada para permitir atualizações de firmware.

Quando usado pela primeira vez, o dispositivo entra no modo de configuração wi-fi. Use um telefone ou tablet para se conectar ao ponto de acesso configurado pelo dispositivo e navegue até 192.168.4.1. A partir daqui, você pode selecionar a rede wi-fi local e inserir sua senha. Isso precisa ser feito apenas uma vez ou ao alterar redes wi-fi ou senhas.

Assim que o dispositivo estiver conectado à rede local, ele ouvirá os comandos. Supondo que seu endereço IP seja 192.168.0.100, use primeiro 192.168.0.100:AP_PORT/upload para carregar os arquivos na pasta de dados. Isso permitirá que 192.168.0.100/edit visualize e carregue outros arquivos e também permitirá que 192.168.0.100 acesse a interface do usuário.

Os pontos a serem observados no software são

  • O ADC no ESP8266 pode ser calibrado para melhorar sua precisão. Uma string no arquivo de configuração define os valores brutos obtidos para duas tensões de entrada. Isso não é particularmente importante, pois RSSI é um sinal bastante relativo, dependendo da antena, etc.
  • A tensão RSSI para db é razoavelmente linear, mas apresenta curvas nos extremos. O software tem um ajuste cúbico para melhorar a precisão.
  • A maior parte da aritmética é feita usando números inteiros em escala, de modo que os valores RSSI são, na verdade, 100 vezes o real. Os valores gravados em arquivos ou exibidos são convertidos de volta.
  • O software usa uma máquina de estado simples para controlar a captura de RSSI e transições de dados.
  • As transições de dados são monitoradas usando uma rotina de serviço de interrupção. O processamento normal do loop do Arduino é suspenso durante a captura de dados e o watchdog é mantido ativo localmente. Isso é para tentar melhorar a latência de interrupção para manter as medições de tempo o mais fiéis possível.

Configuração

Isso é mantido no esp433Config.txt.

Para a captura RSSI, o intervalo de amostragem e a duração podem ser configurados.

Para captura de dados, o nível de disparo RSSI, o número de transições e a duração máxima podem ser configurados. Um nível de disparo adequado é de cerca de + 20dB no plano de fundo sem nível de sinal. Uma string pulseWidths também permite a categorização simples das larguras de pulso para tornar a análise mais fácil. Cada linha registrada tem pulseLevel, largura em microssegundos e o código que é o índice na string pulseWidths que é maior do que a largura medida.

CalString pode melhorar a precisão do ADC.

idleTimeout controla o número de milissegundos de inatividade (sem capturas) antes que o dispositivo desligue automaticamente. Defini-lo como 0 significa que ele não atingirá o tempo limite.

As três configurações de botão controlam o que distingue pressionamentos de botão curtos, médios e longos.

displayUpdate fornece o intervalo de atualização de exibição local.

Etapa 6: Uso

A unidade é ligada pressionando o botão por um breve período.

O display exibirá inicialmente o endereço IP local por alguns segundos antes de começar a exibir o nível RSSI em tempo real.

Um breve pressionamento do botão iniciará uma captura RSSI para o arquivo. Normalmente, isso terminará quando a duração do RSSI terminar, mas um novo pressionamento de botão curto também encerrará a captura.

Um pressionamento médio do botão iniciará uma captura de transição de dados. A tela mostrará aguardando o gatilho. Quando o RSSI fica acima do nível de disparo, ele começa a capturar as transições de dados cronometradas para o número de transições especificado.

Manter o botão pressionado por mais tempo do que o botão de longa duração desligará a unidade.

Os comandos de captura também podem ser iniciados na interface da web.

Etapa 7: Interface da Web

Interface web
Interface web
Interface web
Interface web

Acessar o dispositivo por seu endereço IP mostra uma interface web com 3 guias; Capturas, status e configuração.

A tela de captura mostra os arquivos capturados atualmente. O conteúdo de um arquivo pode ser mostrado clicando em seu nome. Existem também botões de exclusão e download para cada arquivo.

Também existem botões de captura RSSI e captura de dados que podem ser usados para iniciar uma captura. Se um nome de arquivo for fornecido, ele será usado, caso contrário, um nome padrão será gerado.

A guia config mostra a configuração atual e permite que svalues sejam alterados e salvos.

A interface da web suporta as seguintes chamadas

/ editar - acessa o sistema de arquivamento do dispositivo; pode ser usado para baixar arquivos de medidas

  • / status - retorna uma string contendo detalhes de status
  • / loadconfig -retorna uma string contendo detalhes de configuração
  • / saveconfig - envia e salva uma string para atualizar a configuração
  • / loadcapture - retorna uma string contendo medidas de um arquivo
  • / setmeasureindex - altera o índice a ser usado para a próxima medida
  • / getcapturefiles - obtém uma string com a lista de arquivos de medidas disponíveis
  • / capture - captura de gatilho de RSSI ou dados
  • / firmware - iniciar atualização de firmware

Recomendado: