This website is available for multi language.

Make Everything Online すべての人にIoT開発の機会を、
それが「obniz」の使命です

ただの小さな電球でもインターネットにつなげれば、明日の天気や大切な人が健康かどうかを把握できるようになります。 あらゆるモノがインターネットにつながる現代で、IoTの普及は多くの人に恩恵をもたらすでしょう。 しかしIoT 開発には古典的なファームウェア開発や高価な部品、複数の技術領域をまたぐソフトウェア開発が求められます。
obnizは、IoT開発の複雑さを取り除き、豊富なインターネット資源と小さな電球すらも簡単につなげる独自のテクノロジーを提供し、すべての人がIoTの恩恵を受けられる世界を目指します。

ハードウェアをAPI化
どんなものでも
”object”として操作可能に

obniz(オブナイズ)は、ON/OFFやUART通信などのIO制御をクラウドのAPI経由で行う仕組み、つまり「ハードウェアのAPI化」を実現しました。 どのプログラム言語でも、ハードウェアがどこに存在していても連携が可能となります。

obnizはハードウェアのAPI化を実現

obnizは、この仕組みを誰もがより良い形で利用できるよう、SDKといったソフトウェアのみでなく、クラウドシステムおよび専用のデバイス(ハードウェア)を全て自社で設計・開発し、全世界に向けて提供しています。 ユーザーが必要な開発にのみ集中できるよう、obnizはIoTの開発・運用に必要なバックボーン機能を担います。

専用デバイス

既存の機器や装置とクラウドをつなぐobniz専用のデバイス。 センシングや端子の単純なオンオフだけではなく、BLE/UART/SPI/I2Cなど、あらゆる電子部品がインターネット経由で操作可能に。

専用デバイス一覧

obnizOS

obnizOSはデバイス上で動作するソフトウェア。クラウドと連携し、デバイスに接続された電子部品や機器のクラウド化を実現します。

obnizOSについて

obniz Cloud

obnizのために設計されたクラウドサービスです。WebsocketAPIによりブラウザやサーバーから、IOのオンオフ、UART/SPI/BLEでの送受信などデバイスに関する全ての操作をリアルタイムかつ双方向に行なうことができます。 デバイス管理・OTA・TLS通信などHobbyからBusinessまでIoTに求められる多くの機能を標準で提供しています。

obniz Cloudについて

アプリケーション

開発者は自分が作成したIoTのためのソフトウェアを「アプリ」として配布し、利用することができます。

アプリ一覧

IoT化の複雑さを解消

オブジェクト化して、開発をシンプルに。
誰でも始めやすく、誰にでも扱える。安価で高性能な製品を開発・提供しています。

Buy " 1 " unit

Buy one unit

専用デバイスは1台から購入できます。個人の開発者も企業や各種教育機関にも、始めやすく使いやすいツールを提供します。

All in " 1 " 

All in one

回路設計、ネットワーク、管理機能など、IoT開発に必要な機能とテクノロジーの提供により、IoT化をサポートします。

only " 1 " program

only one program

プログラムはクラウド上にひとつだけ。複雑な開発工程をシンプルに、誰にでも開発できる環境を提供します。

ひとつのプログラムで
IoTシステムを構築

クラウドにあるひとつのプログラムで、ネットワーク上のすべてのデバイスを、どこからでも何台でも連携・制御することが可能です。 繋がれているセンサーの種類、コマンドやバージョンなどハードウェアに依存する違いは、クラウド側のソフトウェアで吸収可能。個々のファームウェア開発・管理は必要ありません。

ひとつのプログラムでIoTシステムを構築

デバイスはそのまま。
クラウドのソフト更新のみで全てが変わる

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

ドキュメントを探す

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();

Web技術でIoT

obniz CloudのAPIを利用するための各言語別、電子部品別のSDKを提供。 Javascript/NodejsやPythonなど、obnizにつないだハードウェアはWeb技術で自由に開発できます。

リアルタイム・双方向に連携

収集された情報のアップロードだけではなく、操作や制御もクラウドからいつでも可能です。 グラフによる可視化、遠隔操作、AIによる自動制御、WEBサービスとの連携など、たった数行のプログラムで実現できます。

遠隔操作

遠隔からの機器のリセットや設定変更を行う仕組みをHTMLのみで簡単に構築することができます。また、サーバーで稼働させることで自動化も可能です。センサーの値がしきい値を超えたらモーターを回すなど、エラーや障害の発生、異常を感知した際にリアルタイムな動作も可能です。

遠隔操作

<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>

<button id="on">オン</button>
<button id="off">オフ</button>

<script>
  const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});

  // IO0の出力をボタンに応じて操作
  $("#on").click(() => {
    obniz.io0.output(true);
  })
  $("#off").click(() => {
    obniz.io0.output(false);
  })
</script>

取得した値・データの可視化

