ObnizクラスにSDKの機能がすべて含まれています。
HTMLで取り込んだ場合はグローバル変数に。JSやTypescriptの場合は以下のものがobnizクラスです。
var Obniz = require('obniz');
TypeScript
import Obniz from 'obniz';
クラスに関するリファレンスはGithubにて公開されています。
インスタンスとデバイス
ObnizをobnizIDなどを引数にインスタンス化したものがobnizデバイスの代わりとなるインスタンスです。
インスタンス化後、デバイスへの接続は自動的に行われ、接続が完了するとonconnect()が呼ばれます(詳しくは接続を参照ください)。
var obniz = new Obniz('OBNIZ_ID_HERE');
obniz.onconnect = async function() {
obniz.io0.output(true);
}
接続が完了したときにインスタンスはobnizクラウドからデバイスの情報(どんなIOがあるのか、ADがあるのかなど)を受け取り自身を構成します。接続するまではどんなデバイスなのかわからないためデバイス操作に関するプロパティは存在しません。
var obniz = new Obniz('OBNIZ_ID_HERE');
obniz.io0.output(true); // => エラー (io0 is undefined)
obniz.onconnect = async function() {
obniz.io0.output(true); // => io0が存在するデバイスだった場合に問題なく実行
}
定義済みデバイス
M5StickCなど、いくつかのデバイスは搭載されているセンサーなどがあらかじめ登録されていて、接続と同時に各センサーなどが自動的に初期化され使える状態となります。以下はM5StickCの加速度・ジャイロセンサーの例です。
let obniz = new Obniz.M5StickC("OBNIZ_ID_HERE");
obniz.onconnect = async () => {
await obniz.setupIMUWait();
// or old m5stickC
// await obniz.setupIMUWait("SH200Q");
console.log( await obniz.accelerationWait() );
console.log( await obniz.gyroWait() );
}
用意されている定義済みデバイス