🌱 Documento de Especificación Técnica · Anteproyecto IoT

AgroSmart-32: Sistema Integral IoT de Monitorización Microclimática, Seguridad Perimetral y Actuación Mecánica

Estación agroclimática autónoma basada en microcontrolador ESP32 con bus I2C, control posicional por motor paso a paso, sensórica ambiental y de suelo multivariable, alerta temprana de intrusión y ecosistema unificado Dashboard Web, App Móvil y App de Escritorio.

Plataforma Hardware
ESP32 Dual-Core (Wi-Fi + BLE)
Aplicación Agronómica
Invernaderos y Cultivos de Precisión
Actuador Principal
Paso a Paso NEMA 17 (Ventilación / Riego)
Ecosistema Software
Web + Android/iOS + Escritorio

01 Justificación y Contexto Agrícola

La agricultura de precisión requiere una transición desde sistemas de riego y ventilación manuales o con temporizadores ciegos hacia sistemas ciberfísicos adaptativos. El exceso o defecto de humedad y las fluctuaciones térmicas no controladas en invernaderos provocan la proliferación de patógenos fúngicos (como Botrytis o Oídio) y mermas de hasta un 40% en el rendimiento del cultivo.

Eficiencia Hídrica

Monitorización continua de la humedad dieléctrica del suelo y temperatura radicular para activar riegos por demanda real, reduciendo el desperdicio de agua en un 30%.

Climatización Mecánica

Apertura y cierre micrométrico proporcional de compuertas cenitales mediante motor paso a paso para renovación pasiva de aire sin choque térmico vegetal.

Seguridad y Fauna

Detección perimetral nocturna con sensor PIR para disuadir animales salvajes (jabalíes, roedores) o avisar de intrusiones en naves de fertilizantes e invernaderos.

02 Objetivos del Proyecto

🎯 Objetivo General

Diseñar, construir y validar un nodo agroclimático IoT multipropósito basado en el microcontrolador ESP32, integrando sensórica ambiental y de sustrato, actuación de precisión con motor paso a paso, interfaz de usuario local (OLED y pulsadores) y comunicación en tiempo real con una terna de aplicaciones: Dashboard Web, App Móvil y App de Escritorio.

📋 Objetivos Específicos

  • Gobernar el ciclo de control mediante FreeRTOS separando tareas críticas de motor y red.
  • Integrar sensores agrícolas: DHT22, Humedad de Suelo Capacitiva, DS18B20 y BH1750 (Lux).
  • Implementar lógica anti-rebote (*debouncing*) en pulsadores para menús en pantalla OLED SSD1306.
  • Desarrollar una API REST / MQTT con persistencia en base de datos para analítica temporal.
  • Crear interfaces de usuario responsivas para consulta rápida en campo y gestión técnica en PC.

03 Componentes Hardware y Sensórica Agrícola

Cada componente ha sido seleccionado por su tolerancia a condiciones de campo, estabilidad de librerías en ESP32 y relación coste-prestaciones.

Núcleo / MCU ESP-WROOM-32 Wi-Fi + BLE Dual Core

ESP32 NodeMCU

Unidad de Control y Enlace IoT

Microcontrolador Xtensa LX6 dual-core a 240 MHz con Wi-Fi 802.11 b/g/n, Bluetooth LE y periféricos I2C, SPI y ADC.

Bus I2C, ADC1, GPIOs E/S
HMI Local TEMP: 24.6 C HUM : 68.2 % SUELO: 45.0 % VENTANA: 80% [OK] GND VCC SCL SDA

Display OLED 0.96"

Visualizador Local In Situ

Matriz de 128x64 píxeles con controlador SSD1306 vía I2C. Muestra IP local, mediciones agronómicas y porcentaje del motor.

SDA: GPIO 21 | SCL: GPIO 22
Ambiente DHT22

Sensor DHT22 (AM2302)

Microclima de Invernadero

Medición calibrada de temperatura (-40 a 80 °C, ±0.5°C) y humedad relativa (0 a 100%, ±2% RH). Permite derivar el punto de rocío y VPD.

DATA: GPIO 4 (Pull-Up 10k)
Seguridad

Sensor PIR HC-SR501

Detección de Presencia / Fauna

Sensor piroeléctrico infrarrojo pasivo con lente Fresnel. Cobertura de 120° y hasta 7 m. Dispara alerta inmediata por interrupción hardware.

OUT: GPIO 17 (Interrupt RISING)
Agrícola Clave CAPACITIVE v1.2

Humedad de Suelo Capacitivo

