Instrumentación Oceanográfica DIY: Correntómetro Óptico con ESP32

Diseño y desarrollo de un sensor de corriente marina de alta resolución utilizando matrices de fotodiodos y el PCNT de ESP-IDF.


1. El Reto: Medir el Flujo Marino en Alta Resolución

La instrumentación oceanográfica comercial suele ser costosa y de código cerrado. Desarrollar hardware abierto nos permite adaptar sensores a necesidades científicas reales sin depender de presupuestos prohibitivos. Usar una matriz de fotodiodos (Photodiode Array) nos otorga una ventaja analítica frente a los sensores tradicionales: la lectura multicanal simultánea de flujos de luz en cuadratura.

2. Anatomía del Sensor Estanco

El sistema se compone de un rotor exterior dotado de palas que giran mecánicamente con la masa de agua. Solidario a este eje, un disco ranurado interrumpe un haz de luz proyectado hacia la matriz de fotodiodos dentro de una cápsula acrílica estanca sellada con resina náutica.

3. Procesamiento Eficiente en ESP-IDF

Gestionar ráfagas de pulsos de múltiples canales a altas revoluciones saturaría la CPU del ESP32 si recurriéramos a interrupciones convencionales por software (GPIO ISR). Para solucionar esto, configuramos el periférico nativo PCNT (Pulse Counter) en Debian 13 utilizando el framework oficial de desarrollo.

#include "driver/pulse_cnt.h"

void init_optical_counter() {
    pcnt_unit_config_t unit_config = {
        .high_limit = 1000,
        .low_limit = -1000,
    };
    pcnt_unit_handle_t pcnt_unit = NULL;
    pcnt_new_unit(&unit_config, &pcnt_unit);
    // Configuración de canales de captura de la matriz
}

4. Conclusiones para la Comunidad Científica

Este enfoque democratiza el acceso a datos oceanográficos de calidad y permite integrar sensores a medida para boyas derivantes o estaciones fijas de monitorización litoral dentro del marco de ItsasLab.