Arduino IDEにプラグインをインストールします。
Arduino IDEを事前にインストールしておいてください。
本項目ではWindowsの環境で解説しますが、Macでも文言が一部違いますが、同様の設定項目がありますので、そちらで設定をおこなってください。
Arduino IDEのインストールを完了したら起動させます。
「ファイル」→「環境設定」を開きます。
環境設定のダイアログが表示されます。
ダイアログ下部にある「追加のボードマネージャのURL」を探します。
「追加のボードマネージャのURL」の入力欄に下記のURLを挿入します。
https://obniz.github.io/obniz-plugin-arduino/package_obniz_index.json
設定できたら「OK」で閉じて設定を保存します。
次に「ツール」→ 「ボード」 → 「ボードマネージャ」を開きます。
「ボードマネージャ」を開くと処理が走り待ち時間が発生します。
しばらくすると落ち着くので検索欄に「obniz」と入力します。
次の画像のようにインストールというボタンがあるので、それを押しインストールを行います。
上記の画像のようにインストールできたら、「ツール」→「ボード」の選択肢にobniz plug-inとして、「ESP32 Dev Module」など複数のデバイスが確認できます。
DevKitCであれば、「ESP32 Dev Module」を選び開発を進めていきましょう。
これでセットアップは完了です。
Arduino IDEでの書き込み
プログラムを書き込む際には適切なシリアルポートを選択する必要があります。
「ツール」→「シリアルポート」→「適切なポート」で選びます。
選び終わったらArduino IDEの「→」の書き込みボタンより書き込みます。
obnizOS プラグインでなにができるのか
サンプルプログラムをArduino IDEから確認できます。
「ファイル」→「スケッチ例」→「obniz」からサンプルプログラムが複数用意されていますので、そちらから使用を始める良いでしょう。
obnizOSの開始
obniz.start();
obnizOSを開始します。
obnizOSの終了
obniz.end();
obnizOSを終了します。
obnizOSのバージョン取得
obniz.getOsVersion();
obnizOSのバージョンを取得できます。
obnizID取得
obniz.getId();
obnizIDを取得できます。
プラグインコマンドの送受信
コマンドの送信
obniz.commandSend(data,length);
コマンドの受信
void onCommand(uint8_t* data, uint16_t length){
Serial.println("\nonCommand");
Serial.write(data,length);
Serial.println("\nEnd onCommand");
}
obniz.commandReceive(onCommand);
obniz.jsとデバイス間でコマンドを使用することでデータのやり取りができます。
IOの占有、解放
obnizOSから制御されないようにIOの使用権を占有できます。また意図的に解放できます。
次の関数ではIOを自動的に占有します。
- pinMode
- wire.begin
- analogRead
占有していない場合には、obnizOSが起動する際や切断時(切断時にリセットを無効にする場合は次の設定が必要 reset_obniz_on_ws_disconnection: false
) にIOのリセットが行われ、プラグインから正常に制御できなくなる可能性があります。
占有
obniz.pinReserve(io)
解放
obniz.pinFree(io)
obnizOSイベント
オフラインやオンラインになったときにイベントを取得できます。
Network系イベント
- ネットワーク接続
PLUGIN_EVENT_NETWORK_HARDWARE_CONNECTED
- obnizクラウド接続
PLUGIN_EVENT_NETWORK_CLOUD_CONNECTED
- ネットワーク切断
PLUGIN_EVENT_NETWORK_HARDWARE_DISCONNECTED
- obnizクラウド切断
PLUGIN_EVENT_NETWORK_CLOUD_DISCONNECTED
- WiFiスキャン
PLUGIN_EVENT_NETWORK_WIFI_SCANNING
- WiFi未発見
PLUGIN_EVENT_NETWORK_WIFI_NOTFOUND
- WiFi接続中
PLUGIN_EVENT_NETWORK_WIFI_CONNECTING
- WiFiアクセスポイントモード時接続イベント
PLUGIN_EVENT_NETWORK_WIFI_SOFTAP_CONNECTED
- WiFiエラー
PLUGIN_EVENT_NETWORK_WIFI_FAIL
その他
- その他エラー
PLUGIN_EVENT_FAIL
- OTA開始
PLUGIN_EVENT_OTA_START
- OTA終了
PLUGIN_EVENT_OTA_END
- OTAエラー
PLUGIN_EVENT_OTA_ERROR
void onEvent(os_event_t event, uint8_t* data, uint16_t length) {
switch (event) {
case PLUGIN_EVENT_NETWORK_HARDWARE_CONNECTED:
case PLUGIN_EVENT_NETWORK_CLOUD_CONNECTED:
case PLUGIN_EVENT_NETWORK_HARDWARE_DISCONNECTED:
case PLUGIN_EVENT_NETWORK_CLOUD_DISCONNECTED:
case PLUGIN_EVENT_NETWORK_WIFI_SCANNING:
case PLUGIN_EVENT_NETWORK_WIFI_NOTFOUND:
case PLUGIN_EVENT_NETWORK_WIFI_CONNECTING:
case PLUGIN_EVENT_NETWORK_WIFI_SOFTAP_CONNECTED:
case PLUGIN_EVENT_NETWORK_WIFI_FAIL:
case PLUGIN_EVENT_FAIL:
case PLUGIN_EVENT_OTA_START:
case PLUGIN_EVENT_OTA_END:
case PLUGIN_EVENT_OTA_ERROR:
break;
}
}
obniz.onEvent(onEvent);
ステータス確認
obnizOS実行中かどうか true時実行中
obniz.isRunning()
オンライン状態かどうか true時オンライン
obniz.isOnline()