我正在使用 Raspberry Pi 创建一个气象站。我为不同的传感器(温度、湿度、压力、雨水等)设置了一个 mySQL 数据库,现在开始处理风传感器。
我有一个 python 程序,它监视风速计的 GPIO 引脚并计算脉冲以计算风速。它还通过 ADC 从风向标过程中读取数据以获取方向。对于其他传感器,我只每隔几分钟处理一次,并将数据直接转储到数据库中。因为我要从风传感器数据中计算很多东西,我不一定要每 5 秒写入一次 DB,然后必须读回过去 5 分钟的数据来计算当前的速度和方向。我想收集内存中的数据,进行处理,然后将最终数据写入数据库。传感器读数类似于:
日期时间、速度、方向
2013-6-20 09:33:45, 4.5, W
2013-6-20 09:33:50, 4.0, SW
2013-6-20 09:33:55, 4.3, W
该程序每 5 秒计算一次来自风传感器的数据。我想每 5 分钟将数据写入数据库。因为数据库在 SD 卡上,我显然不想写入数据库 60 次,然后读回处理它,然后每 5 分钟将其写入永久存档数据库。
使用列表列表会更好吗?还是按日期时间键控的元组字典?
{datetime.datetime(2013, 6, 20, 9, 33, 45, 631816): ('4.5', 'W')}
{datetime.datetime(2013, 6, 20, 9, 33, 50, 394820): ('4.0', 'SW')}
{datetime.datetime(2013, 6, 20, 9, 33, 55, 387294): ('4.3', 'W')}
对于后者,更新字典的最佳方法是什么?我应该把它转储到数据库并读回来吗?对于这么少的数据,这似乎每天的读/写量过多。