Python 在RaspberryPi3上使用DHT22传感器进行实时数据记录
我遇到了一个当前项目的问题,该项目旨在将数据从传感器实时传输到平台。它是一个能够测量温度和湿度的DHT22传感器。其想法是将数据保存在csv文件中,然后使用另一个脚本将其发送到平台(将数据从csv文件发送到平台一直有效)。问题是,数据存储在csv文件中,但仅以大约15分钟的间隔存储,并且始终以800块为单位。因此,实时方面没有发挥作用 我使用以下脚本将数据保存为csv文件:Python 在RaspberryPi3上使用DHT22传感器进行实时数据记录,python,csv,logging,real-time,raspberry-pi3,Python,Csv,Logging,Real Time,Raspberry Pi3,我遇到了一个当前项目的问题,该项目旨在将数据从传感器实时传输到平台。它是一个能够测量温度和湿度的DHT22传感器。其想法是将数据保存在csv文件中,然后使用另一个脚本将其发送到平台(将数据从csv文件发送到平台一直有效)。问题是,数据存储在csv文件中,但仅以大约15分钟的间隔存储,并且始终以800块为单位。因此,实时方面没有发挥作用 我使用以下脚本将数据保存为csv文件: import time import adafruit_dht import board dht = adafruit
import time
import adafruit_dht
import board
dht = adafruit_dht.DHT22(board.D4)
with open("/home/pi/Desktop/temp_hum.csv", "a") as log:
log.write("TEMP,HUM\n") # first row in the csv file
while True:
try:
temperature = dht.temperature
humidity = dht.humidity
log.write("{:.1f},{}\n".format(temperature, humidity))
except RuntimeError as error:
# reading doesnt always work, no logging if error
time.sleep(1)
continue
except Exception as error:
dht.exit()
raise error
time.sleep(1)
如您所见,数据应每秒保存一次,而错误消息不应保存。我现在想知道是否有可能将数据实时保存为csv文件,或者是否有更合适的选项。这一切都是在树莓上完成的。由于我对编程知之甚少,脚本大多基于复制粘贴和试错
提前感谢。您遇到的问题是您“写入”了文件对象,但在代码中您从未刷新它。因此,您正在编写的内容将保留在某个缓冲区中。通常,当使用open()创建的
上下文结束时,刷新会自动发生,但它永远不会结束,因为其中有一个无限循环
要解决这一问题,只需使用open()
将每次写入单独包围起来