Monitor de Sustrato Radicular

Mide la permitividad dieléctrica del suelo sin exponer metal desnudo, eliminando la corrosión por electrólisis típica de sondas resistivas.

AOUT: GPIO 34 (ADC1_CH6)
Agrícola Clave DS18B20 IP68 INOX

Temperatura de Suelo DS18B20

Zona Radicular Sumergible

Sonda digital 1-Wire encapsulada en acero inoxidable grado IP68. Permite conocer la temperatura en la raíz, crítica para absorción de nutrientes.

DQ: GPIO 16 (Pull-up 4.7k)
Agrícola Clave BH1750 1 - 65535 LUX

Radiación Solar BH1750

Fotoperiodo y Luz Solar

Sensor de luz ambiental digital por bus I2C. Permite estimar la Integral de Luz Diaria (DLI) para dosificar apertura de mallas de sombreo.

I2C Compartido (GPIO 21/22)
Actuador

Motor Paso a Paso + Driver

Apertura Mecánica Micrométrica

Motor híbrido NEMA 17 gobernado por driver A4988 con micropasos. Controla con exactitud milimétrica la apertura de ventanas o tolvas.

STEP: 18 | DIR: 19 | EN: 23

04 Esquema Eléctrico y Matriz de Conexión

Diagrama esquemático en bloque de la integración del ESP32 con las líneas de alimentación dual (12V para motor / 5V/3.3V lógica), buses compartidos y protección de entradas analógicas.

ESQUEMA DE CONEXIONADO DE BLOQUES - AGROSMART-32

+12V DC (Fuente Externa) +5V DC (Salida Regulador Buck LM2596) +3.3V DC (ESP32 LDO Rail) GND COMÚN (Tierra Unificada) ESP32 WROOM Dual-Core 32-bit MCU GPIO 21 (SDA) GPIO 22 (SCL) GPIO 04 (DHT22) GPIO 16 (DS18B20) GPIO 34 (ADC1_SUELO) GPIO 17 (PIR INT) GPIO 05 (ENDSTOP) GPIO 18 (STEP) GPIO 19 (DIR) GPIO 23 (ENABLE) GPIO 32, 33, 14 (LEDs) GPIO 25, 26, 27 (BOTONES) GPIO 13 (BUZZER) 3V3 / GND BUS I2C COMPARTIDO OLED SSD1306 (0x3C) BH1750 LUX (0x23) CLIMA & SUELO DHT22 Temp/Hum (4k7 pull) DS18B20 OneWire Inox HUMEDAD & PIR Capacitivo v1.2 (ADC1) PIR HC-SR501 (Interrupción) DRIVER A4988 + NEMA 17 VMOT: +12V DC (Cap 100uF) VDD: +3.3V DC / GND Bobinas 1A, 1B, 2A, 2B [VENTILACIÓN CENITAL] PANEL HMI LOCAL 3x Pulsadores (NAV/ACT/RST) 3x LEDs (Verde, Azul, Rojo) 1x Buzzer Activo 5V
Dispositivo Pin ESP32 Función / Modo Nivel Lógico Propósito en el Sistema
OLED + BH1750 GPIO 21 (SDA)
GPIO 22 (SCL)
Bus I2C Hardware (Master) 3.3V Comunicación simultánea con pantalla OLED SSD1306 (0x3C) y sensor de iluminación BH1750 (0x23).
DHT22 (AM2302) GPIO 04 Digital Bidireccional 3.3V Lectura de temperatura y humedad ambiental de cabecera con resistencia pull-up de 10 kΩ.
DS18B20 Inox GPIO 16 Dallas OneWire 3.3V Sonda sumergible de temperatura radicular en sustrato con pull-up de 4.7 kΩ.
Sensor Suelo Cap. GPIO 34 (ADC1_CH6) Entrada Analógica Pura 0 a 3.3V Medición de permitividad en bloque ADC1 (sin interferencia con la transmisión del módem Wi-Fi).
PIR HC-SR501 GPIO 17 Entrada Digital Interrupción 3.3V Disparo instantáneo por flanco ascendente ante detección de fauna o personas no autorizadas.
Driver A4988 (Motor) GPIO 18 (STEP)
GPIO 19 (DIR)
GPIO 23 (EN)
Salidas Digitales PWM 3.3V Tren de pulsos de micropaso para posicionamiento micrométrico de compuerta cenital o dosificador.
Final de Carrera GPIO 05 Entrada con Pull-up 3.3V Punto cero (*homing*) físico para calibración automática de posición del motor al arrancar.
Pulsadores HMI (3) GPIO 25, 26, 27 Entradas Digitales 3.3V SW1: Menú OLED | SW2: Modo Manual / Riego forzado | SW3: Rearme alarma / Modo AP Wi-Fi.
LEDs de Estado (3) GPIO 32, 33, 14 Salidas Digitales 3.3V Verde: Heartbeat / Red OK | Azul: Motor o Riego en marcha | Rojo: Alarma / Intrusión PIR.
Buzzer Disuasorio GPIO 13 Salida Digital 3.3V / 5V Generación de señal acústica de advertencia en caso de intrusión perimetral confirmada.

