Sistema de monitoreo de ganado basado en ESP32-C3 y tecnología RFID 134.2 kHz, optimizado para operaciones de campo de larga duración (12h+) mediante gestión de energía agresiva y comunicación eficiente con Protocol Buffers (Protobuf).
- Identificación Única: Cada lector genera su nombre Bluetooth (
CultivAI_XXXX) basado en su dirección MAC física. - Gestión de Energía: Corte total de alimentación al sensor mediante MOSFET y modo
Light Sleepen el CPU. - Protocolo de Datos: Serialización con Nanopb para minimizar el ancho de banda y asegurar la integridad de los datos.
- Filtro de App: Publicación de UUID de Servicio específico para vinculación rápida en Flutter.
| Componente | Modelo Específico | Función |
|---|---|---|
| Microcontrolador | ESP32-C3 Super Mini | Cerebro del sistema, manejo de BLE y ADC. |
| Lector RFID | WL-134 (134.2 kHz) | Módulo de lectura FDX-B (ISO11784/85). |
| Interruptor de Potencia | MOSFET SI2301 o AO3401 | MOSFET Canal P de nivel lógico (SOT-23). |
| Resistencias (Divisor) | 2x 100kΩ (1% tolerancia) | Medición del nivel de batería (4.2V a 2.1V). |
| Capacitor Filtro | Electrolítico 10µF - 16V | Estabilización de lectura de batería y picos de corriente. |
| Batería | Li-Po 3.7V (1000mAh+) | Fuente de alimentación principal. |
La arquitectura se divide en tres capas operativas para maximizar la eficiencia:
- Capa de Adquisición (Hardware): El sensor WL-134 se comunica vía UART (9600, 8N2) con el ESP32. La antena se activa solo cuando el usuario lo requiere desde la App.
- Capa de Procesamiento (Firmware): * Estado Activo: CPU a 160MHz, MOSFET conduciendo.
- Estado Idle: Tras 20s de inactividad, el MOSFET corta el VCC del sensor y el CPU baja a 80MHz.
- Estado Sleep:
esp_light_sleep_start()suspende el CPU pero mantiene los timers de Bluetooth vivos.
- Capa de Transporte (BLE): Los datos se envían en paquetes binarios estructurados mediante la característica de notificación.
- TX (WL-134) -> GPIO 20 (RX1)
- RX (WL-134) -> GPIO 21 (TX1)
- VCC (WL-134) -> Conectado al DRENAJE (Drain) del MOSFET.
- FUENTE (Source) -> VCC Batería (3.7V - 4.2V)
- COMPUERTA (Gate) -> GPIO 7 (A través de una resistencia de 1kΩ opcional).
- DRENAJE (Drain) -> VCC del WL-134.
Nota: El GPIO 7 en LOW activa el paso de corriente; en HIGH lo corta.
- VCC Batería -> Resistencia 100kΩ -> GPIO 0 (ADC).
- GPIO 0 (ADC) -> Resistencia 100kΩ -> GND.
- Capacitor 10µF -> En paralelo con la resistencia que va a GND (entre GPIO 0 y GND).
lib_deps =
h2zero/NimBLE-Arduino
nanopb/Nanopb
Makuna/Rfid134Nanopb es una implementación ligera de Protocol Buffers para microcontroladores. No usaremos el protoc estándar de Google solo, sino el generador de Nanopb que crea archivos optimizados para el ESP32.
Primero, asegúrate de tener el compilador base y Python instalados:
sudo apt update
sudo apt install -i protobuf-compiler python3-pipLa forma más limpia de tener el generador es mediante un entorno virtual o directamente con pip:
pip install nanopbUbícate en la terminal dentro de la carpeta donde tienes tu archivo .proto (normalmente la raíz de tu proyecto o una carpeta llamada proto). Ejecuta:
nanopb_generator cultivai.protoSi el comando anterior no funciona (error de PATH), usa este:
python3 -m nanopb.generator cultivai.protoTras ejecutarlo, aparecerán dos archivos nuevos:
cultivai.pb.h: Contiene las estructuras de C y las definiciones de los campos.cultivai.pb.c: Contiene la lógica de codificación/decodificación.
.h y .c) a la carpeta src/ de tu proyecto en PlatformIO para que el compilador los encuentre al subir el código al ESP32.
- Seguridad de Batería: El divisor de tensión de 200kΩ total garantiza una fuga despreciable de ~21µA, protegiendo la vida útil de la celda incluso en desuso.
- Estabilidad: El código incluye un
delay(150)después de encender el MOSFET para permitir que la antena del WL-134 estabilice su campo magnético antes de procesar datos. - Escalabilidad: Al usar el UUID de servicio
4fafc201-1fb5-459e-8fcc-c5c9c331914b, la aplicación móvil ignora cualquier otro dispositivo Bluetooth que no pertenezca al ecosistema CultivAI.
CultivAI - Ingeniería aplicada a la ganadería de precisión.