1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
import serial
from tkinter import *
from matplotlib import pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg
from matplotlib.ticker import MultipleLocator, FormatStrFormatter
from serial import SerialException
def running():
graphics = Toplevel()
graphics.title("graphics")
graphics.iconbitmap(r"index_FGQ_icon.ico")
graphics.geometry("800x600")
style.use('ggplot')
f = plt.figure(figsize=(14,6.5), dpi=100)
ax1 = f.add_subplot(111)
arduino_Data = serial.Serial(port="com4", baudrate=9600)
try:
arduino_Data = serial.Serial(port='com4', baudrate=9600)
except SerialException:
print("Port is already open")
except FileNotFoundError:
print("Port is not open")
TempF = []
def animate(i):
arduino_String = arduino_Data.readline().decode("utf-8")
data_array = arduino_String.split(',')
temp = float(data_array[0])
TempF.append(temp)
plt.ylim(0, 30)
ax1.plot(TempF,"r")
ay = plt.axes()
ay.yaxis.set_major_locator(MultipleLocator(1))
ay.yaxis.set_minor_locator(MultipleLocator(0.5))
canvas = FigureCanvasTkAgg(f, graphics)
canvas.get_tk_widget().grid(column=1, row=1)
ani = animation.FuncAnimation(f, func=animate, interval=1000, blit=False)
ani.start() |
Partager