将传感器数据从Pi保存到csv fi

2024-06-01 02:26:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在设置一个覆盆子圆周率来检测空气质量,温度和湿度。我能够每60秒运行一次脚本来获取感测数据。如果需要定期将数据保存到csv文件中,该怎么办?在


import bme680
import time
import datetime
from datetime import datetime
from bme680 import BME680
from pms5003 import PMS5003, ReadTimeoutError

try:
    sensor = bme680.BME680(bme680.I2C_ADDR_PRIMARY)
except IOError:
    sensor = bme680.BME680(bme680.I2C_ADDR_SECONDARY)


pms5003 = PMS5003()
readings = pms5003.read()
sensor.set_humidity_oversample(bme680.OS_2X)
sensor.set_pressure_oversample(bme680.OS_4X)
sensor.set_temperature_oversample(bme680.OS_8X)
sensor.set_filter(bme680.FILTER_SIZE_3)

print('Data sensing')

try:
    while True:
        if sensor.get_sensor_data():
            output = datetime.now().strftime('%Y-%m-%d,%H:%M:%S,')+'{0:.2f} C,{1:.2f} hPa,{2:.3f} %RH'.format(
                sensor.data.temperature,
                sensor.data.pressure,
                sensor.data.humidity)

            if pms5003.read():
               print(output, readings)
            else:
                print(output)

        time.sleep(60)

except keyboardInterrupt:
    pass

我希望程序能将数据保存在一个csv文件中,文件头包括日期、时间、温度、湿度等


Tags: 文件fromimportoutputdatadatetimeossensor
1条回答
网友
1楼 · 发布于 2024-06-01 02:26:46

要将数据存储为CSV或任何其他文件格式,python中有很多方法。如果你想要更多的控制和更详细的csv,那么你可以使用Pandas或Numpy。在

但如果你只想找到一个简单的解决方案,那么就在这里。在

def store_data(time,temperature,pressure,humidity):
    append = [time,temperature,pressure,humidity]
    with open('sensor_output.csv', 'a') as csvFile:
        writer = csv.writer(csvFile)
        writer.writerow(append)
    csvFile.close()

只要在这个函数中传递您的值,python就会处理其余的。文件将自动创建并将每次追加。在

^{pr2}$

这就是在您的情况下如何调用函数。在

更新: 如果您熟悉pandas和DataFrame,那么这个答案可能会对您有所帮助:

Writing a pandas DataFrame to CSV file

相关问题 更多 >