我只想在值更改时启动 switch/case 循环

I want to start the switch/case loop only when value change

我是运行switchcase循环获取设定点的值并将其发送到我的空调以更改温度设定点但循环是连续的运行 我只想在 ESP8266 获得新的设定值时激活开关循环。

这是我正在使用的代码:

     int set = root["set_point"];
     switch(set) {

       case 31:
       Serial.println("SET TEMP 31");
       break;
       case 30:
       Serial.println("SET TEMP 30");
       break;
       case 29:
       Serial.println("SET TEMP 29");
       break;

     }




     }

任何解决方案!

感谢大家

您只需保存 set 的最后一个值并检查新值是否发生变化,然后再选择 switch 案例。

int set_last_value = 0;
int set = 0;

void setup()
{
    // ...
}

void loop()
{
    if ((set = root["set_point"]) != set_last_value)
    {
        switch (set)
        {
        case 31:
            Serial.println("SET TEMP 31");
            break;
        case 30:
            Serial.println("SET TEMP 30");
            break;
        case 29:
            Serial.println("SET TEMP 29");
            break;
        default:
            break;
        }
        set_last_value = set;
    }
}