Centinela  de canaleta
Propuesta de producto · DP-CNT-001 Rev A · 17 oct 2026 Estado borrador para revisión técnica Planta Ingenio azucarero · preparación de caña

Detector de rocas y metales para la canaleta del molino

Un disco piezoeléctrico pegado a la canaleta escucha cada impacto. Un ESP32-S3 calcula la FFT cada 20 ms. Si detecta la firma de una roca o de una pieza metálica, abre el contacto hacia el PLC para que pare el conductor antes de que el objeto llegue a las cuchillas y a las mazas. Todas las vibraciones se guardan en Cloudflare R2 para entrenar el modelo de Machine Learning.

< 100ms
de impacto a relé abierto, sin depender de la red
6–33s
disponibles para parar, con el sensor a 6–10 m del molino
≥ 95%
recall objetivo para rocas de 0,5 kg o más
≈ 67USD
electrónica por punto de medida (ESP32-S3 + PCM1808)
Conductor inclinado de acero que lleva caña picada hacia los rodillos dentados de la desfibradora, con motores y transmisión por cadena a la izquierda.
S1Toque un punto de la foto para ver dónde va cada parte del sistema.
01

Resumen y decisión

Qué problema resolvemos, qué proponemos construir y por qué esta combinación de sensor, procesador y nube es la adecuada para un MVP que luego pueda escalar a todos los molinos.

El problema

La caña llega del campo con piedras, y del patio con pernos, eslabones y herramientas. El electroimán retira cerca del 90–95 % del hierro, pero no detiene piedras, acero inoxidable ni metales no ferrosos. Un detector de metales convencional no funciona sobre una canaleta de acero. Cuando un cuerpo extraño llega a la desfibradora, rompe cuchillas, martillos o dientes de las mazas. Una parada de 4 h en un ingenio que muele 210–500 t/h deja de moler entre 830 y 2 000 t de caña.

La propuesta

Escuchar la canaleta. La caña picada produce vibración blanda y de baja frecuencia. Una roca o un metal produce un impacto duro que hace resonar el acero entre 2 y 8 kHz. Esa diferencia se ve con claridad en el espectro, así que la detección se hace con una FFT en el borde y se confirma con un modelo pequeño. La nube guarda los datos, muestra las alarmas en vivo y recibe las etiquetas del operador para mejorar el modelo.

Decisiones y por qué

DecisiónElegidoAlternativa descartadaRazón
SensorPiezoeléctrico: disco de 27 mm para el MVP y knock sensor Bosch KS4-R como candidato principalAcelerómetro IEPE (150–600 USD) en cada puntoEl disco cuesta menos de 1,5 USD y resuena dentro de la banda de la roca. El knock sensor es plano en esa banda, aguanta 130 °C y se atornilla. El IEPE queda como referencia en el piloto (sección 02).
Procesador de bordeESP32-S3 (N16R8)Raspberry Pi Zero 2 WArranca en menos de 1 s y muestrea con DMA sin jitter. Tiene OTA con rollback y no usa SD que se corrompa en un corte de luz. La Pi queda como gateway opcional, fuera del lazo de parada.
ADCPCM1808 por I2S, 24 bit a 51,2 kS/sADC interno (prototipo) · MCP3208Da unos 99 dB de rango dinámico, anti-aliasing digital y temporización por hardware por unos 4 USD.
DetecciónRegla FFT adaptativa + modelo que confirmaSolo umbral, o solo MLLa regla funciona desde el día 1 sin datos etiquetados. En datos sintéticos el modelo baja unas 13 veces las falsas alarmas y distingue roca, metal y golpe.
NubeCloudflare Workers + R2 + D1 + Durable ObjectsServidor propio · AWS IoTSin servidores que mantener y sin costo por descargar datos de R2. El tablero recibe los eventos en vivo por WebSocket. Cuesta unos 8 USD/mes por sensor en la fase de recolección.
SeguridadParada local por relé fail-safeParada ordenada desde la nubeLa parada no puede depender del WiFi. Si se pierde energía o se cuelga el firmware, el relé se desenergiza y el PLC lo trata como alarma.
02

¿Qué hay en el mercado?

Revisamos detectores de cuerpos extraños para conductores e ingenios, sensores y kits de vibración con IA en el borde, y los detectores de piedras de las cosechadoras. Ningún producto comercial, montado en el conductor de acero antes de la desfibradora, detecta piedras y además cualquier metal. Lo que sí existe se puede comprar para acelerar el piloto.

