This website is available for multi language.

obnizとは

obniz(オブナイズ)はON/OFFやUART通信などのIO制御をクラウドのAPI経由で行える仕組みで、クラウド中心のIoT開発に利用する開発ツールです。

以下のような特徴を持ちます

  • ファームウェア開発が不要(ファームウェアレステクノロジー)
  • プログラム言語を問わずハードウェアの制御が可能
  • 1つのソフトウェアで遠隔地にある複数台のハードウェアの制御が可能
  • HTMLで動かせばUIとの連携が、PCで動かせばで動かせば機械学習などとの連携が容易に可能

(以下動画学習サイト「Essence」の動画を引用しています)

obnizが提供するのは以下です

  • デバイス
    obnizOSインストール済みのobniz Boardという開発ボードです。
  • obnizOS
    対象プロセッサにインストールし、設定を行うことでクラウドからAPI制御が可能になる組み込みソフトウェアです。
  • obniz Cloud
    obnizOSと連携してハードウェアを操作するAPIを提供します。またユーザー認証やオンラインエディタなどのウェブサービスも提供しています。
  • SDK
    obniz CloudのAPIを便利に利用するための各言語向けのSDK。

デバイスやobnizOSをインストールしたデバイスにはモーターやセンサーなど電気で動く電子部品をつなぐことができます。
デバイスはネットワーク経由でobniz Cloudと繋がります(obniz Boardの場合はWi-Fi経由です)。
すると、つながれたモーターやセンサーはクラウド上のAPIを操作するだけで各プログラム言語から遠隔で利用できるようになります。
SDKは各プログラム言語でクラウド上のAPIを便利に使えるようにし、まるでプログラムの文章の中に電子部品があるかのようなプログラムを可能にします。

利用例: JavaScript

obnizと組み合わせる効果が最も高いのはjavascriptです。

obniz.jsというsdkを使えばobnizのidだけでデバイスにつなぎ、そのIOや繋がれた電子部品はJavaScriptのオブジェクトとして操作が可能です。
デバイスが世界中のどこにあろうと、何台あろうとも関係ありません。
今まで難しかったハードウェアとブラウザ上のUIとの連携も簡単にできるため、ボタンからUARTを出したり、グラフ化することも簡単です。
また、Nodejsならdatabaseとつないだり、SNSと連携することも簡単です。

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

<button id="button">LED ON</button>
<script>
var obniz = new Obniz("1234-5678");
obniz.onconnect = async function(){
  var led = obniz.wired("LED", {anode:0, cathode:1});
  $("#on").on("click",function(){
   led.on();
 });
}
</script>

API

obnizOSの動作するデバイスはネットワークに接続するとobniz Cloudに対して接続要求を行い、認証が完了すると常時接続となります。 obniz Cloudは接続済みデバイスを操作可能にするハードウェアAPIを提供します。2種類のエンドポイントが存在します。

APIはjsonでのハードウェア制御をユーザーに提供します。例えばobnizId 1234-5678に接続するためにWebsocketでwss://obniz.io/obniz/1234-5678/ws/1に接続を行います。
その後コマンドはjsonにより送受信されます。io0をonにするには{"io0": true}を送信します。逆にio0を受信モードの設定した場合にio0がlowになった場合は{"io0":false}が受信されます。

クラウド上でデバイスに対してアクセストークンを発行している場合は接続にアクセストークンが必須となります。

ライセンス

APIから操作を行うにはライセンスが必要となります。obniz Boardの場合はある種類のライセンスが付属するのですぐに利用できます。(付属するライセンスはBoardの種類によって異なります)。

利用シーン例

産業適用

  • 既存機器をネット経由で操作できるようにしたい

    (例)obnizOSをインストールしたデバイスをRS232Cで機器に接続し、ブラウザからRS232Cを送受信して制御

  • 複数台を1つの管理画面で操作したい

    (例)obnizOSをインストールしたデバイス各デバイスに接続し、NodejsやPythonのアプリを1つ作成し制御する。

その他効果的な利用シーン例

  • リアルタイムかつクラウド->デバイス通信を高速に行いたい
  • ソフト開発せずIoTを実現したい

DIY-教育適用

  • 趣味の工作としてスマホ連携やスマートスピーカー連携を行いたい

    (例)obniz Boardとライセンスを利用してイベント機能を活用する

  • JavaScriptで電子工作したい

    (例)obniz Boardをオンラインエディタで書いたHTMLから制御

  • ブロックプログラムの次の環境として児童に提供したい

    (例)obnizOSが搭載可能な教材を購入し、iPadのブラウザからプログラムする