デバイスへの接続

Class リファレンス
API リファレンス

接続方法

ObnizクラスはobnizIDを元に作成される1つのデバイスを表すクラスですが、インスタンス化と同時に自動的に接続が開始され、接続が成功するとonconnectに指定した関数が、切断でoncloseに指定した関数が呼ばれます。切断後も自動的に再接続を試みます。

Obnizクラスに指定できるデバイス指定は以下のとおりです。

Type Example Description
obniz ID new Obniz('1234-5678') obnizIDを文字列で指定します。ハイフンは無視されます。
obniz ID new Obniz('sn_AAAABBB') シリアルナンバーを指定します。sn_を先頭に付ける必要があります。
IP new Obniz('192.168.0.100') デバイスのIP(IPv4)を指定します。オンプレミスでの利用設定がされているデバイスのみ可能です。
// Javascript Full Example

var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {

}
obniz.onclose = async function() {

}

部品の操作やioの操作など、デバイスに対する操作は接続した後でのみ行えるため、onconnect後に操作するように指定します。oncloseは切断後に呼び出される関数です。そのため「デバイスとの接続が切れたのでモーターをOFFにする」という処理は既に接続が切れているのでoncloseにプログラムで書くことはできません。詳しくはこのページの「切断」をご覧ください。

// Javascript Full Example

var obniz = new Obniz('1234-5678');
obniz.onconnect = async function() {
  obniz.io0.output(true);
}
obniz.onclose = async function() {

}
プロパティ

obnizに対する初期設定を引数で指定することができます。

リファレンス

// Javascript Full Example

new Obniz('1234-5678', { /* option here */ })

アクセストークン

デバイスにアクセストークンが発行されている場合、そのアクセストークンやそのデバイスを保有しているアカウントのAPI Keyなどが接続に必要となります。

それら接続用のキーは以下のようにaccess_tokenとして指定します。

// Javascript Full Example

new Obniz('1234-5678', {access_token: 'your token here'})

指定されていない場合はWebsocketは接続できず400系エラーとなります。ブラウザではHTTP Authentication faildなどのエラーがコンソールに表示されます。

自動プロンプト

ブラウザ上で実行している場合にobniz idとして正しくない場合は自動的にpromptが表示されます。そこでidを入れることでそのデバイスに接続することが可能です。
これはidとして正しくない形式の場合にのみ表示されます。正しくても存在しないobniz idを入れた場合には表示されません。

接続状態

接続状態はconnectionStateにて取得することができます。

// Javascript Full Example

var obniz = new Obniz('1234-5678');
console.log(obniz.connectionState) // => === "connecting" or "closed"
obniz.onconnect = async function() {
 console.log(obniz.connectionState) // => === "connected"
}

登録済みデバイス

obniz.jsではデバイスに初めて接続するときにハードウェア情報を取得し、ioがいくつあるのか、bleはあるのか、内蔵センサーはあるのかなどを元にobnizインスタンスを構成します。

// Javascript Full Example

var obniz = new Obniz("1234-5678")
obniz.io0 // => undefined
obniz.onconnect = async function() {
  obniz.io0 => exist if device has io0
}

この他に事前にobniz.jsに登録されているデバイスの場合はペリフェラルや内蔵センサーのための関数が用意されているものを利用できます。利用可能なものは以下のobnizクラスのリファレンスより見つけられます。
https://obniz.github.io/obniz/obnizjs/classes/obnizcore.obniz.html

obnizBoardはもちろん、他にもM5StickCなどが事前登録されています。
https://obniz.github.io/obniz/obnizjs/classes/obnizcore.hardware.m5stickc.html
以下のように記載することで利用できます。引数はnew Obniz()と同じです。

// Javascript Full Example

var obniz = new Obniz.M5StickC("1234-5678")

これにより内部に登録されているbuttonや赤外線LEDも登録済みの状態で利用できます。

Articles