Soluciones comerciales al problema

SoluciónEjemplosRocaMetal no ferrosoSobre el conductor de acero, antes de la desfibradoraCosto aprox. USDVeredicto
Detector de metales para bandaEriez Metalarm, Bunting TN77, CSTNoSíNo: necesita un tramo sin metal, solo cabe en la banda de caucho después de la desfibradora5–25 k*No protege la desfibradora
Electroimán o tambor magnéticoEriez, Goudsmit, BuntingNoNo: solo hierro, 80–95 %Sí30–150 k*Mantenerlo: es complementario
Separador de rocas, limpieza en seco o lavado de cañaProyectos de plantaEn parteNo—100 k – 1 M*Es una obra, no un sensor
Cámara con IAVisión + PLC (p. ej. Roboflow)Solo en superficieSolo en superficieSí15–60 k* + suscripciónLa caña tapa las piedras
Rayos X o radarTOMRA, SteinertSíSíNo: exige material en monocapa de ≤ 125 mm≈ 130 k (usado)No viable a corto plazo
Detector de piedras de cosechadoraCLAAS Stop Rock, New Holland RockAlert, Rock Stopper Pro, John Deere BXE10945SíCon detector magnético aparteNo: miden el salto del rodillo alimentador con resorte2,8–3,4 kNo adaptable. El kit de Deere usa un knock sensor: es nuestro precedente
Detección de impactos por vibración (esta propuesta)US 7,048,212 (expirada): mismo principio en un trituradorSíSíSí: la chapa de la canaleta es el sensor≈ 100–120 por puntoNadie la vende como módulo para caña. Este es el hueco

* Estimado: los fabricantes no publican precio. Fuentes y detalle en specs/10-mercado-detectores.md y specs/12-antecedentes-piezo-agricola.md.

Hardware de medida que se puede comprar hoy

ProductoQué entregaMuestreo y bandaProtecciónCosto USDUso
Acelerómetro IEPE (Wilcoxon 786A-M12 o Hansford HS-100) + Digilent MCC 172 + Raspberry Pi 5Forma de onda continua, 2 canales simultáneos de 24 bit51,2 kS/s, sin aliasing hasta 23 kHzSensor hermético; la Pi va en caja IP66/67≈ 1 000–1 600Recomendado para el piloto: listo en 1–2 semanas
ST STWIN.box + NanoEdge AI StudioGraba crudo en microSD; detección de anomalías sin ejemplos de fallaPlano hasta ≈ 5 kHzNinguna≈ 125Una semana de validación en sitio
Beckhoff EP3632-00012 entradas IEPE en EtherCAT, latencia < 10 ms50 kS/s, hasta 25 kHzIP672 000–4 000*Si la planta ya usa TwinCAT
Siemens SIPLUS CMS1200 SM 12814 entradas IEPE; graba 90 s en WAV por evento46 kHz, hasta 10 kHzTableroCotizarRegistrador en planta Siemens; no dispara en < 100 ms
ifm VVB001Salidas PNP; captura 4 s de señal cruda por evento2–10 kHzIP69K≈ 700Disparo de respaldo; hay que medir su latencia

Descartados: los sensores IO-Link de vibración (Banner, Balluff, SICK, ifm VVB30x) promedian cada 1–5 s y la mayoría no pasa de 5,6 kHz, así que un golpe de 10 ms se pierde. También los servicios por suscripción (Augury, Petasense, SKF) y los kits MEMS de consumo, que no ven la banda de 2–8 kHz. Detalle en specs/11-mercado-vibracion-edge.md.

Un mejor sensor: el knock sensor automotriz

El sensor de detonación de Bosch (KS4-R, 0 261 231 218) también es piezoeléctrico, pero de compresión, con masa sísmica. Es plano entre 5 y 15 kHz y mide de 3 a 25 kHz sin el pico de 4,6 kHz del disco de buzzer. Da 26–29 mV/g, trabaja de −40 a 130 °C, se atornilla con un perno M8 a 20 N·m y cuesta 16–36 USD. John Deere usa uno en su detector de piedras.

  • Montaje: un boss de acero roscado M8, soldado por fuera de la canaleta cerca de la zona de caída, con capucha porque el sensor es IP54.
  • Circuito: tiene 1,15 nF frente a 20 nF del disco. Hay que subir R1 y R3 a 10 MΩ y bajar C2 a 100 pF, o usar un amplificador de carga (Cf 1 nF, Rf 10 MΩ).
  • Pendiente: medir en banco su respuesta bajo 3 kHz, que la hoja no garantiza.

