使用Python将传感器数据添加到列表中
我正在从事一个项目,我试图将传感器数据(温度、湿度等)存储在一个列表中。我的程序是用python编写的(我对python还是新手)。我将在不同的速度传感器样品。我希望将最近的十个传感器样本存储在一个列表中,并取十个值的平均值。这将有助于平滑来自传感器的数据 但是,我很难让它按照我想要的方式正确工作。我的输出总是在列表的末尾附加一个传感器读数,而且只有一个。我希望它不断地将旧数据推出,并将新数据纳入列表。例如,如果给定传感器仅采集了10个样本,那么列表将如下[1,2,3,4,5,6,7,8,9,10],然后第11个样本将从传感器中输入,并将更改为[2,3,4,5,6,7,8,9,10,11],然后是第12个[3,4,5,6,7,8,9,10,11],依此类推。任何帮助都将不胜感激 下面是我试图使用的代码,将传感器数据附加到列表中,使该列表仅包含最近的十个样本,并定期计算这十个样本的移动平均值使用Python将传感器数据添加到列表中,python,Python,我正在从事一个项目,我试图将传感器数据(温度、湿度等)存储在一个列表中。我的程序是用python编写的(我对python还是新手)。我将在不同的速度传感器样品。我希望将最近的十个传感器样本存储在一个列表中,并取十个值的平均值。这将有助于平滑来自传感器的数据 但是,我很难让它按照我想要的方式正确工作。我的输出总是在列表的末尾附加一个传感器读数,而且只有一个。我希望它不断地将旧数据推出,并将新数据纳入列表。例如,如果给定传感器仅采集了10个样本,那么列表将如下[1,2,3,4,5,6,7,8,9,1
import time
import spidev
def getReading(channel):
rawData = spi.xfer([1,(8+channel)<<4,0])
processesData = (rawData[1]&3)<<8)+rawData[2]
return processedData
voltage = (getReading(7)/1023.0)*3.3
readings = []
reading = round(voltage, 2)
max_samples = 10
def mean(nums):
return float(sum(nums)) / max(len(nums), 1)
avg = mean(readings)
while True:
print ('current average = ' , avg)
print ('readings used for average' , readings)
readings.append(reading)
if len(readings) == max_samples:
readings.pop(0)
print ('readings saved for next time:' , readings)
time.sleep(10)
导入时间
导入spidev
def getReading(通道):
rawData=spi.xfer([1,(8+通道)如果每次都需要新的读取,那么对getReading的调用不应该在循环中吗?类似于:
import time
import spidev
def getReading(channel):
rawData = spi.xfer([1,(8+channel)<<4,0])
processesData = (rawData[1]&3)<<8)+rawData[2]
return processedData
readings = []
max_samples = 10
def mean(nums):
return float(sum(nums)) / max(len(nums), 1)
while True:
voltage = (getReading(7)/1023.0)*3.3
reading = round(voltage, 2)
readings.append(reading)
avg = mean(readings)
print ('current average = ' , avg)
print ('readings used for average' , readings)
if len(readings) == max_samples:
readings.pop(0)
print ('readings saved for next time:' , readings)
time.sleep(10)
导入时间
导入spidev
def getReading(通道):
rawData=spi.xfer([1,(8+通道)A withmaxlen
可以做到这一点。你的getReading调用不应该在循环中吗?你能澄清问题的确切原因吗?请参阅,并提供一个示例。