05 Arquitectura Global del Sistema y Flujo FreeRTOS

Diagrama de flujo operacional ejecutado en el firmware del ESP32 bajo el kernel FreeRTOS, dividiendo la carga de trabajo entre sus dos núcleos físicos para asegurar que las tareas de red no congelen el control del motor paso a paso.

flowchart TD subgraph Core0["ESP32 NÚCLEO 0: TAREAS DE CONECTIVIDAD & COMUNICACIÓN"] TaskNet["Tarea Wi-Fi / MQTT / HTTP\n(Prioridad 1)"] TaskOTA["Gestor de Configuración\n(WiFiManager & Modo AP)"] TaskQueue["Cola de Mensajes JSON\n(Buffer no volátil LittleFS si cae red)"] TaskNet --> TaskQueue end subgraph Core1["ESP32 NÚCLEO 1: SENSÓRICA & CONTROL EN TIEMPO REAL"] TaskSens["Tarea Sensado Agrícola (Cada 3 seg)\nDHT22, Suelo, DS18B20, BH1750"] TaskOLED["Tarea Pantalla OLED & Botones (Cada 150 ms)\nRefresco de vista y debouncing"] TaskMotor["Control Posicional Motor Paso a Paso\nAlgoritmo de apertura proporcional ventana"] ISR_PIR["Interrupción PIR HC-SR501\n(Evento inmediato de presencia)"] TaskSens --> TaskMotor ISR_PIR -->|Evento urgente| TaskQueue TaskSens -->|Métricas| TaskQueue TaskOLED -->|Cambio de modo manual| TaskMotor end subgraph Nube["SERVIDOR & PERSISTENCIA"] ServerAPI["API REST (PHP / Node.js) & Broker MQTT"] DB[("Base de Datos Relacional\nMySQL / InfluxDB")] ServerAPI --> DB end subgraph Aplicaciones["INTERFACES MULTIPLATAFORMA"] DashWeb["🌐 Dashboard Web\n(Supervisión en vivo & Gráficas)"] AppMovil["📱 App Móvil (Flutter / PWA)\n(Alertas Push & Control BLE de Campo)"] AppPC["💻 App Escritorio (PyQt / Electron)\n(Calibración, Auditoría e Informes PDF)"] end TaskQueue -->|Payloads JSON| ServerAPI ServerAPI --> DashWeb ServerAPI --> AppMovil ServerAPI --> AppPC DashWeb -.->|Comando manual apertura| ServerAPI ServerAPI -.->|Acción inversa| TaskNet

06 Ecosistema de Software: Web, Móvil y Escritorio

A. Dashboard Web Responsivo (Panel Central de Mando)

Permite la visualización de datos en tiempo real mediante widgets y gráficas reactivas generadas con Chart.js.

https://agrosmart32.local/dashboard/parcela-invernadero-01
● EN LÍNEA
Temp. Aire (DHT22)
25.4 °C
● Óptimo vegetativo
Humedad Aire
62.8 %
● Sin riesgo fúngico
Humedad Suelo (Cap.)
48.2 %
● Rango de campo
Apertura Ventana Motor
75 %
● Regulando temperatura

Evolución Térmica, Humedad de Suelo y Posición de Compuerta (Últimas 12 horas)

B. Aplicación Móvil

AgroSmart Mobile BLE Activo
🚨 ALERTA DE PRESENCIA
Sensor PIR activado en Parcela 1 a las 03:14 AM. Buzzer disuasorio ejecutado.
ESTADO GENERAL
Invernadero Tomate 01
● Conexión directa Wi-Fi / BLE
ACCIONAMIENTO MANUAL

C. Aplicación de Escritorio (Estación Técnica Agronómica)

AgroSmart Desktop Pro (PyQt6 / Electron)

Módulo de Configuración de Lotes y Calibración de Suelos

