Hi,
I've just recently started learning Python and wrote this code to plot
temperature data coming from an Arduino Uno over serial to a Raspberry Pi.
I've been researching and trying different methods to try and stop the
memory leak, but nothing seems to work. I'm not sure if the issue is with
plotting or collecting the data. I've slowed down the accumulation, but at
this point I need help figuring out what I have done wrong. Any help that
can be provided is great.
import re
import datetime
import pyqtgraph as pg
from PyQt5 import QtCore,QtGui
import numpy as np
import serial
import csv
ser = serial.Serial('/dev/ttyACM0', 9600)
teml = []
numeric_const_pattern = r'[-+]?(\d+\.\d+|\d+)'
def parser(command):
first_bit = re.findall(r'\b[A-Za-z]+',command)
command_value = re.findall(numeric_const_pattern,command)
decision(first_bit, command_value)
def decision(letter, number):
cmd_bits = 'Temp', 'X', 'A'
if cmd_bits[0] in letter:
Temperature_plotting(number[0])
del number[:]
else:
pass
def Temperature_plotting(temperature):
ctim = datetime.datetime.now().time()
resetim = datetime.time(0, 0, 10, 0)
teml.append(float(temperature))
if len(teml) >= 1000:
with open('daily_temp_data.csv', 'a') as csvfile:
fieldnames = ['Date Stamp','Max','Min']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
x = datetime.date.today()
max_temp = max(teml)
min_temp = min(teml)
writer.writerow({'Date Stamp': x,'Max': max_temp,'Min':
min_temp})
del teml[:]
return(teml)
pw = pg.plot(clear=True)
pw.setLabel('left', text='Temp', units='F')
pw.setLabel('bottom', text='Time', units='n*5sec')
pw.setTitle('Temperature')
pw.showGrid(True, True)
pw.showLabel('left', True)
pw.showLabel('bottom', True)
pw.showLabel('top')
pw.setYRange(20, 100, padding=0)
while True:
if ser.inWaiting:
cmd = str(ser.readline())
parser(cmd)
ser.flushInput()
pw.plot(teml[:-1], clear=True)
pg.QtGui.QApplication.processEvents()
--
You received this message because you are subscribed to the Google Groups
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/pyqtgraph/891994a5-add6-4eda-9f5b-39b6809bcd8e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.