Hardware open source
Tholus Flow
Sensor open source para conteo de personas y detección de proximidad basado en ESP32 + VL53L8CH. Esta página reúne hardware, componentes, montaje, firmware, commissioning y referencias esenciales para publicación y reproducibilidad.
- Categoría
- Nodo sensor open source
- Stack
- ESP32 + VL53L8CH
- Use case
- Conteo de personas y detección de proximidad
- Firmware
- v2.0.1
Build de referencia práctica
Componentes fáciles de conseguir, flashing sencillo y documentación lista para equipos que realmente necesitan replicar el nodo.
Configuración en el dispositivo
Wi-Fi, threshold, ROI y counting line se guardan localmente en el sensor para un mantenimiento más simple.
Pensado para campo
Provisioning AP, calibración en vivo y commissioning sobre la escena real para accesos, pasajes e instalaciones permanentes.
Índice
Componentes
Las partes principales de la build de referencia, visibles de inmediato.
Las imágenes del DOCX ahora viven también en la página: placa, breakout, conector de alimentación y caja forman parte de la documentación pública, no de un adjunto separado.
Overview
Una plataforma de referencia pensada para ser reproducible.
Tholus Flow fue diseñado como un nodo sensor replicable, económico y fácil de montar. La configuración operativa vive en el dispositivo, mientras que el firmware se carga con Arduino IDE y luego se gestiona mediante aplicación o APIs de red.
El objetivo es publicar no solo el código, sino el flujo completo: elección de componentes, notas de sourcing, assembly, wiring, flashing y commissioning real en la entrada o paso que se quiere monitorizar.
Arquitectura
Nodo compacto, bus I²C simple y alimentación separada.
La placa ESP32 con bridge CP2102 fue elegida por comodidad de desarrollo y flashing, mientras que el VL53L8CH añade más versatilidad que un simple ranging gracias al sensor multizona 8×8 y a los datos CNH, útiles también para casos de uso futuros.
Bill of materials
BOM recomendada para la build de referencia.
| Componente | Cant. | Source | Search / reference | Notas de proyecto |
|---|---|---|---|---|
| ESP32 Development Board Type-C CP2102 WiFi | 1 | AliExpress | ESP32 CP2102 Type-C board |
Elegida por flashing sencillo, acceso serial y buena compatibilidad práctica en Mac; preferible con headers ya soldados. |
| VL53L8CH breakout board + pin strip | 1 | AliExpress | VL53L8CH module board |
Sensor ToF multizona 8×8; si no llega preensamblado requiere soldar los pines. |
| 24AWG Dupont jumper wires | 1 kit | AliExpress | 10 cm / 20 cm kit |
Hace falta suficiente cable female-to-female para conectar ambas placas con headers macho. |
| USB-C panel-mount waterproof connector, 2 wires | 1 | AliExpress | USB-C waterproof panel mount 2pin |
Entrada de alimentación del box. Solo power, sin datos USB. |
| Waterproof ABS enclosure 100 × 68 × 50 mm | 1 | AliExpress | ABS waterproof enclosure 100x68x50 |
La medida correcta está en milímetros y representa el volumen útil del box final. |
Wiring
Conexiones lógicas antes de cerrar la caja.
| Referencia | Uso | Nota de implementación |
|---|---|---|
| ESP32 GPIO 21 → sensor SDA | I²C data | El firmware usa `Wire.begin(21, 22)`. Verifica siempre el pinout del breakout comprado. |
| ESP32 GPIO 22 → sensor SCL | I²C clock | Mantén los cables cortos y ordenados para reducir ruido y lecturas inestables. |
| ESP32 3V3 / VIN correcto → sensor power | Power sensor | Algunos breakouts exponen VIN, otros 3V3. No envíes 5 V a placas que no lo soportan. |
| ESP32 GND → sensor GND | Common ground | Se necesita una masa compartida limpia entre sensor, placa y alimentación. |
| USB-C panel red wire → ESP32 5V / VIN | Power enclosure | El conector de 2 hilos alimenta la caja final y no se usa para flashing ni datos USB. |
| USB-C panel black wire → ESP32 GND | Power enclosure | Programa el dispositivo desde el USB nativo de la placa antes de cerrar la caja definitiva. |
Assembly
Montaje y packaging pensando en la escena real.
La build de referencia busca ser simple de montar, pero el resultado final depende mucho de cómo se perfora la caja, cómo se fija el sensor y cómo se mantiene limpia la ventana óptica. Aquí conviene ser práctico antes que elegante.
- Programa y prueba la placa en banco antes de cerrar la caja definitiva.
- Si el sensor trabaja detrás de una ventana, mantén la apertura óptica limpia y poco hundida.
- Evita túneles profundos delante del sensor, porque reducen innecesariamente el campo de visión.
- Fija el sensor de forma estable y perpendicular al paso con separadores, soportes o adhesivo técnico.
- Si el uso es realmente outdoor, la estanqueidad depende de la calidad del taladrado y sellado del box y del conector.
Firmware
Funciones core ya incluidas en la build de referencia.
- configuración persistente en el dispositivo para Wi-Fi, threshold, ROI y tracking
- access point inicial para provisioning y commissioning
- pairing con setup code y token administrativo para operaciones de escritura
- streaming en vivo de la matriz 8×8 por WebSocket
- HTTP API para estado, configuración, Wi-Fi provisioning y restart
- blob tracking y line crossing para eventos IN / OUT
- subida de eventos a backend o cloud manteniendo la calibración directamente en el sensor
Utilidad web
Tholus Flow Lite añade una capa lista para usar sobre el firmware.
Hasta ahora el proyecto ofrecía el sensor y el firmware, pero muchos makers seguían teniendo que construir su propia capa de software para usar los datos de verdad. Tholus Flow Lite es una pequeña utilidad web que se conecta al sensor y hace que el firmware sea inmediatamente más útil desde el navegador.
Está pensada para seguir siendo ligera: un dashboard práctico para visualizar datos, probar el nodo con más facilidad y partir de una base ya útil y hackable para pequeños proyectos reales.
Qué puede hacer
- conteos en vivo de entradas y salidas
- estimación de la ocupación actual
- visualización en vivo simple de la actividad cerca de la entrada
- gráficos horarios o diarios ligeros
- historial básico de eventos
- interfaz simple para calibración y ajustes
Cómo se usa
- montar el sensor y cargar el firmware
- conectar el dispositivo a la red o usar el modo de setup
- abrir la utilidad en el navegador y conectarla al sensor
- ver datos en vivo y analíticas básicas
- revisar histórico y gráficos para validar el comportamiento real
- ajustar calibración y parámetros si hace falta
Ideas de uso
Flashing
Instalación del firmware con Arduino IDE.
Toolchain esencial
Para que la página sea realmente útil, aquí puedes descargar tanto el firmware publicado como el entorno oficial usado para compilarlo y cargarlo.
- Instalar una versión actualizada de Arduino IDE.
- Añadir en preferencias la URL del package manager de Espressif ESP32.
- Instalar desde Boards Manager el paquete “esp32 by Espressif Systems”.
- Seleccionar una placa compatible con el hardware usado; en la mayoría de los casos “ESP32 Dev Module” es el punto de partida más práctico.
- Instalar las librerías requeridas: ArduinoJson, arduinoWebSockets (Links2004) y STM32duino VL53L8CH.
- Conectar el ESP32 mediante el puerto USB-C nativo de la placa.
- Abrir el archivo firmware, verificar puerto serial y placa seleccionada, luego compilar y cargar.
- Si la subida en Mac es inestable, repetir con una upload speed más conservadora, por ejemplo 115200.
esp32 by Espressif Systems
Proporciona core, WiFi, WebServer, Preferences, ESPmDNS, HTTPClient y toolchain de upload.
ArduinoJson
Se usa para payloads JSON y configuración.
arduinoWebSockets (Links2004)
Gestiona el stream en vivo por WebSocket.
STM32duino VL53L8CH
Driver Arduino para el sensor ToF VL53L8CH.
Commissioning
Primer arranque, pairing y calibración.
- Encender el nodo y comprobar en serial la MAC y el nombre del nodo; mantener a mano setup code y etiqueta de provisioning.
- Asociar el sensor desde la app o herramienta de provisioning.
- Configurar SSID, contraseña Wi-Fi y parámetros cloud.
- Esperar a que el nodo reaparezca en la LAN.
- Abrir la pantalla de calibración, verificar la matriz en vivo y ajustar threshold, ROI y counting line en el contexto real de instalación.
Checklist
Cosas que no hay que olvidar antes de la instalación.
- suficientes cables female-to-female para conectar ESP32 y breakout del sensor
- estaño, punta fina y herramientas para soldar los headers del VL53L8CH
- alimentador 5 V estable y cable USB-C externo
- método de fijación interna: separadores, standoffs, adhesivo técnico o soporte 3D
- ventana óptica o cubierta limpia delante del sensor, si la caja lo requiere
- etiqueta externa con serial / MAC / setup code para soporte y commissioning
Referencias
Referencias técnicas esenciales.
FAQ
Preguntas frecuentes para quien consulta o reutiliza el proyecto.
¿Hay algo a tener en cuenta antes de usar el firmware en campo?
Sí. La build publicada ya no usa una contraseña AP estática: la contraseña de provisioning es única por dispositivo y sigue la regla `TF-<setup code>`. Los logs seriales muestran los valores sensibles solo en forma enmascarada.
¿Por qué se eligió el VL53L8CH?
Porque combina un FoV más controlable que el VL53L7CH con datos CNH útiles para escenarios futuros más allá del simple conteo de personas: gesture sensing, presence detection y clasificaciones más avanzadas.
¿Cuál es el flujo correcto de montaje?
Flash del firmware, prueba del sensor al aire libre, cableado final, prueba dentro de la caja e instalación y calibración en el sitio real.