gpt4 book ai didi

c - 仅通过发送更改的值来减少 Firebase 延迟?

转载 作者:行者123 更新时间:2023-12-04 10:15:53 26 4
gpt4 key购买 nike

我正在使用 Wemos D1 Mini (Arduino) 将传感器数据发送到 Firebase。这是我发送的一个值。我发现这会使程序变慢,因此传感器无法像发送数据一样快速获取数据(这很明显)。

无论如何,我只想在该值更改其属性时将该值发送到 Firebase。这是一个 int值(value),但我不知道如何解决这个问题。我应该使用监听器吗?这是我的代码的一部分:

int n = 0; // will be used to store the count
Firebase.setInt("Reps/Value", n); // sends value to fb
delay(100); // Wait 1 second and scan again

我希望传感器能够每秒扫描一次,它确实做到了。但以这种速度(双关语),值(value)每秒都被推到 FB。这会将扫描速度减慢到每 3 秒一次。我怎么只能使用 firebaseSetInt方法当 n改变它的值(value)?

最佳答案

您可以在每次读取每个新值后通过添加一个简单的条件语句来检查该值是否已更改。

int n = 0; // will be used to store the count
int n_old; // old value saved to fb
if(n!=n_old) { //checks whether value is changed
Firebase.setInt("Reps/Value", n); // sends value to fb
n_old = n; // updates the old value to the last updated
}

delay(100); // Wait 1 second and scan again

或者,如果您想采用宽容方法,您可以进一步执行以下操作:
int n = 0; // will be used to store the count
int n_old; // old value saved to fb
int tolerance = 3; // tolerance upto 3%
if(abs((n-n_old)/((n+n_old)/2))*100 > tolerance) {
Firebase.setInt("Reps/Value", n); // sends value to fb
n_old = n; // updates the old value to the last updated
}

delay(100); // Wait 1 second and scan again

关于c - 仅通过发送更改的值来减少 Firebase 延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61055137/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com