Ruta recomendada

  1. Semanas 1–2: comprar el IEPE, el MCC 172 y la Raspberry Pi 5. Canal 0: IEPE de referencia. Canal 1: knock sensor Bosch, en el mismo punto. El software de esta propuesta (FFT, regla, subida a R2, tablero) corre en la Pi tal cual, porque usa los mismos 51,2 kS/s.
  2. Piloto: con los datos pareados se elige el sensor definitivo y se calibra el umbral con la campaña de piedras y pernos de prueba.
  3. Escalado: pasar a nodos propios con ESP32-S3, PCM1808 y knock sensor (≈ 120 USD por punto) cuando haya más de 5–10 puntos. El equipo comprado queda como referencia de calibración.

Las patentes clave del principio (US 6,601,372, 7,022,012 y 7,048,212) están expiradas. Antes de comercializar hay que revisar la solicitud EP 4 635 288 A1 de CLAAS (2025).

03

Arquitectura del sistema

Cuatro zonas: el campo (canaleta y sensor), el borde (ESP32-S3 en una caja junto al conductor), Cloudflare y las personas. Los diagramas se generaron con Archify a partir de JSON validado; se pueden explorar, ampliar y cambiar de tema dentro de cada marco.

Arquitectura de componentes

Abrir a pantalla completa ↗

Flujo de detección, alarma y etiquetado

Abrir a pantalla completa ↗
04

Sensor: hoja de datos

Hoja de datos preliminar del módulo sensor que proponemos fabricar. El elemento activo es un disco piezo comercial de 27 mm. La carcasa, el montaje y el conector son nuestros. Los valores marcados con * son estimaciones de diseño que se confirman en la Fase F0.

Actualización tras la revisión de mercadoEl knock sensor automotriz Bosch KS4-R es un mejor candidato para producción que este disco: es plano en 5–15 kHz, aguanta 130 °C y se cambia en minutos. Proponemos medir los dos en el mismo punto durante el piloto (ver sección 02). Esta hoja describe el módulo con disco, que sirve para el MVP.
CNT-PZ27
Módulo sensor de vibración piezoeléctrico para estructuras de aceroElemento PZT sobre latón, 27 mm · carcasa de aluminio IP67 · espárrago M6
Hoja de datos preliminar
Rev 0.3 · oct 2026

Características

  • Resonancia de 4,6 kHz ± 0,5 kHz, dentro de la firma de impacto de roca (2–8 kHz)
  • Sensor pasivo: no necesita alimentación
  • Montaje rígido con espárrago M6 y respuesta útil hasta 10 kHz
  • Latón aislado de la estructura (Kapton + epoxi) para evitar lazos de tierra
  • Conector M12 de 4 polos con malla a 360°
  • Opción con buffer integrado para cables de hasta 20 m

Aplicaciones

  • Detección de cuerpos extraños en conductores de caña, bagazo y minerales
  • Emisión acústica de impactos en tolvas y chutes
  • Monitoreo de golpes en trituradoras y molinos

Valores máximos absolutos

Tensión de salida en circuito abierto (impacto)100 V pico*
Temperatura de operación−20 a +70 °C
Temperatura de almacenamiento−30 a +80 °C
Par de apriete del espárrago M64 N·m
Protección de la carcasaIP67

Dimensiones (mm)

Ø 46 · carcasa de aluminio latón Ø27 × 0,30 PZT Ø19,7 M6 × 12 M12 superficie de la canaleta 31

Características eléctricas (25 °C)

ParámetroMínTípMáxUnid.
Frecuencia de resonancia4,14,65,1kHz
Capacitancia (1 kHz)142026nF
Impedancia en resonancia200300Ω
Sensibilidad montado con epoxi*1040100mV/g
Pasa-altas con RL = 1 MΩ8Hz
Banda útil montado (stud)0,0510kHz
Resistencia de aislamiento latón–carcasa100MΩ

Respuesta típica en frecuencia

Conector M12 A, 4 polos (vista de pines)

1PZ+ (cerámica)
2PZ− / AGND (latón)
3+3V3A (solo versión -B con buffer)
4BUF_OUT (solo versión -B)
cuerpoMalla, a PE solo en el gabinete

