Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- """
- Antonio Villanueva Segura
- Lectura de los datos de una bascula en RS232
- """
- import time
- import threading
- from tkinter import *
- from tkinter import ttk
- import serial
- port='/dev/ttyACM0' #Puerto para comunicar con Tanita
- bps=9600 #Velocidad
- dato="" #Lectura bruta de los datos del puerto serie
- #Sistema grafico
- ventana = Tk()
- ventana.title("TANITA")
- ventana.resizable( False, False )
- def leeSerie():
- """ Lectura del puerto serie """
- global dato
- with serial.Serial(port, bps, timeout=1) as ser:
- dato = ser.readline() # lee una linea terminada en \n
- def actualizaDatos():
- """ Actualiza el peso en el GUI , desde un thread """
- global datos
- global dato
- while (True):
- leeSerie() #Lee el puerto serie actualiza la variable datos
- #Afecta la variable datos , que a su vez afectara la variable peso
- datos.set((dato.decode("utf-8")).strip('\n').strip('\r') )
- time.sleep(1)
- if __name__ == '__main__':
- """ Bucle principal """
- global datos
- ventana = ttk.Frame(ventana, padding=10)
- ventana.grid() # Ventana tipo rejilla
- text = Text(width = 65, height = 5)
- ventana = ttk.Frame(ventana, padding=10)
- ventana.grid() # Ventana tipo rejilla
- #Etiqueta para mostrar el puerto tty ...es un ejemplo
- puerto=ttk.Label(ventana,text=port).grid(column=0, row=0)
- #Etiqueta para mostrar la velocidad bps
- velocidad=ttk.Label(ventana, text=str(bps)).grid(column=1, row=0)
- #Etiqueta informativa Peso
- ttk.Label(ventana, text="Peso ").grid(column=0, row=1)
- #2a. Etiqueta para leer el peso de TANITA desde el RS232
- datos = StringVar() #Variable para leer datos desde el puerto serie
- peso=ttk.Entry( ventana, state="disable",textvariable=datos , width=6 ).grid(column=1, row=1)
- #Un boton para salir p.e ...
- boton=ttk.Button(ventana, text="salir",command=ventana.destroy).grid(column=0, row=2)
- #threads , proceso paralelo al hilo principal para leer el RS232
- t2 = threading.Thread(target = actualizaDatos)
- #t2.daemon = True
- t2.start()
- ventana.mainloop()
- """
- /*
- Bascula TANITA virtual , genera pesos aleatorios en el ttyACM0
- codigo para el Arduino
- */
- int peso=0;
- void setup() {Serial.begin(9600);}
- void loop() {
- // Envia un peso aleatorio hacia el RS232
- Serial.print(random(1,150));//Peso aleatorio
- Serial.println ("Kg");//Anade Kg al final
- delay (1000);
- }
- """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement