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
| import time
import datetime
import serial
import csv
import numpy as np
from scipy import stats
import matplotlib.pyplot as plt
import matplotlib.dates as dates
ser = serial.Serial('COM4', 9600, timeout=1)
time_init=datetime.datetime.now()
list_data=[] #liste contentant les donnees
list_delta=[] #liste contentant les deltas
list_time=[] #liste contenant le temps
test = str(datetime.timedelta(seconds=180.0))
#print (test)
b=True
# boucle qui lit les donnees toutes les 3 minutes
while b:
data=ser.readline() # lecture des donnees du port serie
data=data.decode('ascii') # decode les donnees
time_data=datetime.datetime.now() # heure des donnees
delta=str(time_data - time_init)
list_data.append(data)
list_delta.append(delta)
list_time.append(str(time_data))
print(list_data)
# si delta est strictement superieur a 3 minutes
if delta > test:
del list_time[0] # supprime le premier temps car donnee vide
for data in list_data:
#print(data)
y = np.array([data])
ys = np.squeeze(y)
print(ys)
for time_data in list_time:
#print(time_data)
x = np.array(str(time_data))
print(x)
slope, intercept, r_value, p_value, slope_std_error = stats.linregress(x,ys)
break |
Partager