This website is available for multi language.

obnizのテクノロジー

クラウドのソフトだけで作れるIoTシステム「obniz」の
プログラマブルなゲートウェイ

obnizは、デバイスに関するすべての操作をobnizクラウドのAPI経由で行います。 IoTに必要なデバイス上のファームウェア、クラウドとの通信と暗号化、クラウド上でのデバイス認証と管理機能は全て、obnizより提供されます。サーバーで動くソフトウェアを用意するだけで、すぐにIoTサービスを構築できます。

ドキュメントへ

クラウドでプログラム可能なBLEゲートウェイ
obniz BLEゲートウェイなら開発・運用・管理の効率が上がる

“ファームウェアを書き換えない”
全く新しい概念で 開発・運用のスピードアップ

obnizのファームウェアレス技術は、ファームウェアやプログラムをサーバー上に集約。ゲートウェイのファームウェア開発は必要ありません。 どんな操作も、接続機器やデバイスに依存することなく、サーバー上の1つのプログラムで完結。デバイスの追加や変更、サービスやキャラクタリスティクスの操作など、ファームウェアの書き換えなしですぐに実行できます。

クラウドの潤沢なリソースを利用

ハードウェアや開発環境の制約なし

サーバー上で開発可能なので、メモリ容量を気にせず、潤沢なリソースを利用できます。開発のためのホストOS等も不要、普段お使いのPCで開発可能です。

ソフトウェア漏洩の可能性はゼロ

ソフトウェア漏洩の可能性はゼロ

ゲートウェイ本体に書き込まれているのは専用OSのみ。デバイス盗難が起きたとしても、プログラムやデバイスに保存していたBLEペリフェラルを操作するための秘密情報が漏洩することはありません。

センサーもビーコンもゲートウェイも追加・変更が簡単

デバイスの追加も仕様の変更も、サーバー上のプログラムを修正するだけ。リモートで対応し即座に適用できます。 もう更新のために現地に行ったり、最新プログラムを遠隔書き込みする必要はありません。

const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = (peripheral) => {
	const targets = ['a8f7c7d9'];
	if (!targets.includes(peripheral.address))
	return;

	if (LOGTTA_CO2.isAdvDevice(peripheral) ) {
		const data = LOGTTA_CO2.getData(peripheral);
		console.log(data.co2); // => CO2 ppm level.
	}
};
await obniz.ble.scan.startWait();
const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
const _2JCIE = Obniz.getPartsClass('2JCIE');
await obniz.ble.initWait();
obniz.ble.scan.onfind = (peripheral) => {
	const targets = ['a8f7c7d9', '47d8f7c3'];
	if (!targets.includes(peripheral.address))
		return;

	if (LOGTTA_CO2.isAdvDevice(peripheral)) {
		const data = LOGTTA_CO2.getData(peripheral);
		console.log(data.co2); // => CO2 ppm level.

	} else if (_2JCIE.isDevice(peripheral)) {
		const data = Device.getData(peripheral);
		console.log(data.temperature); // => 温度
		console.log(data.relative_humidity); // => 湿度
	}
};
await obniz.ble.scan.startWait();
const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
await obniz.ble.initWait();
obniz.ble.scan.onfind = (peripheral) => {
	const targets = ['a8f7c7d9', '47d8f7c3'];
	if (!targets.includes(peripheral.address))
		return;

	if (LOGTTA_CO2.isAdvDevice(peripheral)) {
		const data = LOGTTA_CO2.getData(peripheral);
		console.log(data.co2); // => CO2 ppm level.
	} else if (Logtta_TH.isAdvDevice(peripheral)) {
		let data = Logtta_TH.getData(peripheral);
		console.log(data.temperature); // => 温度
		console.log(data.humidity); // => 湿度
	}
};
await obniz.ble.scan.startWait();

センサー値の抽出はもちろん、スキャンと同時に接続も

ビーコンの有無だけでなく、advertisementに含まれる温度情報などの値の読み取りと送信、スキャンとBLE機器との接続も両立可能。

ビーコンフィルターは自由に設計

「UUID指定」「Major, Minor指定」や「RSSIの強度」はもちろん「1度送ったら2分は送らない」などプログラムで自由な設定が可能。

スキャン

ビーコンやBLEデバイスの探索を行います。フィルターするべき情報をobnizクラウドに設定したり、外部APIから取得することで動的なスキャンデバイスとなります。UUID指定はもちろんjavascriptのプログラムで自由なフィルター設計やデータ整形とAPI送信(HTTPS, MQTT, FTP その他)が可能です。

リファレンスへ

var Obniz = require('obniz');

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();

  obniz.ble.scan.onfind = async function(peripheral){
    console.log(peripheral.localName, peripheral.address);
    // save or send to anywhere
  };

  await obniz.ble.scan.startWait({
    uuids: ["01ab"] // filter by UUID
  },{
    duplicate: true // allow duplicated scan
  });
}

接続・ペアリング

接続が必要なヘルスケア機器などBLEデバイスに接続でき、値の取得やクラウド経由のリアルタイムな遠隔操作が可能です。同時に7台まで接続でき、接続中もscanを行い順次デバイスの探索が可能です。ライブラリ対応センサーなら容易にプログラムがおこなえるので今日からサービスを開始できます。service, characteristicsを利用し自分でプログラムすることもでき、キー入力が必要なペアリングにも対応しています。

リファレンスへ

var Obniz = require('obniz');

const LOGTTA_CO2 = Obniz.getPartsClass('Logtta_CO2');
await obniz.ble.initWait();
obniz.ble.scan.onfind = async function(peripheral) {
  if (LOGTTA_CO2.isDevice(peripheral)) {
    const device = new LOGTTA_CO2(peripheral);
    await device.connectWait();
    device.onNotify = function(co2) {
        console.log(`CO2 level is ${co2}ppm`);
    };
    device.startNotifyWait();
  }
};
await obniz.ble.scan.startWait();

ビーコン(Advertisement)の発信

バイナリ列を用いて任意のビーコンを発信することができます。APIで発信ビーコンの情報を取得し、動的に変更するのに最適です。イベントドリブンもしくは1時間ごとにビーコンを変更するなど柔軟なサービス設計が可能です。

リファレンスへ

var Obniz = require("obniz");

var obniz = new Obniz("OBNIZ_ID_HERE");
obniz.onconnect = async function () {
  await obniz.ble.initWait();
  obniz.ble.advertisement.setAdvData({
    flags: ["general_discoverable_mode","br_edr_not_supported"],
    manufacturerData:{
      companyCode : 0x004C,
      data : [0x02,0x15, 0xC2, 0x8f, 0x0a, 0xd5, 0xa7, 0xfd, 0x48, 0xbe, 0x9f, 0xd0, 0xea, 0xe9, 0xff, 0xd3, 0xa8, 0xbb,0x10,0x00,0x00,0x10,0xFF],
    },
  });
  obniz.ble.advertisement.setScanRespData({
    localName : "obniz BLE",
  });

  obniz.ble.advertisement.start();
}

導入フロー

製品・サービスや、導入・運用についてなど、ご不明な点があればお気軽にお問い合わせください

1

評価用ゲートウェイの購入

評価・検証用のゲートウェイは、1台からご購入いただけます。ご購入はこちら

2

トライアル

ドキュメントを見ながらの開発、または弊社からサンプルコードの提供が可能です。

3

本格運用開始

カスタム製品の製作、またはアプリケーション開発の委託もご相談ください。

継続サポート

デバイス管理機能、OSやシステムの保守・監視サービスを提供しています。