No description
  • C++ 94.3%
  • C 5.7%
Find a file
2026-04-07 16:14:23 -03:00
include chore: initial commit 2026-04-07 16:14:23 -03:00
src chore: initial commit 2026-04-07 16:14:23 -03:00
.gitignore chore: initial commit 2026-04-07 16:14:23 -03:00
INSTRUCOES.md chore: initial commit 2026-04-07 16:14:23 -03:00
platformio.ini chore: initial commit 2026-04-07 16:14:23 -03:00
projeto.md chore: initial commit 2026-04-07 16:14:23 -03:00
README.md chore: initial commit 2026-04-07 16:14:23 -03:00

Spectro - RF Multi-Band Analyzer

Analisador de espectro RF multi-banda DIY com dashboard web em tempo real, autenticacao RFID e proxy reverso para AirGrid M5.

O que e

Sistema portatil para diagnostico de interferencia RF em nivel ISP, cobrindo:

  • 2.4 GHz - Varredura completa de 126 canais com 4x nRF24L01+ PA/LNA
  • 5.8 GHz - Integracao com AirGrid M5 via Ethernet (airView)
  • BLE - Scan de dispositivos Bluetooth Low Energy
  • 433 MHz - Deteccao de atividade (RX/TX)
  • WiFi - Scan de redes com RSSI e canal
  • TX controlado - Geracao de interferencia para testes (CW, Flood, Channel Hop)

Arquitetura

                        +---------------+
                        |  AirGrid M5   | 5.8GHz
                        |  (airView)    |
                        +-------+-------+
                                | Ethernet
                                |
+---------------------+    +---------------------------+
|    SENSOR NODE      |    |      MASTER NODE          |
|    ESP32-S3 #1      |    |      ESP32-S3 #2          |
|                     |    |                           |
| 4x nRF24L01+ PA/LNA|    | W5500 Ethernet            |
| 433MHz RX + TX      |<-->| RFID RC522                |
|                     |ESP | BLE (NimBLE)              |
| Varredura 2.4GHz   |NOW | WiFi AP oculto            |
| Interferencia TX    |    | Web Server + WebSocket    |
+---------------------+    +---------------------------+
                                    |
                              WiFi AP oculto
                                    |
                            +---------------+
                            |   Dashboard   |
                            | 192.168.4.1   |
                            +---------------+

Hardware necessario

Componente Qtd Node Funcao
ESP32-S3 DevKitC-1 2x Sensor + Master Processamento
nRF24L01+ PA/LNA 4x Sensor Varredura/TX 2.4GHz
Shield Ethernet W5500 1x Master Conexao AirGrid M5
RFID RC522 1x Master Autenticacao WiFi
Modulo 433MHz RX 1x Sensor Receptor 433MHz
Modulo 433MHz TX 1x Sensor Transmissor 433MHz
AirGrid M5 1x Externo Espectro 5.8GHz (PoE)
Regulador 3.3V 4A+ 1x Sensor Alimentacao nRF24
Capacitores 100uF+100nF 4 pares Sensor Estabilidade nRF24
Fonte 5V 6A 1x Sensor Alimentacao principal

Documentacao

  • INSTRUCOES.md - Guia completo de montagem, pinagem, ligacao eletrica e troubleshooting
  • projeto.md - Especificacao do projeto, arquitetura e metricas

Compilacao e Upload

Requisitos

  • PlatformIO (CLI ou extensao VS Code)
  • Python 3.8+ (para PlatformIO)
  • Cabo USB-C (ESP32-S3 DevKitC-1 usa USB nativo)

Instalar PlatformIO

Windows

  1. Instale o Python 3 (marque "Add to PATH")
  2. Abra o Prompt de Comando ou PowerShell:
pip install platformio
pio --version

Ou instale via VS Code: Extensions > busque "PlatformIO IDE" > Install.

Linux (Debian/Ubuntu)

# Dependencias do sistema
sudo apt update
sudo apt install python3 python3-venv git

# Instalar PlatformIO em venv (recomendado)
python3 -m venv ~/.platformio-venv
~/.platformio-venv/bin/pip install platformio

# Criar alias (adicione ao ~/.bashrc ou ~/.zshrc)
echo 'alias pio="$HOME/.platformio-venv/bin/pio"' >> ~/.bashrc
source ~/.bashrc

# Verificar
pio --version

# Permissao de porta serial (requer logout)
sudo usermod -a -G dialout $USER

Ou via pip global (se o sistema permitir):

pip install platformio

macOS

# Via Homebrew
brew install platformio

# Ou via pip
pip3 install platformio

# Verificar
pio --version

Ou instale via VS Code: Extensions > busque "PlatformIO IDE" > Install.

Compilar

# Clonar ou navegar ate o projeto
cd Spectro

# Compilar Sensor Node
pio run -e sensor_node

# Compilar Master Node
pio run -e master_node

# Compilar ambos
pio run

A primeira compilacao baixa automaticamente o toolchain ESP32-S3 e todas as bibliotecas.