センサーから取得した値・データをグラフやチャート、マップなどWebブラウザに表示して可視化します。リアルタイムな可視化システムを容易に開発できます。

取得した値・データの可視化

<script src="https://unpkg.com/obniz@3.x/obniz.js"></script>
<script src="https://cdn.jsdelivr.net/npm/apexcharts"></script>

<script>
  const obnizdata = [], options = { chart: { type: 'line' }, series: [{ data }] }
  const obnizchart = new ApexCharts(document.querySelector("#chart"), options);
  chart.render();

  const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
  obniz.loop = async () => {

    // IO0の電圧を取得
    const voltage = await obniz.ad0.getWait()

    // グラフの更新
    data.push(voltage)
    chart.updateSeries([{ data }])
  };
</script>

画像認識・人工知能

Tensorflowを始めとするディープラーニングなどで人物検出・物体認識・性別判断と組み合わせることで、高度な警報システムも短いプログラムで実現できます。

画像認識・人工知能

const Obniz = require("obniz");
const cocoSsd = require('@tensorflow-models/coco-ssd');

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  // 学習済みモデルの取得
  const model = await cocoSsd.load();

  // 写真を撮影
  const cam = obniz.wired("ArduCAMMini", { cs:0, mosi:1, miso:2, sclk:3, sda:6, scl:7 });
  await cam.startupWait();
  const img = await cam.takeWait('1024x768');

  // 画像から推定
  const predictions = await model.detect(img);
  if (predictions[0].class === 'person') {
    obniz.display.print("Found Person")
  }
}

データ保存

センサーから所得した値・データを、社内サーバや外部データベースへ保存できます。SQLでMySQLなどに保存したりGoogleスプレッドシートに保存したり、AWSKinesisでリアルタイム分析を行うこともできます。

取得した値・データの保存

const Obniz = require("obniz");
const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
const MYSQL  = require('mysql');
const mysql = MYSQL.createConnection();

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  await obniz.ble.initWait();

  obniz.ble.scan.onfind = async (peripheral) => {
    // BLE温度センサーに接続
    if (Logtta_TH.isDevice(peripheral)) {
      const device = new Logtta_TH(peripheral);
      await device.connectWait();
      const temperature = await device.getTemperatureWait();

      // データベースに保存
      mysql.query('INSERT INTO temps SET ?', {temp: temperature}, function (error, results, fields) {});
    }
  };
  await obniz.ble.scan.startWait();
}

アラート・通知

「センサーの値がしきい値を超えた場合に、SMSに通知」「毎日定時にメールで通知を送る」など、メールやSMSにアラートや通知を送ります。

アラート・通知

const Obniz = require("obniz");
const { WebClient } = require('@slack/client');
const web = new WebClient("YOUR_SLACK_TOKEN");

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
await obniz.connectWait();
const sens = obniz.wired("HC-SR505", {vcc:0, signal:1, gnd:2});

// 人感センサー反応ででSlackに通知
sens.onchange = async (val) => {
 await web.chat.postMessage({
   channel: 'general',
   text: `人を検知しました。時刻は${new Date()}`
 });
}

API連携

AWS、Microsoft Azure、Google Cloud、REST APIを備えたあらゆるWEBサービスと連携することでパワフルなIoTシステムを最短で構築できます。

API連携

const Obniz = require("obniz");
const Logtta_TH = Obniz.getPartsClass('Logtta_TH');
const kinesis = new require("aws-sdk").Kinesis();

const obniz = new Obniz("OBNIZ_ID_HERE", {access_token: "YOUR_TOKEN"});
obniz.onconnect = async () => {
  await obniz.ble.initWait();

  obniz.ble.scan.onfind = async (peripheral) => {
    // BLE温度センサーに接続して温度を取得
    if (Logtta_TH.isDevice(peripheral)) {
      const device = new Logtta_TH(peripheral);
      await device.connectWait();
      const temperature = await device.getTemperatureWait();

      // AWS Kinesisへ保存
      const record = {
        Data: JSON.stringify({ temperature }),
        PartitionKey: "1",
        StreamName: 'your-stream',
      };
      await kinesis.putRecord(record).promise();
    }
  };
  await obniz.ble.scan.startWait();
}

1箇所から集中管理

専用クラウド(obniz Cloud)は、デバイスの接続状況の表示機能やプログラム環境を提供。TLS通信、OTAといった機能も標準で提供しています。

管理用サーバの構築、開発環境のセキュリティ対策や安全なデータ通信のためのネットワーク設定の必要がないため、開発工数を大幅に削減できます。

デバイスや機器をクラウドから操作

導入事例

個人でのモノづくりのほか、医療・介護の現場、建設現場や宿泊施設、
そして、プログラミング・IoT・DXなど次世代を育成する教育教材として。
幅広い領域で「obniz」は活用されています。

導入事例をもっと見る