Aplicaciones de ingeniería con PythonEngineering applications in Python

Panel de variables de procesoProcess variables dashboard

Una vista única para revisar cómo se comportó una línea industrial durante el día: tendencias, límites de operación y producción por turno.

A single view to review how an industrial line behaved during the day: trends, operating limits and production per shift.

RolRole
Desarrollo completoEnd-to-end development
TecnologíasStack
Python · Flet · flet-charts · pandas
EstadoStatus
Demo con datos simuladosDemo with simulated data
EnlacesLinks
GitHub ↗
Variables simuladasSimulated variables
VariableVariableUnidadUnitRangoRange
Temperatura de hornoOven temperature°C180 – 240
Presión hidráulicaHydraulic pressurebar4.5 – 7.5
Vibración de rodamientosBearing vibrationmm/s RMS0.5 – 4.5
Consumo energéticoEnergy usekWh45 – 95
ProducciónProductionuds/h0 – 180
Eficiencia (derivada)Efficiency (derived)%calculadacomputed

01ResumenSummary

Aplicación de escritorio que presenta 48 lecturas (una cada 30 minutos) de cinco variables de proceso y una de eficiencia, organizadas en pestañas con gráficos de línea y de barras. Los datos se generan con un modelo que imita el comportamiento de sensores reales y se exportan a un libro de Excel.

Desktop application presenting 48 readings (one every 30 minutes) of five process variables plus efficiency, organized in tabs with line and bar charts. Data comes from a model that mimics real sensor behavior and is exported to an Excel workbook.

02ProblemaProblem

En muchas plantas pequeñas los datos de proceso terminan en hojas de cálculo separadas. Revisar si una temperatura superó su límite o si un turno produjo menos exige abrir archivos y armar gráficos a mano cada vez.

In many small plants, process data ends up in separate spreadsheets. Checking whether a temperature exceeded its limit or a shift underproduced means opening files and building charts by hand every time.

03ObjetivosGoals

  • Mostrar las variables clave de una línea en una sola aplicación.Show a line's key variables in a single application.
  • Marcar límites y consignas directamente sobre cada gráfico.Mark limits and setpoints directly on each chart.
  • Resumir la producción por turno.Summarize production per shift.
  • Exportar los datos para análisis posterior.Export the data for further analysis.

04Solución implementadaImplemented solution

La interfaz tiene una cabecera con indicadores clave y un estado de conexión, y pestañas para Temperatura, Presión, Vibración, Producción, Energía y Eficiencia. Cada gráfico de línea incluye su referencia: límite de 235 °C en el horno, consigna de 6,0 bar en la línea hidráulica y umbral de 3,5 mm/s en vibración. La producción se agrupa por turno en un gráfico de barras.

The interface has a header with key indicators and a connection status, and tabs for Temperature, Pressure, Vibration, Production, Energy and Efficiency. Each line chart includes its reference: a 235 °C oven limit, a 6.0 bar hydraulic setpoint and a 3.5 mm/s vibration threshold. Production is grouped per shift in a bar chart.

05Arquitectura técnicaTechnical architecture

  • data_generator.py — genera las series con suavizado exponencial y las exporta a Excel (5 hojas).data_generator.py — generates the series with exponential smoothing and exports them to Excel (5 sheets).
  • charts.py — construye cada gráfico con sus ejes y líneas de referencia.charts.py — builds each chart with its axes and reference lines.
  • app.py — compone la interfaz: cabecera, indicadores y pestañas.app.py — assembles the UI: header, indicators and tabs.
  • main.py — punto de entrada.main.py — entry point.

06Mi contribuciónMy contribution

Desarrollé el modelo de datos simulados, el módulo de gráficos y la interfaz, separando la generación de datos de la presentación para que el origen pueda reemplazarse por datos reales sin tocar la UI.

I built the simulated data model, the charting module and the interface, separating data generation from presentation so the source can be replaced with real data without touching the UI.

07Decisiones de diseño e ingenieríaDesign & engineering decisions

Suavizado exponencialExponential smoothing
Las series varían de forma gradual, como un sensor real, en lugar de saltar al azar.Series change gradually, like a real sensor, instead of jumping at random.
Referencias dentro del gráficoReferences inside the chart
El operador ve de inmediato si una variable se acercó a su límite.The operator sees immediately whether a variable approached its limit.
Una pestaña por variableOne tab per variable
Cada gráfico conserva su escala y unidad; no se mezclan magnitudes distintas.Each chart keeps its own scale and unit; different magnitudes are not mixed.
Datos separados de la UIData separate from UI
Permite conectar después una base de datos, un PLC o un broker MQTT.Makes it possible to later plug in a database, a PLC or an MQTT broker.

08Dificultades y solucionesChallenges & solutions

  • Datos creíbles sin planta real: rangos y comportamientos definidos por variable, incluida la parada del turno nocturno en producción.Believable data without a real plant: ranges and behaviors defined per variable, including the night-shift stop in production.
  • Ejes legibles en 24 h: etiquetas horarias cada cuatro lecturas para evitar saturar el eje X.Readable 24 h axes: hour labels every four readings to avoid crowding the X axis.

09ResultadosResults

Aplicación funcional con seis vistas de análisis, indicadores en cabecera, líneas de referencia por variable, producción por turno y exportación a un libro de Excel de cinco hojas. Los datos son simulados: el proyecto demuestra la presentación y la estructura, no mediciones de una planta.

Working application with six analysis views, header indicators, per-variable reference lines, production per shift and export to a five-sheet Excel workbook. Data is simulated: the project demonstrates presentation and structure, not plant measurements.

10Imágenes y diagramasImages & diagrams

Referencias por gráficoReferences per chart
GráficoChartTipoTypeReferenciaReference
Temperatura de hornoOven temperatureLíneaLineLímite 235 °CLimit 235 °C
Presión hidráulicaHydraulic pressureLíneaLineConsigna 6,0 barSetpoint 6.0 bar
VibraciónVibrationLíneaLineUmbral 3,5 mm/sThreshold 3.5 mm/s
ProducciónProductionBarrasBarsPor turnoPer shift

Líneas de referencia definidas en charts.py. El proyecto aún no incluye una captura publicada.Reference lines defined in charts.py. The project does not yet include a published screenshot.

11AprendizajesLearnings

Un panel industrial vale por el contexto que agrega: un número sin su límite no le dice nada al operador. El siguiente paso natural es alimentar el panel con el nodo IIoT de ESP32 en lugar del generador.

An industrial dashboard is worth the context it adds: a number without its limit tells the operator nothing. The natural next step is to feed the dashboard from the ESP32 IIoT node instead of the generator.

12Enlaces relacionadosRelated links

Siguiente casoNext caseHMI de adquisición y control con ArduinoArduino data acquisition & control HMI
© 2026 · magnoefren.github.io Sin cookies ni rastreadores · Datos en vivo: Open-Meteo y GitHubNo cookies or trackers · Live data: Open-Meteo and GitHub