SuperDMZ Arduino v1.1.0: ProvisioningPortal production-grade + nuevo ejemplo SmartIoT
Cuatro horas después de v1.0.2 lanzamos v1.1.0 con los dos ejemplos que faltaban para que alguien convierta la biblioteca en producto real. Captive portal con scan de WiFi, dashboard live por el tunnel, OTA por el propio tunnel y botón GPIO0 con reconfig parcial.
Qué cambió
Recibimos un feedback objetivo justo después del lanzamiento: "los ejemplos no llegan hasta producto — quiero captive portal para config de WiFi, dashboard para ver estado del SuperDMZ y telemetría de sensor". Justo. v1.1.0 lo entrega.
ProvisioningPortal reescrito (production-grade)
El ejemplo sigue llamándose ProvisioningPortal pero todo cambió por dentro:
- Scan de redes WiFi dentro del captive portal — el cliente final elige el SSID en un dropdown ordenado por RSSI con barritas visuales (▂▄▆█), en vez de escribir el nombre de la red a mano y equivocarse la primera vez.
- Transición AP→STA sin reboot — después de guardar la config, el ESP entra directo en modo cliente. Antes había que reiniciar; ahora aparece la página "Saved" y en 5 segundos el tunnel está activo.
- Dashboard live servida por el propio tunnel mostrando 3 cards: estado del SuperDMZ (URL pública, bytes in/out), WiFi (SSID, IP, RSSI con barritas, MAC) y Sistema (chip, free heap, uptime). Auto-refresh cada 5 s vía
/api/status. - Botón GPIO0 (BOOT) con dos modos:
- Mantén 3 segundos: limpia solo WiFi, mantiene el token, vuelve al modo AP. Útil cuando el cliente cambia de red.
- Mantén 10 segundos: factory reset completo, limpia todo incluyendo el token. Útil para revender el dispositivo.
- SSID del AP derivado del MAC:
SuperDMZ-Setup-A4F2. En una sala con 10 ESPs cada uno aparece con sufijo único — sin colisión.
Nuevo ejemplo: SmartIoT (template completo)
Para quien quiere ir más directo, el ejemplo SmartIoT tiene todo de ProvisioningPortal más:
- Telemetría de sensores — temperatura y humedad. El ejemplo usa valores sintéticos con random walk para correr en cualquier placa sin hardware extra. Reemplazas
readTempC()yreadHumidity()por lectura real de tu DS18B20/BME280/SHT3x/etc. - Sparkline de temperatura en el dashboard — gráfico simple en vanilla JS (sin Chart.js u otras libs externas) mostrando los últimos 60 segundos de lectura.
- Endpoint JSON
/api/telemetrycon todo (sensores, estado del tunnel, WiFi, sistema) para integración con sistemas externos. Haz curl de la URL pública y tienes el estado completo del dispositivo en un GET. - OTA por el propio tunnel — POST de un
.binen/api/otay el ESP graba firmware nuevo y reinicia. Update remoto desde cualquier lugar del planeta sin acceso físico, sin red local, sin servidor extra. - Botón Reboot en el dashboard para reinicio remoto.
Cuál elegir
Depende de dónde estés en el ciclo:
| Ejemplo | Líneas | Para qué |
|---|---|---|
HelloWorld | ~50 | Probar la biblioteca en 5 min. Credenciales hardcoded. |
WebServerBridge | ~80 | Integrar con tu proyecto que ya usa ESPAsyncWebServer. |
ProvisioningPortal | ~280 | Dispositivo IoT real sin sensor — cámara, panel de control, gateway, etc. |
SmartIoT | ~380 | Template para producto comercial completo, con sensor y telemetría. |
Cómo actualizar
En el Arduino IDE: el Library Manager detecta la versión nueva en hasta 1 hora. Abre Sketch → Include Library → Manage Libraries…, busca SuperDMZ, clic en Update. Puedes forzarlo antes descargando el ZIP de v1.1.0 e instalándolo vía Add .ZIP Library.
En PlatformIO: el ^1.0.2 que tenías en tu platformio.ini ya va a tomar v1.1.0 en el próximo pio pkg update (semver caret cubre toda la major).
Repo e issues
Código, ejemplos y roadmap: github.com/superdmz/SuperDMZ-Arduino. Pedidos de feature (próxima placa, próximo recurso) y bugs: issues de GitHub.
Próxima: v1.1.x si aparecen bugs. Próxima major v1.2: Arduino UNO R4 WiFi y MKR WiFi 1010.
¿Quieres probar SuperDMZ?
Plan gratuito sin tarjeta de crédito. En menos de 60 segundos tu primer túnel está en línea.
Crear cuenta gratisMás en Actualizaciones
Lanzamos SuperDMZ para ESP32 y el camino hasta el Arduino Library Manager
La biblioteca SuperDMZ para Arduino ya está disponible para instalar directamente desde el IDE. Cuatro líneas de código convierten cualquier ESP32 en una dirección pública https://tu-host.dmzgate.com. Aprovechamos también para contar el camino de publicación en GitHub y los bastidores del release.
SuperDMZ v1.8.6: cliente Linux y macOS alcanza paridad con Windows
La release que cierra 3 versiones de gap entre los clientes desktop. Gateway, pausa global y por túnel, programación semanal — ahora también vía CLI en Linux y macOS.