Información de pedido

CNT-PZ27-EDisco pegado con epoxi, sin buffer, cable ≤ 2 m
CNT-PZ27-SBase con espárrago M6 (recomendado)
CNT-PZ27-SBEspárrago M6 + buffer integrado, cable ≤ 20 m
Elemento activo: Murata 7BB-27-4L0 o equivalente. Verificar contra la hoja oficial del fabricante antes de comprar.* Estimado, se calibra con golpe de referencia en sitio.

Alternativas de sensor

SensorCosto USDBandaSensibilidadRobustezUso en el producto
Disco piezo PZT 27 mm0,2–1,55 Hz – 10 kHz10–100 mV/g (sin calibrar)Media, con carcasaMVP y piloto
Film PVDF TE LDT0-028K3–81 Hz – 1 kHz≈ 50 mV/gAlta, se despegaNo: corta en 1 kHz
Acelerómetro IEPE industrial150–6000,5 Hz – 10 kHz100 mV/g calibradoMuy alta, inox IP68Escalado, si se exige trazabilidad
MEMS ADXL100225–1000 – 11 kHz40 mV/gMediaOpción si se requiere respuesta en DC
MEMS ADXL3453–150 – 1,6 kHz±16 g máx.MediaNo: se satura y no ve la banda de la roca
05

Circuito y simulación

El piezo entrega poca energía pero mucha tensión: un golpe fuerte da hasta 100 V en circuito abierto. El front-end lo protege, lo centra en el punto medio del ADC, lo amplifica y lo filtra antes de digitalizar. Elija el tipo de impacto y pulse Simular impacto para ver la señal en cada punto de prueba. Suba el pico a decenas de voltios para ver actuar la protección, o quítela para ver qué le llegaría al op-amp.

Tipo de impacto
ADC
Protección
TP1 · piezo, circuito abiertoV
TP2 · nodo P tras TVS y clampsV
TP3 · salida del anti-aliasingV
TP4 · muestras del ADC a 51,2 kS/scódigo

Conexión al procesador

Lista de materiales por punto de medida

BloqueComponentes claveUSD
SensorDisco piezo 27 mm, base de aluminio, carcasa IP67, cable apantallado Belden 8451 (5 m)≈ 8
Protección de entradaTVS SMAJ12CA, R2 4,7 kΩ de pulso, BAV199, C1 100 nF de film, R3 1 MΩ a VMID≈ 1
AcondicionamientoMCP6002 (ganancia 2–21 con trimmer, Sallen-Key fc 10,7 kHz, Q 0,74), LDO LP5907 de bajo ruido≈ 3
DigitalizaciónMódulo PCM1808 (24 bit, I2S)≈ 4
ProcesadorESP32-S3-DevKitC-1 N16R8 con antena externa≈ 10
AlarmaRelé Omron G5LE fail-safe, 2N7002, PC817 opcional, LED, zumbador, pulsador≈ 3
AlimentaciónPTC, SS34, SMBJ33A, choke de modo común, DC-DC aislado 24→5 V 6 W≈ 10
GabineteMetálico IP65/NEMA 4X, prensaestopas EMC, borneras, PCB de 2 capas≈ 29
Total≈ 67
06

La transformada rápida de Fourier

Cómo se pasa de una vibración en el tiempo a un espectro de frecuencias, y por qué en ese espectro la roca se distingue de la caña.

Qué es

Toda señal se puede escribir como una suma de ondas seno de distintas frecuencias. La transformada de Fourier dice cuánta amplitud aporta cada frecuencia. Para una señal muestreada se usa la transformada discreta (DFT):

X[k] = Σn=0..N−1 x[n] · w[n] · e−j2πkn/N

Calcularla directamente cuesta N² multiplicaciones. La FFT (Cooley–Tukey, 1965) parte la suma en mitades pares e impares una y otra vez y la resuelve en N·log₂N operaciones. Con N = 1024 son unas 10 000 operaciones en lugar de un millón. El ESP32-S3 la hace en menos de 1,5 ms.

Parámetros del producto

Muestreo del ADC → DSP51,2 → 25,6 kS/s
Nyquist (máx. frecuencia visible)12,8 kHz
Tamaño de la FFT, N1024 muestras
Duración de la ventana40 ms
Resolución Δf = fs / N25 Hz por bin
Solape (hop)50 % → cada 20 ms
VentanaHann

