Diagrama Visual: Lógica Master Gateway

🧠 Lógica del Cerebro Master (Gateway)

📱 Bluetooth: Eventos del Móvil 📡 LoRa: Radiofrecuencia 🛡️ Filtro: Seguridad Anti-Eco
graph TD %% --- ESTILOS --- classDef ble fill:#e1f5fe,stroke:#01579b,stroke-width:2px; classDef logic fill:#fff9c4,stroke:#fbc02d,stroke-width:2px; classDef lora fill:#ffe0b2,stroke:#e65100,stroke-width:2px; classDef success fill:#e8f5e9,stroke:#2e7d32,stroke-width:3px; classDef fail fill:#ffebee,stroke:#c62828,stroke-width:2px; %% --- CARRIL 1: MUNDO BLUETOOTH (ASÍNCRONO) --- subgraph BLE_World [🔵 MUNDO BLUETOOTH] direction TB App[📱 App Android] -->|Envía 'LEER'| BLE_RX(📥 Callback RX) BLE_RX -->|Detecta Comando| Flag[🚩 Levantar Bandera
'solicitarDato'] end %% --- CARRIL 2: BUCLE PRINCIPAL (SÍNCRONO) --- subgraph Loop_World [⚙️ PROCESADOR ESP32] Start(🔄 Inicio Loop) --> CheckFlag{❓ ¿Bandera Arriba?} CheckFlag -- No --> Sleep(💤 Reposo / Pantalla) Sleep -.-> Start CheckFlag -- Sí --> Action[🏁 Bajar Bandera] Action --> LoRa_TX end %% --- CARRIL 3: MUNDO LORA (RADIO) --- subgraph LoRa_Logic [📡 TRANSACCIÓN RADIO] LoRa_TX[📢 TX: 'REQ_HUM']:::lora --> Timer[⏳ Iniciar Cronómetro
4 Segundos]:::logic Timer --> Wait{❓ ¿Hay Datos?}:::lora Wait -- No --> CheckTime{⏰ ¿Tiempo Agotado?}:::fail CheckTime -- No --> Wait CheckTime -- Sí --> ErrorBLE[❌ Notificar BLE:
'ERROR TIMEOUT']:::fail Wait -- Sí --> ReadMsg[📨 Leer Mensaje]:::lora ReadMsg --> Filter{🛡️ FILTRO ANTI-ECO
¿Empieza por 'HUM:'?}:::logic Filter -- No
(Es 'REQ_HUM' rebotado) --> Ignore[👻 Ignorar Eco]:::fail Ignore --> CheckTime Filter -- Sí
(Es el Dato Real) --> Success[✅ Éxito]:::success end %% --- CONEXIÓN FINAL --- Success --> NotifyBLE[🔔 Notificar BLE:
'HUM: 60.5']:::ble ErrorBLE --> End((Fin)) NotifyBLE --> End %% ASIGNACIÓN DE CLASES class App,BLE_RX,Flag,NotifyBLE ble; class Start,CheckFlag,Action,Sleep,Timer,Filter logic;
Diagrama Visual: Cerebro del Sensor Slave

🛡️ El Cerebro del Sensor Slave (Corregido)