Diseñada para el director técnico de la explotación. Permite parametrizar curvas de calibración para distintos sustratos (perlita, fibra de coco, tierra arcillosa), auditar horas de sol acumuladas e imprimir informes para certificaciones ecológicas.

Parámetros de Calibración de Sustrato (Curva Polinómica ADC -> % Volumétrico):
// Calibración Suelo Sustrato Coco + Perlita
#define ADC_AIRE_SECO 3150 // 0% Humedad
#define ADC_AGUA_SATURADA 1420 // 100% Humedad
float humedad = map(analogRead(34), ADC_AIRE_SECO, ADC_AGUA_SATURADA, 0, 100);

07 Presupuesto Detallado de Materiales (Bill of Materials)

Desglose económico del prototipo de campo con costes de componentes comerciales estándar:

Ítem Descripción / Referencia Comercial Cant. Coste Unit. (€) Subtotal (€)
1 Placa de Desarrollo ESP32-WROOM-32 (NodeMCU 38 pines) 1 6.50 € 6.50 €
2 Display Gráfico OLED 0.96" I2C SSD1306 (128x64 px) 1 3.80 € 3.80 €
3 Sensor de Temperatura y Humedad Digital DHT22 (AM2302) 1 4.20 € 4.20 €
4 Sensor Piroeléctrico de Presencia PIR HC-SR501 con Lente Fresnel 1 1.80 € 1.80 €
5 Sensor de Humedad de Suelo Capacitivo v1.2 / v2.0 Anti-corrosión 1 2.50 € 2.50 €
6 Sensor de Temperatura Sumergible Dallas DS18B20 en Acero Inoxidable (1 m) 1 3.50 € 3.50 €
7 Sensor de Radiación e Iluminación Digital BH1750 I2C 1 2.20 € 2.20 €
8 Motor Paso a Paso Bipolar NEMA 17 (17HS4401, 1.5A, 40 N·cm) 1 12.00 € 12.00 €
9 Driver de Potencia para Motor A4988 con Disipador Térmico 1 2.00 € 2.00 €
10 Final de Carrera Mecánico con Rodillo (Homing) 1 1.00 € 1.00 €
11 Kit Interfaz: 3x Pulsadores, 3x LEDs 5mm (V, A, R) y Buzzer Activo 5V 1 set 2.50 € 2.50 €
12 Fuente de Alimentación Conmutada 12V 2A + Módulo Buck LM2596 (5V/3.3V) 1 set 8.50 € 8.50 €
13 Caja Estanca de Derivación IP65 con Prensaestopas para Intemperie 1 7.50 € 7.50 €
14 Tornillería, cables siliconados, resistencias de pull-up y clemas de conexión 1 set 4.00 € 4.00 €
COSTE TOTAL ESTIMADO DE HARDWARE: 59.50 €
Análisis de Rentabilidad: Frente a estaciones meteorológicas agrícolas de marca comercial (que oscilan entre 600 € y 1.500 € sin capacidad de actuación micrométrica por motor ni adaptabilidad de código), el sistema AgroSmart-32 reduce los costes en más de un 85%, facilitando la instalación distribuida de múltiples nodos por hectárea.

08 Planificación Temporal y Cronograma

Plan de desarrollo dividido en 5 etapas secuenciales durante un período de 12 semanas:

gantt title Cronograma de Ejecución - Proyecto AgroSmart-32 dateFormat YYYY-MM-DD section 1. Hardware y Sensórica Pruebas de sensores en protoboard :active, 2026-11-01, 10d Montaje etapa de potencia del motor :2026-11-11, 8d Diseño e integración de PCB y caja IP65 :2026-11-19, 12d section 2. Firmware Embebido Drivers I2C OLED y sensores climáticos :2026-11-28, 10d Lógica de interrupciones PIR y Motor :2026-12-08, 10d Multitarea FreeRTOS y WiFiManager :2026-12-18, 12d section 3. Backend & Dashboard API REST (PHP / JSON) y base de datos :2026-12-25, 12d Dashboard Web interactivo con Chart.js :2027-01-05, 14d section 4. Apps Móvil & PC App Móvil (Alertas y Control BLE) :2027-01-15, 16d App de Escritorio (Reportes y Calibración):2027-01-25, 14d section 5. Validación en Campo Ensayos en invernadero real :2027-02-05, 10d Redacción de memoria final :2027-02-15, 8d

Propuesta Lista para Validación Técnica

El presente anteproyecto proporciona la base técnica, esquemática y de software para el despliegue del sistema AgroSmart-32 en explotaciones agrícolas sostenibles.