Sistema Gateway Agrícola
1.0.0

Descripción General:

  • Sistema de Gateway Agrícola con Red Mesh LoRa
    • 🎯 Descripción General
    • 🏗️ Arquitectura del Sistema
      • Componentes Principales
      • Características Técnicas Avanzadas
        • 🔧 Hardware Especializado
        • 💻 Firmware Modular
    • 🚀 Funcionalidades Técnicas Destacadas
      • 1. Gestión de Identidad Avanzada
      • 2. Comunicación Mesh Robusta
      • 3. Gestión de Tiempo Real
      • 4. Lógica de Aplicación Inteligente
    • 📊 Especificaciones Técnicas
      • Hardware del Gateway
      • Comunicación LoRa
      • Capacidades de Red
      • Consumo Energético
    • 🔬 Innovaciones Técnicas
      • 1. Arquitectura Modular SOLID
      • 2. Sistema de Identidad Única
      • 3. Gestión de Errores Robusta
      • 4. Optimización de Energía
    • 📈 Beneficios Técnicos
      • Para Agricultores
      • Para Desarrolladores
      • Para el Sistema
    • 🎯 Casos de Uso
      • 1. Monitoreo de Red Agrícola
      • 2. Gestión de Invernaderos
      • 3. Agricultura de Precisión
    • 🔮 Roadmap Técnico
      • Fase 1 (Completada)
      • Fase 2 (En Desarrollo)
      • Fase 3 (Planificada)
    • 📊 Métricas de Rendimiento
      • Técnicas
      • Operacionales
  • Sistema Gateway Agrícola
    • Sistema de Gateway Agrícola con Red Mesh LoRa
      • 🎯 Descripción General
      • 🏗️ Arquitectura del Sistema
        • Componentes Principales
        • Características Técnicas Avanzadas
      • 🚀 Funcionalidades Técnicas Destacadas
        • 1. Gestión de Identidad Avanzada
        • 2. Comunicación Mesh Robusta
        • 3. Gestión de Tiempo Real
        • 4. Lógica de Aplicación Inteligente
      • 📊 Especificaciones Técnicas
        • Hardware del Gateway
        • Comunicación LoRa
        • Capacidades de Red
        • Consumo Energético
      • 🔬 Innovaciones Técnicas
        • 1. Arquitectura Modular SOLID
        • 2. Sistema de Identidad Única
        • 3. Gestión de Errores Robusta
        • 4. Optimización de Energía
      • 📈 Beneficios Técnicos
        • Para Agricultores
        • Para Desarrolladores
        • Para el Sistema
      • 🎯 Casos de Uso
        • 1. Monitoreo de Red Agrícola
        • 2. Gestión de Invernaderos
        • 3. Agricultura de Precisión
      • 🔮 Roadmap Técnico
        • Fase 1 (Completada)
        • Fase 2 (En Desarrollo)
        • Fase 3 (Planificada)
      • 📊 Métricas de Rendimiento
        • Técnicas
        • Operacionales
    • main_gateway.ino - Punto de Entrada del Sistema Gateway
      • 📋 Descripción General
      • 🏗️ Arquitectura del Sistema
        • Componentes Principales
        • Inicialización Dinámica
      • 📁 Estructura del Archivo
        • Includes y Dependencias
        • Variables Globales
      • 🔧 Función setup()
        • Descripción
        • Secuencia de Inicialización
      • 🔄 Función loop()
        • Descripción
        • Implementación
      • 🔍 Características Técnicas
        • 1. Inicialización Dinámica
        • 2. Manejo de Errores
        • 3. Optimización de Energía
        • 4. Debugging Avanzado
      • 📊 Flujo de Ejecución
        • Fase 1: Inicialización
        • Fase 2: Operación
      • 🔧 Configuración y Personalización
        • Parámetros de Configuración
        • Personalización
      • 🚨 Consideraciones Importantes
        • 1. Orden de Inicialización
        • 2. Gestión de Memoria
        • 3. Robustez del Sistema
      • 📈 Métricas de Rendimiento
        • Tiempos de Inicialización
        • Uso de Recursos
      • 🔮 Mejoras Futuras
        • Fase 1: Optimizaciones
        • Fase 2: Nuevas Funcionalidades
        • Fase 3: Integración
    • config.h - Configuración Central del Sistema Gateway
      • 📋 Descripción General
      • 🏗️ Estructura de Configuración
        • Modos de Operación
      • 📊 Parámetros de Red
        • Configuración de Nodos
        • Timeouts y Delays
        • Delays de Procesamiento
      • 🔧 Configuración de Hardware
        • Comunicación LoRa
        • RTC DS1302 (3-wire interface)
        • Configuración de Comunicación
      • 🔍 Macros de Debugging
        • Sistema de Logging
      • 📈 Configuraciones Avanzadas
        • Parámetros de Comunicación
      • 🔧 Personalización y Optimización
        • Modificación de Parámetros
      • 🚨 Consideraciones Importantes
        • 1. Compatibilidad de Hardware
        • 2. Optimización de Energía
        • 3. Escalabilidad
      • 📊 Métricas de Configuración
        • Uso de Recursos
        • Optimizaciones
      • 🔮 Mejoras Futuras
        • Fase 1: Configuración Dinámica
        • Fase 2: Optimizaciones Avanzadas
        • Fase 3: Integración
      • 📋 Checklist de Configuración
        • Antes del Despliegue
        • Durante la Operación
    • NodeIdentity - Gestión de Identidad Única del Gateway
      • 📋 Descripción General
      • 🏗️ Arquitectura de la Clase
        • Propósito Principal
        • Características Técnicas
      • 📁 Estructura de la Clase
        • Constantes y Definiciones
        • Variables de Instancia
      • 🔧 Métodos Públicos
        • Constructor
        • getNodeID()
        • getDeviceMAC()
        • saveGetway()
        • getGetway()
        • changeNodeID()
        • begin()
      • 🔧 Métodos Privados
        • generateSafeHash()
        • crc8()
        • loadByteFromFile()
        • saveByteToFile()
      • 📊 Algoritmo de Generación de ID
        • Paso 1: Obtención de MAC
        • Paso 2: Generación de Hash
        • Paso 3: Validación contra Lista Negra
        • Paso 4: Persistencia
      • 🔍 Características de Seguridad
        • 1. Protección contra Colisiones
        • 2. Persistencia Robusta
        • 3. Optimización de Energía
      • 📈 Métricas de Rendimiento
        • Tiempos de Operación
        • Uso de Recursos
      • 🚨 Consideraciones Importantes
        • 1. Dependencias de Hardware
        • 2. Gestión de Errores
        • 3. Escalabilidad
      • 🔮 Mejoras Futuras
        • Fase 1: Optimizaciones
        • Fase 2: Nuevas Funcionalidades
        • Fase 3: Integración
      • 📋 Ejemplos de Uso
        • Ejemplo 1: Inicialización Básica
        • Ejemplo 2: Gestión de Gateway
        • Ejemplo 3: Cambio de ID
    • RadioManager - Gestión de Comunicación LoRa Mesh
      • 📋 Descripción General
      • 🏗️ Arquitectura de la Clase
        • Propósito Principal
        • Características Técnicas
      • 📁 Estructura de la Clase
        • Variables de Instancia
        • Dependencias
      • 🔧 Métodos Públicos
        • Constructor
        • init()
        • sendMessage()
        • recvMessage()
        • recvMessageTimeout()
        • update()
      • 📊 Configuración de Hardware
        • Pines de Conexión
        • Configuración SPI
      • 🔍 Características de Comunicación
        • 1. Protocolo LoRa
        • 2. Enrutamiento Mesh
        • 3. Gestión de Red
      • 📈 Métricas de Rendimiento
        • Tiempos de Operación
        • Capacidades de Red
        • Uso de Recursos
      • 🚨 Consideraciones Importantes
        • 1. Configuración de Hardware
        • 2. Gestión de Errores
        • 3. Optimización de Red
      • 🔮 Mejoras Futuras
        • Fase 1: Optimizaciones
        • Fase 2: Nuevas Funcionalidades
        • Fase 3: Integración
      • 📋 Ejemplos de Uso
        • Ejemplo 1: Inicialización Básica
        • Ejemplo 2: Envío de Mensaje
        • Ejemplo 3: Recepción con Timeout
        • Ejemplo 4: Bucle de Comunicación
    • RtcManager - Gestor del Módulo RTC DS1307
      • Descripción General
      • Características Técnicas
        • Hardware
        • Comunicación
      • Estructura de la Clase
      • Métodos Principales
        • Constructor
        • Inicialización
        • Obtención de Fecha/Hora
        • Configuración de Fecha/Hora
        • Validación de Fecha/Hora
        • Obtención de Hora como String
        • Comparación de Horas
        • Impresión de Fecha/Hora
        • Verificación de Estado
      • Ejemplo de Uso
      • Configuración de Hardware
        • Conexiones I2C
        • Notas Importantes
      • Manejo de Errores
        • Errores Comunes
        • Diagnóstico
      • Optimizaciones Implementadas
        • Debug Reducido
        • Validaciones
        • Compatibilidad
      • Diferencias con DS1302
      • Notas de Implementación
    • AppLogic - Lógica de Aplicación del Gateway
      • 📋 Descripción General
      • 🏗️ Arquitectura de la Clase
        • Propósito Principal
        • Características Técnicas
      • 📁 Estructura de la Clase
        • Variables de Instancia
        • Almacenamiento de Datos
      • 🔧 Métodos Públicos
        • Constructor
        • begin()
        • update()
      • 🔧 Métodos Privados
        • sendAnnounce()
        • handleHello()
        • registerNewNode()
        • requestAtmosphericData()
        • requestGroundGpsData()
        • handleUartRequest()
        • sendChangeID()
        • timer()
        • compareHsAndMs()
      • 📊 Gestión de Datos
        • Estructuras de Almacenamiento
        • Gestión de Nodos
      • 🔍 Protocolo de Comunicación
        • Tipos de Mensajes
        • Flujo de Comunicación
      • 📈 Métricas de Rendimiento
        • Tiempos de Operación
        • Capacidades de Red
        • Uso de Recursos
      • 🚨 Consideraciones Importantes
        • 1. Gestión de Memoria
        • 2. Robustez de Red
        • 3. Escalabilidad
      • 🔮 Mejoras Futuras
        • Fase 1: Optimizaciones
        • Fase 2: Nuevas Funcionalidades
        • Fase 3: Integración
      • 📋 Ejemplos de Uso
        • Ejemplo 1: Inicialización Básica
        • Ejemplo 2: Monitoreo de Nodos
        • Ejemplo 3: Acceso a Datos
        • Ejemplo 4: Programación Temporal
        • Ejemplo 5: Gestión de Errores
    • Instalación del Sistema Gateway
      • Requisitos del Sistema
        • Hardware Requerido
        • Software Requerido
      • Instalación del Entorno de Desarrollo
        • 1. Instalar PlatformIO
        • 2. Clonar el Repositorio
        • 3. Instalar Dependencias
      • Configuración del Hardware
        • Diagrama de Conexiones
        • Pasos de Conexión
      • Configuración del Software
        • 1. Configurar PlatformIO
        • 2. Configurar Parámetros
      • Compilación y Subida
        • 1. Compilar el Proyecto
        • 2. Subir Firmware
        • 3. Verificar Instalación
      • Configuración de Red
        • 1. Configurar Frecuencia LoRa
        • 2. Configurar Potencia de Transmisión
        • 3. Configurar Parámetros de Red
      • Verificación del Sistema
        • 1. Pruebas Básicas
        • 2. Pruebas de Red
        • 3. Pruebas de Datos
      • Solución de Problemas
        • Problemas Comunes
        • Comandos de Diagnóstico
      • Próximos Pasos
    • Configuración del Sistema Gateway
      • Configuración de Hardware
        • Pines de Conexión
      • Configuración de Red
        • Parámetros LoRa
        • Parámetros de Red Mesh
        • Timeouts y Delays
      • Configuración de Datos
        • Muestras por Nodo
        • Delays de Procesamiento
      • Configuración de Debugging
        • Modo Debug
      • Configuración de NodeIdentity
        • Archivos de Persistencia
        • Valores por Defecto
      • Configuración de RadioManager
        • Parámetros de Inicialización
      • Configuración de RtcManager
        • Parámetros de Inicialización
      • Configuración de AppLogic
        • Horarios de Muestreo
        • Parámetros de Reintentos
      • Configuración Avanzada
        • Optimización de Memoria
        • Optimización de Energía
        • Configuración de Seguridad
      • Configuración por Entorno
        • Desarrollo
        • Producción
        • Testing
      • Configuración de Monitoreo
        • Logging
        • Métricas
        • Alertas
      • Configuración de Red Mesh
        • Topología
        • Enrutamiento
      • Configuración de Protocolo
        • Tipos de Mensaje
        • Estructura de Mensaje
        • Validación
      • Configuración de Persistencia
        • LittleFS
        • Backup
      • Configuración de Actualizaciones
        • OTA (Over-The-Air)
        • Verificación
      • Configuración de Integración
        • APIs Externas
        • Webhooks
      • Configuración de Diagnóstico
        • Diagnóstico de Hardware
        • Métricas de Rendimiento
    • Solución de Problemas
      • Problemas de Compilación
        • Error: «RadioHead library not found»
        • Error: «RtcDS1302 library not found»
        • Error: «LittleFS library not found»
        • Error de Memoria Insuficiente
      • Problemas de Subida
        • Error: «Failed to connect to ESP8266»
        • Error: «Upload failed»
      • Problemas de Hardware
        • Error de Comunicación LoRa
        • Error de RTC
      • Problemas de Red
        • Nodos No Detectados
        • Pérdida de Paquetes
      • Problemas de Memoria
        • Desbordamiento de Memoria
      • Problemas de Energía
        • Consumo Excesivo
      • Problemas de Datos
        • Datos Corruptos
      • Problemas de Configuración
        • Configuración No Persistente
      • Comandos de Diagnóstico
        • Verificar Estado del Sistema
        • Verificar Memoria
        • Verificar Red
        • Verificar RTC
      • Logs de Diagnóstico
        • Habilitar Logs Detallados
        • Interpretar Logs
      • Contacto y Soporte
    • Referencia de API
      • NodeIdentity API
        • Constructor
        • getNodeID()
        • getDeviceMAC()
        • saveGetway()
        • getGetway()
      • RadioManager API
        • Constructor
        • init()
        • sendMessage()
        • recvMessage()
        • recvMessageTimeout()
        • update()
      • RtcManager API
        • Constructor
        • begin()
        • getDateTime()
        • setDateTime()
        • isDateTimeValid()
        • getTimeString()
        • compareCurrentTimeWith()
        • isRunning()
      • AppLogic API
        • Constructor
        • begin()
        • update()
      • Estructuras de Datos
        • AtmosphericSample
        • GroundGpsPacket
        • MessageHeader
      • Constantes del Sistema
        • Tipos de Mensaje
        • Configuración de Red
        • Timeouts y Delays
        • Pines de Hardware
      • Ejemplos de Uso
        • Inicialización Completa
        • Comunicación Básica
        • Programación Temporal
        • Gestión de Datos
        • Manejo de Errores
    • 📊 Diagramas de Arquitectura - Sistema Gateway Agrícola
      • 🏗️ Arquitectura General del Sistema
      • 🔄 Flujo de Datos del Gateway
      • 🧩 Estructura Modular del Código
      • 📡 Protocolo de Comunicación
      • 🗂️ Estructura de Datos
      • 📊 Logs del Sistema
        • Ejemplo de Log de Inicialización
        • Ejemplo de Log de Comunicación
        • Ejemplo de Log de Errores
        • Ejemplo de Log de Datos de Suelo/GPS
      • 🔧 Configuración de Hardware
      • 📈 Métricas del Sistema
        • Capacidades del Gateway
        • Consumo de Memoria
    • Diagrama de Conexiones de la Placa
    • 📋 Logs de Ejemplo - Sistema Gateway Agrícola
      • 🔍 Logs de Inicialización del Sistema
      • 📡 Logs de Comunicación con Nodos
        • Registro de Nuevos Nodos
        • Solicitud de Datos Atmosféricos
        • Solicitud de Datos de Suelo/GPS
      • ⚠️ Logs de Errores y Advertencias
        • Timeout en Comunicación
        • Error en Datos Recibidos
        • Error de RTC
      • 📊 Logs de Estado del Sistema
        • Estado de Memoria
        • Resumen Diario
      • 🔧 Logs de Debug
        • Debug de Comparación de Tiempo
        • Debug de Almacenamiento de Datos
    • 📚 Ejemplos y Tutoriales - Sistema Gateway Agrícola
      • 🎯 Enfoque de esta Guía
      • 🚀 Ejemplos de Código
        • 📡 Configuración Básica del Gateway
        • 🔧 Configuración de Hardware
        • 📊 Acceso a Datos
      • 🔗 Tutoriales Externos
        • 📚 Arduino y ESP8266
        • 🛠️ Desarrollo y Debugging
        • 📊 Documentación Técnica
      • 🎯 Casos de Uso Comunes
        • 🔍 Debugging de Comunicación
        • ⚙️ Configuración de Red
        • 📈 Monitoreo de Memoria
      • 🔧 Herramientas Recomendadas
        • 📱 IDEs y Editores
        • 🔍 Herramientas de Debugging
        • 📊 Análisis de Datos
      • 🚨 Solución de Problemas
        • ❌ Problemas Comunes
        • 🔗 Recursos de Ayuda
      • 📝 Notas de Desarrollo
        • 🎯 Mejores Prácticas
        • ⚡ Optimizaciones
    • 📊 Diagramas de Código - Sistema Gateway Agrícola
      • 🎯 Diagramas Generados
        • 🔄 Flujo Principal
        • 🏗️ Diagrama de Clases
        • ⏱️ Diagrama de Secuencia
      • 🛠️ Herramientas Utilizadas
      • 📈 Estadísticas
      • 🔗 Integración
    • 📊 Diagramas Avanzados - Sistema Gateway Agrícola
      • 🎯 Diagramas Generados
        • 🔄 Flujo Avanzado
        • 📞 Llamadas de Funciones
        • 📊 Flujo de Datos
        • 🎯 Estados del Sistema
        • 🎨 Graphviz
      • 🛠️ Herramientas Utilizadas
      • 📈 Estadísticas
      • 🔗 Visualización
        • Mermaid
        • Graphviz
      • 📝 Notas
    • 🎨 Herramientas para Generar Diagramas de Código
      • 🐍 Scripts Python Disponibles
        • 📊 generate_flowcharts.py
        • 🚀 generate_advanced_diagrams.py
        • 📦 install_diagram_deps.py
      • 🎯 Tipos de Diagramas Generados
        • 🔄 Diagramas de Flujo
        • 🏗️ Diagramas de Clases
        • ⏱️ Diagramas de Secuencia
        • 📞 Gráficos de Llamadas
        • 📊 Diagramas de Flujo de Datos
        • 🎯 Diagramas de Estados
      • 🛠️ Herramientas Externas
        • 📈 Mermaid
        • 🎨 Graphviz
        • 📊 PyFlowchart
        • 🔍 NetworkX
      • 📋 Comandos Útiles
        • 🔧 Instalar Dependencias
        • 📊 Generar Diagramas
        • 🎨 Convertir Formatos
        • 📖 Regenerar Documentación
      • 🎯 Casos de Uso
        • 🔍 Análisis de Código
        • 📚 Documentación
        • 🛠️ Mantenimiento
      • 🚀 Integración con Sphinx
        • 📄 Configuración
        • 📝 Uso en Documentación
    • En archivos .rst
    • Contribución al Proyecto
      • Cómo Contribuir
        • Reportar Problemas
        • Proponer Mejoras
        • Enviar Pull Requests
      • Estándares de Código
        • Formato de Código
        • Estructura de Archivos
        • Convenciones de Git
      • Testing
        • Tests Unitarios
        • Tests de Integración
      • Documentación
        • Estándares de Documentación
      • Proceso de Review
        • Criterios de Aceptación
        • Proceso de Review
      • Comunicación
        • Canales de Comunicación
        • Código de Conducta
      • Reconocimiento
        • Contribuidores
  • Indices and tables

