MODBUS MASTER MONITOR 1.0
Loading...
Searching...
No Matches
Modbus RTU Master Monitor

Resumen

Firmware para un Gateway maestro Modbus RTU en ESP32 TTGO LORA 32 V2.1 basado en RS485, planifica lecturas periódicas, normaliza los datos y los transmite por LoRaWAN (LMIC)dentro de un entorno FreeRTOS.

Dependencias

  • FreeRTOS: tareas, colas, semáforos y sincronización.
  • Arduino core ESP32 + SPI/UART + ModbusClientRTU.
  • LMIC (LoRaWAN) y pila HAL asociada.
  • PlatformIO como toolchain recomendado.

Grupos

Flujo general

  1. Arranque: setup() inicializa Serial/SPI, ModbusClientRTU, colas y tareas.
  2. Descubrimiento: initialDiscoveryTask emite órdenes FC03→EventManager, que delega en MB; parseAndStoreDiscoveryResponse llena slaveList.
  3. Planificación: initScheduler deriva scheduleList; DataRequestScheduler publica eventos de muestreo en queueEventos_Scheduler.
  4. Gestión de eventos: EventManager prioriza scheduler vs periférico, crea tokens, invoca MB.addRequest y registra contexto en requestBuffer.
  5. Callbacks Modbus: handleData/handleError encapsulan respuestas y las envían a queueRespuestas, actualizando fallos y limpiando scheduler según sea necesario.
  6. Formateo: DataFormatter decide si la respuesta es descubrimiento o muestreo; usa BitPacker y formatAndEnqueueSensorData para generar SensorDataPayload y los envía a queueSensorDataPayload.
  7. Agregación: DataAggregatorTask consume payloads, arma un Activate Byte y construye el mensaje final con construirPayloadUnificado, que deposita en queueFragmentos.
  8. Transmisión LoRaWAN: tareaLoRa toma fragmentos, espera semaforoEnvioCompleto y llama a LMIC_setTxData2; tareaRunLoop mantiene os_runloop_once.

Colas y sincronización