##// END OF EJS Templates
Se agrego el threshold...
Se agrego el threshold Se modifico el programa principal para que la alarma se active según el porcentaje definido por el operador

File last commit:

r17:bd1aca73f3ce
r20:96b1842fbedf schottkyExp
Show More
subscribe_script.py
64 lines | 2.1 KiB | text/x-python | PythonLexer
JesusTapia-dev
Grafica Tiempo Real...
r14 import matplotlib.pyplot as plt
import matplotlib.animation as animation
JesusTapia-dev
Publish con Python...
r13 import paho.mqtt.client as mqtt
JesusTapia-dev
Grafica Tiempo Real...
r14 import numpy as np
subscribe_topic="tesis/AnalogRaw"
JesusTapia-dev
Publish con Python...
r13 broker_address = "192.168.43.149"
JesusTapia-dev
Grafica Tiempo Real...
r14 analogRawMatriz=[]
JesusTapia-dev
Publish con Python...
r13 contador = 0
JesusTapia-dev
Grafica Tiempo Real...
r14 data=[]
def init():
JesusTapia-dev
Add main script...
r17 ax.set_ylim(900, 1800) # Ajusta los límites de la gráfica según tus necesidades
JesusTapia-dev
Grafica Tiempo Real...
r14 ax.set_xlim(0,30)
line.set_data([], [])
return line,
def update(frame):
y_data = np.array(data)
x_data = np.arange(len(y_data))
line.set_data(x_data, y_data)
return line,
JesusTapia-dev
Publish con Python...
r13 # Callback cuando se establece la conexión con el broker MQTT
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("Conexión exitosa con el broker")
# Suscribirse a un tópico después de la conexión exitosa
client.subscribe(subscribe_topic)
else:
print("Error de conexión. Código de retorno =", rc)
# Callback cuando se recibe un mensaje en el tópico suscrito
def on_message(client, userdata, msg):
JesusTapia-dev
Grafica Tiempo Real...
r14 global analogRawMatriz
JesusTapia-dev
Publish con Python...
r13 global contador
JesusTapia-dev
Grafica Tiempo Real...
r14 global data
JesusTapia-dev
Publish con Python...
r13 mensaje = float(msg.payload.decode())
JesusTapia-dev
Grafica Tiempo Real...
r14 analogRawMatriz.append(mensaje)
JesusTapia-dev
Publish con Python...
r13 contador=contador+1
JesusTapia-dev
Grafica Tiempo Real...
r14 if contador==500:
JesusTapia-dev
Publish con Python...
r13 contador=0
JesusTapia-dev
Grafica Tiempo Real...
r14 valor_promedio = sum(analogRawMatriz) / len(analogRawMatriz)
JesusTapia-dev
Add main script...
r17 # potencia=1.5476*valor_promedio-91.898
data.append(valor_promedio)
JesusTapia-dev
Grafica Tiempo Real...
r14 data[:] = data[-30:]
analogRawMatriz=[]
JesusTapia-dev
Add main script...
r17 print(valor_promedio)
JesusTapia-dev
Publish con Python...
r13 # Configurar el cliente MQTT
client = mqtt.Client()
# Configurar los callbacks
client.on_connect = on_connect
client.on_message = on_message
client.connect(broker_address, port=1883, keepalive=60)
JesusTapia-dev
Grafica Tiempo Real...
r14 # Configuración de la gráfica
fig, ax = plt.subplots()
line, = ax.plot([], [], lw=2)
ax.set_xlabel('Tiempo')
ax.set_ylabel('Analog Raw')
ax.grid(True)
# Configuración de la animación
ani = animation.FuncAnimation(fig, update, frames=None, init_func=init, blit=True)
JesusTapia-dev
Publish con Python...
r13 # Mantener la ejecución del programa para recibir mensajes
JesusTapia-dev
Grafica Tiempo Real...
r14 #client.loop_forever()
client.loop_start()
plt.show()
client.loop_stop()
""""
JesusTapia-dev
Add main script...
r17 PARA UN IPP DE 10MS Y 10 US DE ANCHO, la ecuación sera:PotLinea= 1.5476*AnalogRaw-91.898
JesusTapia-dev
Grafica Tiempo Real...
r14 """