イベントの受け取り

次にobnizOSからオンラインになったときにイベントを受け取り、オンラインの時にLEDを光らせるプログラムを作成します。

イベント

obniz.onEvent()を利用することでインターネットにつながった、クラウドにつながったといったきっかけで関数を呼ばせることができます。

ESP32-DevKitCとLEDをお持ちの方は、12ピンにLEDのアノード(足の長いほう)をつなぎ、GNDにLEDのカソード(足の短いほう)をつないでください。

#include <obniz.h>
#define LED_IO 12
bool onlineFlg = false;

void onEvent(os_event_t event, uint8_t* data, uint16_t length) {
  switch (event) {
  case PLUGIN_EVENT_NETWORK_CLOUD_CONNECTED:
    Serial.println("cloud Connected");
    onlineFlg = true;
    break;
  case PLUGIN_EVENT_NETWORK_CLOUD_DISCONNECTED:
    Serial.println("cloud Disconnected");
    onlineFlg = false;
    break;
  }
}

void setup() {
  Serial.begin(115200);
  Serial.println("online led start!");
  obniz.onEvent(onEvent);
  obniz.start();
  obniz.pinReserve(LED_IO);
  pinMode(LED_IO, OUTPUT);
}
void loop() {
  digitalWrite(LED_IO, onlineFlg);
  delay(500);
}

このコードを環境構築ずみのArduinoIDEでESP32のボードに書き込んでみましょう。

前もってネットワークにつながるように設定をしておきましょう。

起動して、しばらくたつとシリアルモニターに「cloud Connected」と表示されLEDが点灯することを確認できたでしょうか?

今回は、obnizクラウドに接続できた時のイベントのみ使用していますが、ほかのイベントも複数あります。詳細はドキュメントをご覧ください。