SuperDMZ
Voltar ao blog
🛠️
Updates · · Equipe SuperDMZ

SuperDMZ Arduino v1.1.0: ProvisioningPortal production-grade + novo exemplo SmartIoT

Quatro horas depois do v1.0.2, soltamos v1.1.0 com os dois exemplos que faltavam pra alguém transformar a lib em produto real. Captive portal com scan de WiFi, dashboard live no tunnel, OTA pelo próprio túnel e botão GPIO0 com reconfig parcial.

O que mudou

Recebemos um feedback objetivo logo depois do lançamento: "os exemplos não são suficientes pra virar produto — quero captive portal pra config de WiFi, dashboard pra ver status do SuperDMZ e telemetria de sensor". Justo. v1.1.0 entrega isso.

ProvisioningPortal reescrito (production-grade)

O exemplo continua chamando ProvisioningPortal mas mudou tudo por dentro:

  • Scan de redes WiFi dentro do captive portal — o cliente final escolhe o SSID num dropdown ordenado por RSSI, com barrinhas visuais (▂▄▆█), em vez de digitar o nome da rede à mão e errar a primeira vez.
  • Transição AP→STA sem reboot — depois de salvar a config, o ESP já entra em modo cliente. Antes era preciso reiniciar; agora a página de "Saved" aparece e em 5 segundos o tunnel está no ar.
  • Dashboard live servida pelo próprio tunnel mostrando 3 cards: estado do SuperDMZ (URL pública, bytes in/out), WiFi (SSID, IP, RSSI com barrinhas, MAC) e Sistema (chip, free heap, uptime). Auto-refresh a cada 5 s via /api/status.
  • Botão GPIO0 (BOOT) com dois modos:
    • Segure 3 segundos: limpa só WiFi, mantém o token, volta pro modo AP. Útil quando o cliente troca de rede.
    • Segure 10 segundos: factory reset completo, limpa tudo incluindo o token. Útil pra revender o dispositivo.
  • SSID do AP derivado do MAC: SuperDMZ-Setup-A4F2. Em sala com 10 ESPs cada um aparece com sufixo único — sem colisão.

Novo exemplo: SmartIoT (template completo)

Pra quem quer ir mais direto, o exemplo SmartIoT tem tudo do ProvisioningPortal mais:

  • Telemetria de sensores — temperatura e umidade. O exemplo usa valores sintéticos com random walk pra rodar em qualquer placa sem precisar de hardware extra. Você troca readTempC() e readHumidity() por leitura real do seu DS18B20/BME280/SHT3x/etc.
  • Sparkline da temperatura no dashboard — gráfico simples em vanilla JS (sem Chart.js ou outras libs externas) mostrando os últimos 60 segundos de leitura.
  • Endpoint JSON /api/telemetry com tudo (sensores, estado do tunnel, WiFi, sistema) pra integração com sistemas externos. Faça curl da URL pública e tem o estado completo do dispositivo num GET.
  • OTA pelo próprio tunnel — POST de um .bin em /api/ota e o ESP grava firmware novo e reinicia. Update remoto de qualquer lugar do planeta sem precisar acesso físico, sem rede local, sem servidor extra.
  • Botão Reboot no dashboard pra reinício remoto.

Qual escolher

A escolha do exemplo vai depender de onde você está no ciclo:

ExemploLinhasPra quê
HelloWorld~50Testar a lib em 5 min. Credenciais hardcoded.
WebServerBridge~80Integrar com seu projeto que já usa ESPAsyncWebServer.
ProvisioningPortal~280Aparelho IoT real sem sensor — câmera, painel de controle, gateway etc.
SmartIoT~380Template pra produto comercial completo, com sensor e telemetria.

Como atualizar

No Arduino IDE: o Library Manager detecta a versão nova automaticamente em até 1 hora. Abre Sketch → Include Library → Manage Libraries…, busca SuperDMZ, clica Update. Você pode forçar pré-tempo baixando o ZIP da v1.1.0 e instalando via Add .ZIP Library.

No PlatformIO: o ^1.0.2 que estava no seu platformio.ini já vai pegar a v1.1.0 no próximo pio pkg update (semver caret cobre tudo na mesma major).

Repo e issues

Código, exemplos e roadmap: github.com/superdmz/SuperDMZ-Arduino. Pedidos de feature (próxima placa, próximo recurso) e bugs: issues do GitHub.

Próxima: v1.1.x se aparecer bug. Próxima major v1.2: Arduino UNO R4 WiFi e MKR WiFi 1010.


Quer experimentar o SuperDMZ?

Plano gratuito sem cartão de crédito. Em menos de 60 segundos seu primeiro túnel está no ar.

Criar conta grátis

Mais em Updates