Upload

Conecte o ESP32-S3 via USB-C. Se nao for detectado, segure BOOT enquanto conecta.

# Upload Sensor Node
pio run -t upload -e sensor_node

# Upload Master Node
pio run -t upload -e master_node

Monitor Serial

# Sensor Node
pio device monitor -e sensor_node

# Master Node
pio device monitor -e master_node

Saida esperada do Sensor:

=============================
  Spectro - Sensor Node
=============================
[INIT] Inicializando modulos nRF24...
[INIT] 4 modulos OK
[INIT] Inicializando ESP-NOW...
[INIT] Sensor Node pronto!

Saida esperada do Master:

=============================
  Spectro - Master Node
  RFID + AirGrid + AP Oculto
=============================
[INIT] Inicializando Ethernet W5500...
[INIT] Ethernet OK
[WIFI] AP Oculto: 'Spectro-xxxx' canal 6
[WIFI] IP: 192.168.4.1
[INIT] Inicializando ESP-NOW...
[INIT] Inicializando RFID RC522...
[INIT] RFID OK
[INIT] Inicializando BLE...
[WEB] Servidor iniciado na porta 80
[INIT] Master Node pronto!
[INIT] Acesse: http://192.168.4.1

Limpar build

pio run -t clean

Atualizar dependencias

pio pkg update

Dashboard Web

Conecte ao WiFi Spectro-xxxx (senha: spectro123) e acesse http://192.168.4.1.

Funcionalidades:

  • Espectro 2.4GHz - Grafico de 126 canais com overlay de bandas WiFi e TX
  • Configuracao de modulos - Selecao individual de modo (RX/TX/Standby), canal WiFi alvo, potencia e tipo de TX
  • Presets - Configuracoes rapidas (Todos RX, 1TX+3RX, 2TX+2RX, Todos TX)
  • Interferencia por canal - Barra de 0-100% por canal WiFi (1-13)
  • Redes WiFi - Lista de SSIDs com canal e RSSI
  • BLE - Contagem de dispositivos e RSSI medio
  • RFID - Status de autenticacao, cadastro de cartoes, modo master
  • AirGrid M5 - Sinal, qualidade, frequencia e acesso ao AirOS via proxy

LED RGB de Status

LED WS2812 integrado do ESP32-S3-DevKitC-1 (GPIO 48):

Cor Estado Significado
Verde fixo OK_IDLE Tudo conectado, standby
Vermelho fixo ERROR_SOLID Falha critica (nenhum nRF24)
Vermelho piscando ERROR_BLINK Sensor/master desconectado
Azul piscando SCANNING Modulos em modo RX scan
Roxo piscando TX_NOISE Modulos em modo TX interferencia

Estrutura do Projeto

Spectro/
├── include/
│   ├── config.h            # Pinagem e constantes do sistema
│   ├── protocol.h          # Protocolo ESP-NOW (pacotes, enums)
│   └── status_led.h        # LED RGB WS2812 (estados visuais)
│
├── src/
│   ├── sensor_node/
│   │   ├── main.cpp            # Entry point do sensor
│   │   ├── nrf24_manager.h     # Gerenciamento dos 4x nRF24L01+
│   │   ├── rf_scanner.h        # Varredura de espectro 2.4GHz
│   │   ├── rf_transmitter.h    # Geracao de interferencia TX
│   │   └── sensor_espnow.h     # Comunicacao ESP-NOW (lado sensor)
│   │
│   └── master_node/
│       ├── main.cpp            # Entry point do master
│       ├── master_espnow.h     # Comunicacao ESP-NOW (lado master)
│       ├── wifi_analyzer.h     # Scan WiFi (SSID, RSSI, canal)
│       ├── ble_analyzer.h      # Scan BLE (NimBLE)
│       ├── airgrid_client.h    # Cliente HTTP + proxy AirGrid M5
│       ├── rfid_auth.h         # Autenticacao RFID RC522
│       ├── web_server.h        # Web server + WebSocket + API REST
│       └── web_content.h       # Dashboard HTML/CSS/JS embutido
│
├── platformio.ini          # Configuracao de build (2 environments)
├── INSTRUCOES.md           # Guia de montagem e pinagem
├── projeto.md              # Especificacao do projeto
└── README.md               # Este arquivo

Dependencias (instaladas automaticamente)

Sensor Node

Biblioteca Versao Funcao
RF24 ^1.4.9 Controle dos nRF24L01+
ArduinoJson ^7.3.0 Serializacao de dados

Master Node

Biblioteca Versao Funcao
ESPAsyncWebServer ^3.6.0 Web server assincrono
NimBLE-Arduino ^1.4.0 BLE stack
MFRC522 ^1.4.11 Leitor RFID RC522
Ethernet_Generic ^2.8.0 Driver W5500
ArduinoJson ^7.3.0 Serializacao de dados

Licenca

Uso educacional e diagnostico. Geracao de interferencia RF so deve ser utilizada em ambientes controlados e de acordo com a legislacao local.