La ventana Hann suaviza los extremos del bloque. Sin ella, el corte abrupto riega energía falsa por todo el espectro (fuga espectral). Puede compararlo en el laboratorio con la opción Rectangular.

Laboratorio interactivo: encontrar la roca

SEÑAL SINTÉTICA
Evento en la ventana
Ventana
Dominio del tiempo · 40 mscañacaña + evento
Espectro · 0–12,8 kHzsolo cañacon eventobanda 2–8 kHz
Espectrograma · 0,5 s, evento en t = 0,25 stiempo → · frecuencia ↑
Paso a paso con esta muestra
    07

    ¿Basta la FFT o hace falta Machine Learning?

    Recomendamos un sistema híbrido. La regla FFT dispara siempre y no necesita datos etiquetados. Un modelo pequeño confirma cada disparo y lo clasifica. El modelo nunca puede apagar una alarma de energía muy alta (z > 12).

    Por qué no basta la regla sola

    Un turno de 8 h tiene unas 1,4 millones de ventanas de 20 ms. Para no pasar de una falsa alarma por turno, cada ventana debe equivocarse menos de una vez en un millón. Con una regla tan estricta se escapan las rocas pequeñas. Si se hace sensible, aparecen las falsas alarmas por crujidos de fibra, golpes de cadena y cambios de carga.

    Por qué no basta el modelo solo

    Al inicio no hay datos etiquetados: las rocas son eventos raros. Un modelo sin la regla como red de seguridad también puede fallar en silencio cuando cambian la variedad de caña, la humedad o el desgaste (drift).

    Lo que hace cada parte

    1. Regla FFT (siempre activa). Calcula el z-score de la energía en 2–8 kHz contra una línea base que se adapta solo con ventanas normales. Dispara con z > 6 en 2 ventanas seguidas, o con z > 12 en una sola.
    2. Modelo de anomalías (Fase 1). Isolation Forest entrenado solo con operación normal. Sirve para decidir qué ventanas etiquetar primero.
    3. Clasificador (Fase 2). Gradient boosting sobre 28 features, exportado a C. Clasifica en normal, roca, metal o golpe mecánico y solo corre cuando la regla dispara.

    Resultado en datos sintéticos

    Método · ventana de 40 ms, banda 2–8 kHzPrecisiónRecall roca + metalComentario
    Fase 0 · regla estricta (FPR 0,75 %)0,940,28Con fondo ruidoso de banda ancha casi no ve el metal: su energía se reparte en 40 ms y llega a 11 kHz.
    Fase 0 · regla sensible (FPR 5,4 %)—0,93Buen disparador, pero 1 de cada 20 ventanas normales dispara.
    Fase 1 · Isolation Forest0,990,60Marca el 68 % de los golpes mecánicos como anomalía: útil para priorizar, no para alarmar.
    Fase 2 · gradient boosting0,9890,93Exactitud de 97,4 % en las 4 clases.
    Híbrido · regla sensible + GBM0,9890,89Falsas alarmas por ventana de 5,4 % a 0,4 % (13 veces menos). El GBM corre solo en el 27 % de las ventanas.
    Dos supuestos, un rangoLa tabla usa un fondo pesimista: 40 % de ruido blanco y SNR de −6 a +15 dB. El laboratorio y el tablero de esta página suponen lo contrario, caña casi sin energía sobre 2 kHz. Ahí la regla sola detecta ≈ 96 % de rocas y ≈ 99 % de metales sin falsas alarmas. La canaleta real estará entre ambos, y medir su espectro de fondo es el primer objetivo de la fase F1.

    Cifras de ml/train_classifier.py --synthetic y ml/train_anomaly.py --synthetic con el diseño final (N = 1024). Validan el pipeline, no el desempeño en planta. Las métricas reales saldrán de la campaña de inyección controlada (piedras de 0,5–5 kg y pernos M12–M24) y de las confirmaciones del operador.

    08

    Datos en Cloudflare

    El ESP32-S3 sube por HTTPS dos tipos de datos: lotes crudos cada 5 s para entrenar y eventos en tiempo real para el tablero. Si se cae la red, guarda hasta 72 h y reenvía sin duplicar.

    RutaQuiénQué hace
    POST /ingestESP32Valida la trama BZF1 y la guarda en R2 bajo raw/{device}/{yyyy}/{mm}/{dd}/{hh}/{ts}.bzf. La indexa en D1.
    POST /eventESP32Primero difunde al Durable Object LiveHub y después guarda en D1.
    GET /wsTableroWebSocket con hibernación. Al conectar recibe los últimos 50 eventos.
    GET /api/eventsTableroConsulta de eventos por dispositivo, clase y rango de tiempo.
    POST /api/events/:id/labelOperadorGuarda la etiqueta roca, metal o falsa alarma. Alimenta el dataset de entrenamiento.
    Trama BZF1 · cabecera de 44 BBytes
    magic "BZF1" · version · type (1 features, 2 evento, 3 crudo) · codec · stride8
    mac del dispositivo · count de registros8
    fs_hz · hop · feature_dim8
    base_epoch_ms (SNTP)8
    base_frame · words · payload_bytes12
    Payload int16 con delta + zigzag + varintvariable
    EscenarioVolumenCosto/mes
    1 sensor, fase F1, todo crudo, retención 90 días≈ 80 GB/mes≈ 8 USD
    4 sensores, fase F1≈ 320 GB/mes≈ 21 USD
    Fase F2: eventos ±5 s + 1 % aleatorio< 5 GB/mes≈ 5–6 USD
    RetenciónLos lotes en raw/ pasan a almacenamiento de acceso poco frecuente a los 30 días y se borran a los 90. Los fragmentos alrededor de cada evento (ctx/) se conservan, porque son los ejemplos etiquetados del modelo. Descargar datos de R2 para entrenar no cuesta transferencia.
    09

    Tablero en tiempo real

    Simulación del tablero de la sala de control. Corre el mismo detector que el firmware sobre señal sintética, a velocidad real. Arroje una roca o un perno a la canaleta y siga el recorrido: detección, apertura del relé, evento en la nube, alarma, reconocimiento y etiqueta para el modelo.

    S1 · Canaleta molino 1 latido 0,0 sfs 25,6 kS/sFFT 1024 · hop 20 msmodelo gbm-v0.3 (sombra) SIMULACIÓN
    Sin alarma
    Conductor en marcha · última detección: ninguna
    Eventos turno
    0
    Confirmados
    0
    Falsas alarmas
    0
    Latencia relé
    — ms
    Score z · energía 2–8 kHz vs línea basezumbral 6σ
    Forma de onda · 40 msRMS —
    Espectro en vivopico —
    Espectrograma (cascada) · últimos 8 s0–12,8 kHz
    Conductor y PLC
    Relé K1 ENERGIZADO · OKEN MARCHA
    Camino a la nube
    Uplink
    0 lotes
    R2 crudo
    0 MB
    D1 eventos
    0 filas
    LiveHub WS
    — ms
    Eventos · etiquete para entrenar
    Aún no hay eventos en este turno. Use Arrojar roca o Arrojar perno abajo.
    Último mensaje WebSocket
    { "type": "telemetry", … }
    10

    Instalación y tiempo de reacción

    El tiempo disponible para parar es la distancia entre el sensor y el molino dividida por la velocidad del conductor. Ajuste los valores de su planta.

    Montaje

    • Dos o tres sensores bajo la lámina, separados 2–4 m, entre refuerzos y cerca de la zona de caída.
    • Al menos a 1,5–2 m de motores, reductores y transmisiones por cadena.
    • Base de aluminio soldada o pegada con epoxi, con espárrago M6. Latón aislado del acero.
    • Cable apantallado separado al menos 30 cm de los cables de potencia y de los variadores, con cruces a 90°.
    • Caja NEMA 4X alimentada con 24 VDC del tablero. Salen dos contactos secos al PLC: alarma y falla del detector.
    Esto no es un sistema de seguridadEl detector protege equipos y no tiene clasificación SIL. No se conecta al paro de emergencia ni reemplaza los procedimientos de bloqueo y etiquetado (LOTO). El rearme después de una alarma es manual y en sitio. Las primeras 1–2 semanas trabaja en modo sombra: registra y avisa, pero no detiene el conductor.
    11

    Desarrollo guiado por especificaciones

    El producto se construye con agentes de codificación que trabajan sobre especificaciones versionadas en el repositorio. Cada módulo tiene un contrato de entrada y salida, y cada requisito tiene un criterio de aceptación que se puede probar.

    PASO 1

    Constitución

    Principios que no se negocian: seguridad primero, detección local sin depender de la nube, falla segura, modularidad y datos como activo.

    specs/00-constitucion.md
    PASO 2

    Especificación

    11 historias de usuario, unos 35 requisitos funcionales y 14 no funcionales en formato EARS, con criterios Given/When/Then.

    specs/00-spec-producto.md
    PASO 3

    Plan

    10 módulos con contratos (trama BZF1, JSON de evento, API, configuración firmada) y specs técnicas 01–09.

    specs/00-plan-y-tareas.md
    PASO 4

    Tareas

    Unas 40 tareas con dependencias. Cada agente toma una, implementa contra el contrato y entrega con pruebas.

    firmware/ · cloud/ · ml/
    Requisitos clave (EARS)
    RF-11Cuando el z-score de la energía en 2–8 kHz supere 6 en dos ventanas consecutivas, o 12 en una sola, el sistema deberá activar la salida de alarma en ≤ 100 ms desde el impacto.
    RF-22Si el firmware deja de alimentar el watchdog durante más de 500 ms o se pierde la alimentación, entonces la salida deberá pasar a falla del detector.
    RF-31Mientras no haya conectividad, el dispositivo deberá guardar eventos y señales (72 h de eventos y 200 ventanas crudas) y transmitirlos en orden al recuperar la conexión.
    RF-35La nube deberá guardar la señal cruda en R2, los eventos y etiquetas en D1, y difundir el estado en vivo a los tableros por WebSocket.
    RF-37Cuando un usuario etiquete un evento, la nube deberá registrar la etiqueta con autor y marca de tiempo.
    Estructura del repositorio
    buzzer_fft/ ├── specs/ constitución, spec, plan y specs 01–09 ├── firmware/esp32/ ESP-IDF · C++ │ └── main/ acquisition · dsp_features · detector │ alarm · uploader · config ├── edge/pi_zero/ gateway opcional en Python ├── cloud/worker/ TypeScript · ingest · events · live-hub ├── cloud/dashboard/ tablero en Workers Static Assets ├── ml/ features · dataset · train_anomaly │ train_classifier · simulate_signals └── docs/ diagramas Archify y este documento

    Hoja de ruta

    F0 · 2 semanas

    Laboratorio

    Front-end en banco, golpes de referencia sobre una lámina de acero y firmware de adquisición.

    Pasa con SNR ≥ 10 dB en la banda de la roca
    F1 · 4–6 semanas

    Piloto de datos

    Dos sensores en la canaleta en modo sombra, todo crudo a R2 y campaña de inyección controlada.

    ≥ 200 h de datos y ≥ 50 eventos por clase
    F2 · 30 turnos

    Regla en sitio

    La regla FFT abre el relé hacia el PLC. El operador etiqueta desde el tablero.

    Recall ≥ 95 % y ≤ 1 falsa alarma por turno
    F3

    ML en el borde

    GBM exportado a C, primero en sombra y luego como confirmador. Inferencia ≤ 30 ms.

    Menos falsas alarmas sin perder recall
    F4

    Escalado

    Varios molinos y conductores, configuración firmada y flota con OTA.

    Disponibilidad ≥ 99,5 %
    12

    Riesgos y mitigaciones

    RiesgoEfectoMitigación
    Golpes de cadena, cuchillas o estructuraFalsas alarmas que paran la producciónSu energía está bajo 1,2 kHz. Se suman la confirmación con dos sensores y el clasificador con clase golpe mecánico.
    Ruido de variadores (2–16 kHz)Energía falsa en la banda de la rocaCable apantallado con malla a 360°, separación de los cables de potencia y notch en la portadora del VFD.
    Agua a presión, bagazo, calorFalla del sensorCarcasa IP67 con tapa metálica y relé fail-safe que reporta la falla al PLC. Pasar a IEPE si la temperatura supera 65 °C.
    Rocas pequeñas sobre colchón grueso de cañaImpacto amortiguado, roca no detectadaSensor cerca de la zona de caída y umbral calibrado con la campaña de inyección. Medir el recall por tamaño de roca.
    Cambio de zafra, variedad o humedadDrift del modeloLa línea base EWMA absorbe la deriva lenta. Monitoreo PSI/KS, reentrenamiento por zafra y despliegue en sombra.
    Operadores que ignoran alarmasEl recall real cae a 0Meta de ≤ 1 falsa alarma por turno, gestión de alarmas ISA-18.2 y KPI de falsas alarmas visible en el tablero.