Componentes del Sistema:

  • main_gateway.ino - Punto de Entrada del Sistema Gateway
    • 📋 Descripción General
    • 🏗️ Arquitectura del Sistema
      • Componentes Principales
      • Inicialización Dinámica
    • 📁 Estructura del Archivo
      • Includes y Dependencias
      • Variables Globales
    • 🔧 Función setup()
      • Descripción
      • Secuencia de Inicialización
        • 1. Configuración Inicial
        • 2. Creación de NodeIdentity
        • 3. Inicialización de RadioManager
        • 4. Inicialización de RtcManager
        • 5. Creación de AppLogic
        • 6. Verificación Final
    • 🔄 Función loop()
      • Descripción
      • Implementación
    • 🔍 Características Técnicas
      • 1. Inicialización Dinámica
      • 2. Manejo de Errores
      • 3. Optimización de Energía
      • 4. Debugging Avanzado
    • 📊 Flujo de Ejecución
      • Fase 1: Inicialización
      • Fase 2: Operación
    • 🔧 Configuración y Personalización
      • Parámetros de Configuración
      • Personalización
    • 🚨 Consideraciones Importantes
      • 1. Orden de Inicialización
      • 2. Gestión de Memoria
      • 3. Robustez del Sistema
    • 📈 Métricas de Rendimiento
      • Tiempos de Inicialización
      • Uso de Recursos
    • 🔮 Mejoras Futuras
      • Fase 1: Optimizaciones
      • Fase 2: Nuevas Funcionalidades
      • Fase 3: Integración
  • config.h - Configuración Central del Sistema Gateway
    • 📋 Descripción General
    • 🏗️ Estructura de Configuración
      • Modos de Operación
        • Modo Debug
        • Modo Producción
    • 📊 Parámetros de Red
      • Configuración de Nodos
      • Timeouts y Delays
      • Delays de Procesamiento
    • 🔧 Configuración de Hardware
      • Comunicación LoRa
      • RTC DS1302 (3-wire interface)
      • Configuración de Comunicación
    • 🔍 Macros de Debugging
      • Sistema de Logging
    • 📈 Configuraciones Avanzadas
      • Parámetros de Comunicación
    • 🔧 Personalización y Optimización
      • Modificación de Parámetros
        • 1. Cambio de Pines
        • 2. Ajuste de Timeouts
        • 3. Configuración de Red
    • 🚨 Consideraciones Importantes
      • 1. Compatibilidad de Hardware
      • 2. Optimización de Energía
      • 3. Escalabilidad
    • 📊 Métricas de Configuración
      • Uso de Recursos
      • Optimizaciones
    • 🔮 Mejoras Futuras
      • Fase 1: Configuración Dinámica
      • Fase 2: Optimizaciones Avanzadas
      • Fase 3: Integración
    • 📋 Checklist de Configuración
      • Antes del Despliegue
      • Durante la Operación
  • NodeIdentity - Gestión de Identidad Única del Gateway
    • 📋 Descripción General
    • 🏗️ Arquitectura de la Clase
      • Propósito Principal
      • Características Técnicas
    • 📁 Estructura de la Clase
      • Constantes y Definiciones
      • Variables de Instancia
    • 🔧 Métodos Públicos
      • Constructor
      • getNodeID()
      • getDeviceMAC()
      • saveGetway()
      • getGetway()
      • changeNodeID()
      • begin()
    • 🔧 Métodos Privados
      • generateSafeHash()
      • crc8()
      • loadByteFromFile()
      • saveByteToFile()
    • 📊 Algoritmo de Generación de ID
      • Paso 1: Obtención de MAC
      • Paso 2: Generación de Hash
      • Paso 3: Validación contra Lista Negra
      • Paso 4: Persistencia
    • 🔍 Características de Seguridad
      • 1. Protección contra Colisiones
      • 2. Persistencia Robusta
      • 3. Optimización de Energía
    • 📈 Métricas de Rendimiento
      • Tiempos de Operación
      • Uso de Recursos
    • 🚨 Consideraciones Importantes
      • 1. Dependencias de Hardware
      • 2. Gestión de Errores
      • 3. Escalabilidad
    • 🔮 Mejoras Futuras
      • Fase 1: Optimizaciones
      • Fase 2: Nuevas Funcionalidades
      • Fase 3: Integración
    • 📋 Ejemplos de Uso
      • Ejemplo 1: Inicialización Básica
      • Ejemplo 2: Gestión de Gateway
      • Ejemplo 3: Cambio de ID
  • RadioManager - Gestión de Comunicación LoRa Mesh
    • 📋 Descripción General
    • 🏗️ Arquitectura de la Clase
      • Propósito Principal
      • Características Técnicas
    • 📁 Estructura de la Clase
      • Variables de Instancia
      • Dependencias
    • 🔧 Métodos Públicos
      • Constructor
      • init()
      • sendMessage()
      • recvMessage()
      • recvMessageTimeout()
      • update()
    • 📊 Configuración de Hardware
      • Pines de Conexión
      • Configuración SPI
    • 🔍 Características de Comunicación
      • 1. Protocolo LoRa
      • 2. Enrutamiento Mesh
      • 3. Gestión de Red
    • 📈 Métricas de Rendimiento
      • Tiempos de Operación
      • Capacidades de Red
      • Uso de Recursos
    • 🚨 Consideraciones Importantes
      • 1. Configuración de Hardware
      • 2. Gestión de Errores
      • 3. Optimización de Red
    • 🔮 Mejoras Futuras
      • Fase 1: Optimizaciones
      • Fase 2: Nuevas Funcionalidades
      • Fase 3: Integración
    • 📋 Ejemplos de Uso
      • Ejemplo 1: Inicialización Básica
      • Ejemplo 2: Envío de Mensaje
      • Ejemplo 3: Recepción con Timeout
      • Ejemplo 4: Bucle de Comunicación
  • RtcManager - Gestor del Módulo RTC DS1307
    • Descripción General
    • Características Técnicas
      • Hardware
      • Comunicación
    • Estructura de la Clase
    • Métodos Principales
      • Constructor
      • Inicialización
      • Obtención de Fecha/Hora
      • Configuración de Fecha/Hora
      • Validación de Fecha/Hora
      • Obtención de Hora como String
      • Comparación de Horas
      • Impresión de Fecha/Hora
      • Verificación de Estado
    • Ejemplo de Uso
    • Configuración de Hardware
      • Conexiones I2C
      • Notas Importantes
    • Manejo de Errores
      • Errores Comunes
      • Diagnóstico
    • Optimizaciones Implementadas
      • Debug Reducido
      • Validaciones
      • Compatibilidad
    • Diferencias con DS1302
    • Notas de Implementación
  • AppLogic - Lógica de Aplicación del Gateway
    • 📋 Descripción General
    • 🏗️ Arquitectura de la Clase
      • Propósito Principal
      • Características Técnicas
    • 📁 Estructura de la Clase
      • Variables de Instancia
      • Almacenamiento de Datos
    • 🔧 Métodos Públicos
      • Constructor
      • begin()
      • update()
    • 🔧 Métodos Privados
      • sendAnnounce()
      • handleHello()
      • registerNewNode()
      • requestAtmosphericData()
      • requestGroundGpsData()
      • handleUartRequest()
      • sendChangeID()
      • timer()
      • compareHsAndMs()
    • 📊 Gestión de Datos
      • Estructuras de Almacenamiento
        • Muestras Atmosféricas
        • Muestras de Suelo/GPS
      • Gestión de Nodos
        • Nodos Activos
        • Nodos Inactivos
    • 🔍 Protocolo de Comunicación
      • Tipos de Mensajes
        • HELLO
        • ANNOUNCE
        • DATA_REQUEST
        • DATA_RESPONSE
      • Flujo de Comunicación
        • 1. Descubrimiento de Nodos
        • 2. Solicitud de Datos
        • 3. Anuncios Periódicos
    • 📈 Métricas de Rendimiento
      • Tiempos de Operación
      • Capacidades de Red
      • Uso de Recursos
    • 🚨 Consideraciones Importantes
      • 1. Gestión de Memoria
      • 2. Robustez de Red
      • 3. Escalabilidad
    • 🔮 Mejoras Futuras
      • Fase 1: Optimizaciones
      • Fase 2: Nuevas Funcionalidades
      • Fase 3: Integración
    • 📋 Ejemplos de Uso
      • Ejemplo 1: Inicialización Básica
      • Ejemplo 2: Monitoreo de Nodos
      • Ejemplo 3: Acceso a Datos
      • Ejemplo 4: Programación Temporal
      • Ejemplo 5: Gestión de Errores

