Python problem - plotta data i realtid.
Jag håller med ett projekt på en univ. kurs där vi skall öva på att läsa in data från en sensor och sedan presentera värdena grafiskt. I mitt fall använder jag en sensor, kallad BME680, för att mäta temperatur, lufttryck och luftfuktighet. Har skrivit en kod i Python för inläsning av 100 värden. Den ser ut så här:
import serial, atexit
import time
import numpy as np
def cleanup():
ser.close()
f.close()
atexit.register(cleanup)
query1 = "T0?"
query2 = "P0?"
query3 = "H0?"
ser = serial.Serial("COM3",9600,timeout=1) # min kontakt med Arduino nano
time.sleep(3)
# ser.flush()
# repeating part start
filnamn = input("Enter filnamn:")
f = open(filnamn, 'w')
# t0 = time.time() # starting time
# for i in range(0, 10):
i = 1
while i < 100:
i += 1
# writting to serial
ser.write(query1.encode())
time.sleep(0.5)
#read from serial - temperature
reply = ser.readline()
reply=reply.decode('UTF-8')
print(reply)
temperatures = float(reply[2:])
# writting to serial
ser.write(query2.encode())
time.sleep(0.5)
#read from serial - air pressure
reply = ser.readline()
reply=reply.decode('UTF-8')
print(reply)
pressures = float(reply[2:])
# writting to serial
ser.write(query3.encode())
time.sleep(0.5)
#read from serial - humidity
reply = ser.readline()
reply=reply.decode('UTF-8')
print(reply)
humidity = float(reply[2:])
f.write(time.strftime("%c"))
f.write(" ")
f.write(str(temperatures))
f.write(" ")
f.write(str(pressures))
f.write(" ")
f.write(str(humidity))
f.write('\n')
print(i)
f.write('\n')
time.sleep(.1)
Hur fungerar det om man vill plotta data i realtid? Skall plotkommandona ligga inuti eller utanför while-loopen??...