如何仅在状态更改时使BLE服务器通知?

时间:2019-07-15 04:32:44

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

我正在使用Arduino IDE在esp32上使用ble,并试图做到这一点,因此当有人打开LED时,esp32会以“ ON”或“ OFF”通知客户端。目前,我的代码会在每次循环时发送更新,但我只想在引脚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;
 }

1 个答案:

答案 0 :(得分:0)

弄清楚了。现在可以在这里使用了

//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;