Guías de Uso:

  • Instalación del Sistema Gateway
    • Requisitos del Sistema
      • Hardware Requerido
      • Software Requerido
    • Instalación del Entorno de Desarrollo
      • 1. Instalar PlatformIO
      • 2. Clonar el Repositorio
      • 3. Instalar Dependencias
    • Configuración del Hardware
      • Diagrama de Conexiones
      • Pasos de Conexión
    • Configuración del Software
      • 1. Configurar PlatformIO
      • 2. Configurar Parámetros
    • Compilación y Subida
      • 1. Compilar el Proyecto
      • 2. Subir Firmware
      • 3. Verificar Instalación
    • Configuración de Red
      • 1. Configurar Frecuencia LoRa
      • 2. Configurar Potencia de Transmisión
      • 3. Configurar Parámetros de Red
    • Verificación del Sistema
      • 1. Pruebas Básicas
      • 2. Pruebas de Red
      • 3. Pruebas de Datos
    • Solución de Problemas
      • Problemas Comunes
      • Comandos de Diagnóstico
    • Próximos Pasos
  • Configuración del Sistema Gateway
    • Configuración de Hardware
      • Pines de Conexión
        • ESP8266 - SX1278 LoRa
        • ESP8266 - DS1302 RTC
    • Configuración de Red
      • Parámetros LoRa
      • Parámetros de Red Mesh
      • Timeouts y Delays
    • Configuración de Datos
      • Muestras por Nodo
      • Delays de Procesamiento
    • Configuración de Debugging
      • Modo Debug
    • Configuración de NodeIdentity
      • Archivos de Persistencia
      • Valores por Defecto
    • Configuración de RadioManager
      • Parámetros de Inicialización
    • Configuración de RtcManager
      • Parámetros de Inicialización
    • Configuración de AppLogic
      • Horarios de Muestreo
      • Parámetros de Reintentos
    • Configuración Avanzada
      • Optimización de Memoria
      • Optimización de Energía
      • Configuración de Seguridad
    • Configuración por Entorno
      • Desarrollo
      • Producción
      • Testing
    • Configuración de Monitoreo
      • Logging
      • Métricas
      • Alertas
    • Configuración de Red Mesh
      • Topología
      • Enrutamiento
    • Configuración de Protocolo
      • Tipos de Mensaje
      • Estructura de Mensaje
      • Validación
    • Configuración de Persistencia
      • LittleFS
      • Backup
    • Configuración de Actualizaciones
      • OTA (Over-The-Air)
      • Verificación
    • Configuración de Integración
      • APIs Externas
      • Webhooks
    • Configuración de Diagnóstico
      • Diagnóstico de Hardware
      • Métricas de Rendimiento
  • Solución de Problemas
    • Problemas de Compilación
      • Error: «RadioHead library not found»
      • Error: «RtcDS1302 library not found»
      • Error: «LittleFS library not found»
      • Error de Memoria Insuficiente
    • Problemas de Subida
      • Error: «Failed to connect to ESP8266»
      • Error: «Upload failed»
    • Problemas de Hardware
      • Error de Comunicación LoRa
      • Error de RTC
    • Problemas de Red
      • Nodos No Detectados
      • Pérdida de Paquetes
    • Problemas de Memoria
      • Desbordamiento de Memoria
    • Problemas de Energía
      • Consumo Excesivo
    • Problemas de Datos
      • Datos Corruptos
    • Problemas de Configuración
      • Configuración No Persistente
    • Comandos de Diagnóstico
      • Verificar Estado del Sistema
      • Verificar Memoria
      • Verificar Red
      • Verificar RTC
    • Logs de Diagnóstico
      • Habilitar Logs Detallados
      • Interpretar Logs
    • Contacto y Soporte
  • Referencia de API
    • NodeIdentity API
      • Constructor
      • getNodeID()
      • getDeviceMAC()
      • saveGetway()
      • getGetway()
    • RadioManager API
      • Constructor
      • init()
      • sendMessage()
      • recvMessage()
      • recvMessageTimeout()
      • update()
    • RtcManager API
      • Constructor
      • begin()
      • getDateTime()
      • setDateTime()
      • isDateTimeValid()
      • getTimeString()
      • compareCurrentTimeWith()
      • isRunning()
    • AppLogic API
      • Constructor
      • begin()
      • update()
    • Estructuras de Datos
      • AtmosphericSample
      • GroundGpsPacket
      • MessageHeader
    • Constantes del Sistema
      • Tipos de Mensaje
      • Configuración de Red
      • Timeouts y Delays
      • Pines de Hardware
    • Ejemplos de Uso
      • Inicialización Completa
      • Comunicación Básica
      • Programación Temporal
      • Gestión de Datos
      • Manejo de Errores

