Загрузка данных


import tkinter as tk
import serial
import threading
import time


ser = serial.Serial('COM3', 9600, timeout=1)
time.sleep(2)

def update_color(distance):
    if distance > 100:
        color = "green"
    elif distance > 50:
        color = "orange"
    elif distance > 10:
        color = "red"
    else:
        color = "darkred"

    distance_label.config(text=f"{distance} см", fg=color)
    root.configure(bg=color)

def read_serial():
    while True:
        try:
            data = ser.readline().decode().strip()
            if data:
                distance = int(data)
                root.after(0, update_color, distance)
        except:
            pass

root = tk.Tk()
root.title("Расстояние")
root.geometry("500x400")

distance_label = tk.Label(root, text="0 см", font=("Arial", 48, "bold"))
distance_label.pack(expand=True)

thread = threading.Thread(target=read_serial, daemon=True)
thread.start()