使用BMP085压力传感器进行Arduino天气预报

使用BMP085压力传感器进行Arduino天气预报,arduino,Arduino,我想用Arduino上的BMP085压力传感器预测什么时候会下雨。我正在使用找到的代码,它非常有效 我现在需要的是计算压力随时间的变化,如果压力下降,比如说,一小时内下降3MPa,可能会下雨 如何跟踪过去的压力读数并与最新读数进行比较?我不知道是否完全理解您的意思或您使用的公式,但我存储日期的方式或为随时间变化的参数创建配置文件的方式除外。 我想保存最后一个值,以防sram过满,或者电路板重新启动,或者可能断电。 使用SD卡模块(2GB比您需要的更多) 您需要每隔几秒钟读取一次数据(使用loop

我想用Arduino上的BMP085压力传感器预测什么时候会下雨。我正在使用找到的代码,它非常有效

我现在需要的是计算压力随时间的变化,如果压力下降,比如说,一小时内下降3MPa,可能会下雨


如何跟踪过去的压力读数并与最新读数进行比较?

我不知道是否完全理解您的意思或您使用的公式,但我存储日期的方式或为随时间变化的参数创建配置文件的方式除外。 我想保存最后一个值,以防
sram
过满,或者电路板重新启动,或者可能断电。 使用SD卡模块(2GB比您需要的更多)


您需要每隔几秒钟读取一次数据(使用loop中的delay或TimedAction库),并使用PROGMEM将其存储在内部闪存中(因为SRAM空间非常有限)。然后使用for循环将给定时间段(例如,一小时)的所有值相加,然后除以值的数量。你可以在不同的时间里做这件事,用简单的减法很容易地找出它们之间的区别。
(double)ValueToRefRence = analogRead(SensorPin);
//you can store it to SD 
boolean MayRain = false;
int InsidCount =0;
double ThresHold = 3.00;
while(!MayRain)
{
(double)CurrentRead = analogRead(SensorPin);
delay(TimeIntervel) //Say every 5min
(double)Delta = ValueToRefRence - CurrentRead ;
if (Delta > ThresHold)
{ MayRain = true;}
else if(InsidCount> 100) //for escape and make new reading 
 {break;}
else 
{InsidCounter++;}

}