Diagramas y Arquitectura:

  • 📊 Diagramas de Arquitectura - Sistema Gateway Agrícola
    • 🏗️ Arquitectura General del Sistema
    • 🔄 Flujo de Datos del Gateway
    • 🧩 Estructura Modular del Código
    • 📡 Protocolo de Comunicación
    • 🗂️ Estructura de Datos
    • 📊 Logs del Sistema
      • Ejemplo de Log de Inicialización
      • Ejemplo de Log de Comunicación
      • Ejemplo de Log de Errores
      • Ejemplo de Log de Datos de Suelo/GPS
    • 🔧 Configuración de Hardware
    • 📈 Métricas del Sistema
      • Capacidades del Gateway
      • Consumo de Memoria
  • Diagrama de Conexiones de la Placa
  • 📋 Logs de Ejemplo - Sistema Gateway Agrícola
    • 🔍 Logs de Inicialización del Sistema
    • 📡 Logs de Comunicación con Nodos
      • Registro de Nuevos Nodos
      • Solicitud de Datos Atmosféricos
      • Solicitud de Datos de Suelo/GPS
    • ⚠️ Logs de Errores y Advertencias
      • Timeout en Comunicación
      • Error en Datos Recibidos
      • Error de RTC
    • 📊 Logs de Estado del Sistema
      • Estado de Memoria
      • Resumen Diario
    • 🔧 Logs de Debug
      • Debug de Comparación de Tiempo
      • Debug de Almacenamiento de Datos
  • 📚 Ejemplos y Tutoriales - Sistema Gateway Agrícola
    • 🎯 Enfoque de esta Guía
    • 🚀 Ejemplos de Código
      • 📡 Configuración Básica del Gateway
      • 🔧 Configuración de Hardware
      • 📊 Acceso a Datos
    • 🔗 Tutoriales Externos
      • 📚 Arduino y ESP8266
        • Tutoriales Básicos
        • Comunicación LoRa
        • RTC y Tiempo
      • 🛠️ Desarrollo y Debugging
        • PlatformIO
        • Git y Versionado
      • 📊 Documentación Técnica
        • Sphinx y Autodoc
        • Markdown y reStructuredText
    • 🎯 Casos de Uso Comunes
      • 🔍 Debugging de Comunicación
      • ⚙️ Configuración de Red
      • 📈 Monitoreo de Memoria
    • 🔧 Herramientas Recomendadas
      • 📱 IDEs y Editores
      • 🔍 Herramientas de Debugging
      • 📊 Análisis de Datos
    • 🚨 Solución de Problemas
      • ❌ Problemas Comunes
        • Radio no inicializa
        • RTC no responde
        • Memoria insuficiente
      • 🔗 Recursos de Ayuda
    • 📝 Notas de Desarrollo
      • 🎯 Mejores Prácticas
      • ⚡ Optimizaciones