Leyenda Táctica:
🔵 Zona Azul: Escucha pasiva.
🔴 Barrera Roja (Anti-Eco): Ignora órdenes repetidas (< 2.5s).
🟣 Barrera Violeta (Anti-Colisión): Espera 1.5s para no pisar al Repetidor.
graph TD %% --- DEFINICIÓN DE ESTILOS --- classDef listen fill:#e3f2fd,stroke:#2196f3,stroke-width:2px,rx:10,ry:10; classDef filter fill:#ffebee,stroke:#e53935,stroke-width:2px,rx:5,ry:5; classDef work fill:#e8f5e9,stroke:#43a047,stroke-width:2px,rx:5,ry:5; classDef wait fill:#f3e5f5,stroke:#8e24aa,stroke-width:3px,stroke-dasharray: 5 5,rx:5,ry:5; classDef tx fill:#fff3e0,stroke:#fb8c00,stroke-width:2px,rx:5,ry:5; %% --- EL BUCLE INFINITO --- Start(("👂 ESCUCHANDO")):::listen --> Msg{"⚡ ¿Llegó Mensaje?"}:::listen Msg -- No --> Start Msg -- Sí --> Check{"¿Dice 'REQ_HUM'?"}:::listen Check -- No (Ruido) --> Start %% --- BARRERA 1: ANTI-ECO --- subgraph Defense1 [🛡️ BARRERA 1: MEMORIA ANTI-ECO] direction TB Check -- Sí --> TimeCheck{"🧠 ¿Hace menos de 2.5s?"}:::filter TimeCheck -- Sí (Es un Eco) --> Ghost["👻 IGNORAR ECO"]:::filter Ghost --> Start end %% --- ZONA DE TRABAJO --- TimeCheck -- No (Orden Nueva) --> Mark["📝 Anotar Hora"]:::work Mark --> Read["🌡️ Leer Sensor DHT11"]:::work Read --> Pack["📦 Crear Paquete"]:::work %% --- BARRERA 2: ANTI-COLISIÓN --- subgraph Defense2 [🛑 BARRERA 2: ANTI-COLISIÓN] direction TB Pack --> Wait["⏳ ESPERA TÁCTICA
(1500 ms)"]:::wait Note["Evita chocar con el Repetidor"] -.-> Wait end %% --- TRANSMISIÓN --- Wait --> Radio["🚀 TRANSMITIR DATOS"]:::tx Radio --> Start

I am raw html block.
Click edit button to change this html

Arquitectura Heltec LoRa Mesh

Sistema de Telemetría LoRa Mesh

Una arquitectura IoT avanzada bajo demanda que une Bluetooth Low Energy y LoRa mediante nodos Heltec V3.

868/915 MHz
ESP32-S3
SX1262

Arquitectura del Sistema

El sistema utiliza una pila de comunicación multicapa. El usuario inicia las solicitudes a través de una App Móvil (Bluetooth), que se conecta a un Gateway Maestro. El Gateway traduce esto en una señal LoRa de largo alcance, saltando a través de un Repetidor para llegar al Sensor Esclavo distante.

📱

App Móvil

Interfaz de Usuario

Bluetooth LE
📡

Gateway Maestro

Traductor de Protocolo

BLE ↔ LoRa
🔁

Repetidor

Extensor de Rango

Almacenar y Reenviar
🌡️

Sensor Esclavo

Adquisición de Datos

Respuesta Inteligente

Protocolo Anti-Colisión

En una red Mesh, las transmisiones simultáneas causan colisiones. Para prevenir esto, nuestro protocolo implementa una estricta segmentación temporal. El gráfico ilustra el Retardo Táctico de 1500ms que el Esclavo impone para permitir que el Repetidor termine de transmitir antes de que el Esclavo intente responder.

  • Solicitud Maestro: t=0ms
  • Eco Repetidor: t=100ms
  • Zona de Espera Esclavo: 1.5 Segundos
  • Respuesta Esclavo: t=1600ms

Flujo Lógico Inteligente del Esclavo

El Nodo Sensor no es pasivo; filtra activamente el tráfico. Debe distinguir entre el comando original y el eco del Repetidor, y debe gestionar el tiempo de su transmisión para evitar interferir con la red.

Visualización del Árbol de Decisión

👂 Modo ESCUCHA
⚡ Recibido "REQ_HUM"
Defensa 1: Anti-Eco
🧠 Revisar Memoria
¿Activo < 2.5s?
(Si No)
🌡️ Leer Sensor DHT11
Defensa 2: Anti-Colisión
⏳ ESPERA 1500ms
Dejar terminar al Repetidor
🚀 TRANSMITIR Respuesta

Ventana de Rechazo de Eco

El sistema ignora comandos duplicados durante 2.5 segundos después de una operación válida. Esto previene el problema de "Doble Respuesta" causado por los ecos del Repetidor.

Eficiencia y Ciclo de Trabajo

Al usar una arquitectura "Bajo Demanda" en lugar de transmisión continua, el sistema logra un ahorro masivo de energía. La radio solo está activa durante la breve ventana de transmisión, permaneciendo en modo de escucha de bajo consumo la mayor parte del tiempo operativo.

99.8%
Tiempo de Inactividad / Escucha
0.2%
Tiempo Activo de Transmisión

Distribución del Estado de Radio

Visualización del Proyecto Heltec V3 LoRa Mesh

Generado con fines educativos basado en el análisis del firmware del sistema.

Tu producto a través del video

Puedes contactarnos para más información
sobre nuestros productos o servicios.