【问题标题】:How to make BLE Server Notify only when status has changed?如何使 BLE 服务器仅在状态发生变化时通知?
【发布时间】:2019-07-15 04:32:44
【问题描述】:

我正在使用 Arduino IDE 在我的 esp32 上使用 ble,并试图做到这一点,因此当有人打开 LED 时,esp32 会通过“ON”或“OFF”通知客户端。目前使用我的代码,每次循环都会发送更新,但我只想在 pin 15 的值发生变化时通知。

我想我需要探索一个相同的概念,即每当事情发生变化时,我都会想要发送 serial.print。

这是我的相关代码。

if (deviceConnected) {
    if(digitalRead(15)==LOW){
      pCharacteristic->setValue("ON");

    }
    else{
      pCharacteristic->setValue("OFF");

    }
    pCharacteristic->notify();

我找到了这个示例代码,但不确定它是否有用或如何将它结合到我的中

int old_something;

void loop ()
{
 int something = get_my_data ();
 if (something != old_something)
   Serial.print (something);  // display if it changed
 old_something = something;
 }

【问题讨论】:

    标签: c++ arduino bluetooth-lowenergy arduino-ide esp32


    【解决方案1】:

    想通了。在这里它现在可以工作了

    //Way at the Top
    boolean oldState = LOW;
    
    //Down in Loop
     boolean newState = digitalRead(15);
    
      if (deviceConnected) {
        if (newState != oldState) {
          if (newState == LOW) {
            pCharacteristic->setValue("ON");
    
          }
          else {
            pCharacteristic->setValue("OFF");
    
          }
          pCharacteristic->notify();
        };
    
        oldState = newState;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-08
      • 1970-01-01
      相关资源
      最近更新 更多