##// END OF EJS Templates
Cambios menores-data enviada
Cambios menores-data enviada

File last commit:

r17:bd1aca73f3ce
r19:a04d8635f5cd
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 """