obnizはブラウザ上の開発ツールでプログラムを書いて,「実行」ボタンを押すことで,プログラムが実行される.ここで
- プログラムがどこで動いているのかわからない
- ArduinoやRaspberry Piのように,マイコンボード単体でプログラムが動いて欲しい
という気持ち悪さがあったので,プログラムの実行形態を調べてみた.
公式ガイドによると,以下のプログラム実行形態があるらしい.
- ブロックプログラム
Webブラウザ上の開発環境で,Scratchのようにブロックプログラムを作成して動かす.プログラムはブラウザ上で動いている? - JavaScriptプログラム
Webブラウザ上の開発環境で,HTMLとJavaScriptを用いてプログラムを作成して動かす.プログラムはブラウザ上で動いている? - node.jsプログラム
node.jsはJavaScriptのライブラリであるが,nodeというコマンドがあって,パソコン上で実行される.node.jsプログラムは,JavaScriptで書かれたプログラムであるにもかかわらず,Webブラウザ上で動くプログラムではなく,パソコン上で動くプログラムである.これにより,ブラウザを立ち上げて特定のページにアクセスしなくてもプログラムの実行が可能である.
node.jsプログラムは,AWS LambdaとAPI Gatewayを使ってプログラムを動かすことができる.作ったプログラムをzipファイルに固めて,AWS Lambdaサービスに登録して,AWS上でプログラムが動くらしい.さらに,AWS API Gatewayを使うことで,ブラウザから,ここに置いてあるプログラムを実行できるらしい. - ブラウザアプリ
Webブラウザ上の開発環境で,HTMLとJavaScriptを用いてプログラムを作成したものを,クラウドに登録する.Webページに,事前にアカウントの作成とデバイスの登録が必要である.デバイスにインストールできるが,「アプリのプログラムはインストールごとにコピーされません」と書いてあるので,実行時に指定した機器番号(obniz ID)のデバイスにアクセスするだけで,実際にはプログラムはクラウド上にある.また,クラウド実行ができるとも書いてあるので,プログラムはクラウド上に常に存在し,デバイス内には書き込まれないのが正解のようである.
となると,obnizデバイスは,センサーやアクチュエーターがWi-Fiクライアントに繋がった物理ゲートウェイで,クラウド実行されているプログラムがこのデバイスにアクセスして,センサーの情報を取り込んだりアクチュエーターを動かしたりするために存在するらしい. - ホステッドアプリ
クラウドでサーバーサイドアプリが動いていて,ここに複数のデバイスが繋がってプログラムが動く.このページを見ると,obnizプログラムのインストールの実態が判明する.デバイスの中にプログラムが書き込まれるのではなくて,指定されたデバイスにアクセスできるように紐付けられたプログラムがクラウドに登録されるということらしい.
ぱっと見える範囲で調べた感じでは,(Webブラウザでプログラムを書いている場合を含めて,)クラウド上にプログラムが置かれて,そのプログラムにはデバイスのobniz IDが書かれている.クラウド上でプログラムが実行されると,指定されたobnizに接続して,ハードウェアにアクセスするらしい.
他のマイコンボードなどと違い,クラウドベースのIoTデバイスで,「デバイスにインストール」という用語が,「プログラムとデバイスIDの紐付け」を意味すると言っても良いかも知れない.
また,ちっちゃいESP32が載ったマイコンボードの割に値段が高いなと思っていたら,これだけのクラウド環境が,デバイスを購入するだけで使用できるのだから,クラウド使用料がその値段の中に含まれていると言っても良いかも知れない.
気温や湿度,気圧,二酸化炭素濃度などを計測して,それらのデータをAmbientなどのクラウドに保存してグラフを描画したい,などという場合,センサーとWi-Fiクライアントのつながったマイコンボードがあれば,センサーで取得したデータをWi-Fi経由でいきなりクラウドに送りつけて,プログラム自体はクラウド上で動いていても良いことになる.このobnizを使用する場合,プログラムによっては,ちょっとマイコンボードとしての考え方を変えて,ArduinoやRaspberry Piとは違うものと考える必要があるかも知れない.
0 件のコメント:
コメントを投稿