Diagramas de Código:

  • 📊 Diagramas de Código - Sistema Gateway Agrícola
    • 🎯 Diagramas Generados
      • 🔄 Flujo Principal
      • 🏗️ Diagrama de Clases
      • ⏱️ Diagrama de Secuencia
    • 🛠️ Herramientas Utilizadas
    • 📈 Estadísticas
    • 🔗 Integración
  • 📊 Diagramas Avanzados - Sistema Gateway Agrícola
    • 🎯 Diagramas Generados
      • 🔄 Flujo Avanzado
      • 📞 Llamadas de Funciones
      • 📊 Flujo de Datos
      • 🎯 Estados del Sistema
      • 🎨 Graphviz
    • 🛠️ Herramientas Utilizadas
    • 📈 Estadísticas
    • 🔗 Visualización
      • Mermaid
      • Graphviz
    • 📝 Notas
  • 🎨 Herramientas para Generar Diagramas de Código
    • 🐍 Scripts Python Disponibles
      • 📊 generate_flowcharts.py
      • 🚀 generate_advanced_diagrams.py
      • 📦 install_diagram_deps.py
    • 🎯 Tipos de Diagramas Generados
      • 🔄 Diagramas de Flujo
      • 🏗️ Diagramas de Clases
      • ⏱️ Diagramas de Secuencia
      • 📞 Gráficos de Llamadas
      • 📊 Diagramas de Flujo de Datos
      • 🎯 Diagramas de Estados
    • 🛠️ Herramientas Externas
      • 📈 Mermaid
      • 🎨 Graphviz
      • 📊 PyFlowchart
      • 🔍 NetworkX
    • 📋 Comandos Útiles
      • 🔧 Instalar Dependencias
      • 📊 Generar Diagramas
      • 🎨 Convertir Formatos
      • 📖 Regenerar Documentación
    • 🎯 Casos de Uso
      • 🔍 Análisis de Código
      • 📚 Documentación
      • 🛠️ Mantenimiento
    • 🚀 Integración con Sphinx
      • 📄 Configuración
      • 📝 Uso en Documentación
  • En archivos .rst

Desarrollo:

  • Contribución al Proyecto
    • Cómo Contribuir
      • Reportar Problemas
      • Proponer Mejoras
      • Enviar Pull Requests
    • Estándares de Código
      • Formato de Código
      • Estructura de Archivos
      • Convenciones de Git
    • Testing
      • Tests Unitarios
      • Tests de Integración
    • Documentación
      • Estándares de Documentación
    • Proceso de Review
      • Criterios de Aceptación
      • Proceso de Review
    • Comunicación
      • Canales de Comunicación
      • Código de Conducta
    • Reconocimiento
      • Contribuidores
Sistema Gateway Agrícola
  • Búsqueda


© Derechos de autor 2025, Equipo de Desarrollo Agrícola.

Compilado con Sphinx usando un tema proporcionado por Read the Docs.