JavaScriptでIoT! obnizのnode.js利用
今日は、obnizとnode.jsの連携についてご説明していきたいと思います。
他のobnizの記事もよろしければご参考ください。
目次
物理構造
obnize本体サイズは74.5×36.3mm
128×64ドットのOLEDディスプレイやIEEE 802.11b/g/n(2.4GHz)無線LANとBluetooth 4.2などを搭載しています。(ESP32が搭載ているので)
モーターやセンサーを接続できるIO数は全部で12で
全てのピンで最大1Aの電流を流すことができるというバケモノ設計になっています!ありがたい!
DCモーターやRCサーボなどを直接接続して動かすことも可能です!
DCモーターやRCサーボのために別の電源を用意しなくても良いところが便利ですね!
しかも過電流保護機能あります、ショートしたり、プラスマイナスが逆転したり、電流が大きくなったりすると、自動的に停止して、警告音を鳴らしてくれあます。ありがたい!
電源はmicroUSBケーブルで供給する形になっています。
クラウド経由で制御できる電子工作ボード
obnizはJavaScriptで制御を行うことができるIoT用のコントロールボードです。
obnizは組み込み電子回路やアプリの開発を手掛ける東京のスタートアップCambrianRoboticsが開発したボードです。
onnizは今までのAruduinoと及びその互換機と一番決定的な違いは
クラウド経由で制御できる電子工作ボードというところです。
Arduino系のボードなど、M5StackやESP32などと違ってJavaScriptを使って制御するプログラムを書きます。
もちろんArduino系もESP32系も、oledと繋げて、プログラミングすれば、似たような動作も実現できなくはないですが
obnizがそれを全部パケージ化して、あらかじめ動作できるように提供しているところが大きいな特徴です。
JavaScriptを使っているので、今まで敷居の高いIoTと電子工作も
ちょっとJavaScriptの利用経験のある、ウェブ開発者たちもすぐ馴染むことができて
IoTの電子工作がすぐ始められます。
まさに、革命的です!
#obniz
日本で結構早期のユーザーになったかな?笑 pic.twitter.com/JIPDuxDKFB— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年6月7日
開発環境はArduinoIDEではない
obniz(オブナイズ)は、スマートフォンなどを使ってWeb上からプログラムを書くことができます。
パソコンと接続する必要がありません!(USBが電源だけです。)
ハードウェアの専門的な部分にobnizのライブラリーがその難しさを隠蔽してくれて、IoTの電子工作がとても簡単なものになります。
センサーやモーターなどのパーツライブラリが豊富に用意されいます。
今のその対応するセンサーのライブラリーが増えています。
日本語も何も設定せずに、そのまま表示できちゃいます!
他のESP32やM5Stackですと、日本語を表示することがでいなくはないですが、ライブラリーを必要だったり、自分でコンパイルしたり、プログラムしたりするなど、やや手間がかかることになります。
obnizのプログラミングはブラウザ上で行うため(もちろんnode.jsでローカルのPCで開発することもできます、このあと一つの簡単な事例をご紹介します。)
ブラウザが動作する環境であればどのOS上でもプログラミングできます。
PCやスマートフォンなどにプログラム用のソフトウェアやアプリをインストールする必要はない。ブラウザーがあればすぐできます。今時、ブラウザーのないPCとスマホがありませんよね。笑。
obnizをWi-Fi経由でインターネットに接続してしまえば
センサーやサーボなどのパーツを基板につなぎ
OLEDディスプレイに表示されるQRコードをスマートフォンに読み込まるだけで
プログラムを始めることができます。
ブラウザで開発してobnizを動かす場合は
そのページを開いていないとobnizを使えないですが
nodejsを使えば手元のパソコンやサーバーなどでずっと動かすことが出来ます。
例えば、1時間ごとに気温を記録して処理してkibanaなどに送信することなどが簡単にできるようになります。
他のAPIと連携すれば、色々高度なこどができるようになります。
まさにInternet Of Things ですね!
今回は、node.jsでローカルPCでプログラミングする方法を簡単な例を通して、ご紹介したいと思います!
実はもうすでにお気付きですが、前の記事でもすでにnode.jsでobnizを利用していました。
obniz(オブナイズ)+leapmotion+cylon.js連携でマジックハンドでサーボを動かす!本邦初公開!leapmotionとobnizの連携記事
環境の用意
すでに、JavaScript開発に慣れている方にとっては説明することがないぐらい簡単ですが
まずは、好きなロケーションで
mkdir myobniz
というふうにフォルダを一つ作成してください。
cd myobniz
そのフォルダに入って
npm install obniz
obnizをインストールしてください。(Node.jsがすでにインストールしている前提で)
その後、下記のようにプログラムを書けば、obnizは意図した通りに動きます!
var Obniz = require("obniz"); var obniz = new Obniz("1234-5678"); obniz.onconnect = async function () { var servo = obniz.wired("ServoMotor", {gnd:0, vcc:1, signal:2}); servo.angle(90); }
ここは、何がすごいかというと
インタネットにどう接続するかとか
ネットワークどう設定するかなど、一切触れていませんですよね!
一番面倒で、大変な部分はもうしなくて良いです!
obniz初期化するときに
var obniz = new Obniz(“1234-5678”);
obnizのID「1234-5678」を設定するだけで、あなたのobnizをインタネットに繋がった状態で動作するようになります!
しかも、これが、毎回obnizのバージョンアップしても
obniz本体のソフトウェアを更新するなどの作業が不要です!便利ですよね。
ソフトウェアのメンテナンスも楽になります。
まとめ
node.jsがそのまま使えるところは
ずっとAngular.jsやReact.js、ReactNativeなど開発してきた私にとっては
全て繋がったような気がします。
前ご紹介しました leapmotionやcylon.jsとの連携も何も違和感なくできてて
いい意味でのショックを受けました。
今まで、node.jsのエコシステムで使ってきたライブラリーもそのまま全部使えるわけですので
応用が幅がほぼ無限大ですね。
これからも、限界までobnizを遊び倒したいと思います!
余談ですが、Raspberry Piにnode.jsを入れれば、もちろんRaspberry Piからobnizを制御することもできます!
ではまた!
@obniz_io #obniz 2兄弟 #esp32 pic.twitter.com/zDYHdQCXYg
— 川島@ソフトウェア、Web、アプリ、IoT作るのが大好き (@kokensha_tech) 2018年6月24日
[amazonjs asin=”B07DD6FK8G” locale=”JP” title=”obniz (オブナイズ)”]
[amazonjs asin=”B01NAHBSUD” locale=”JP” title=”Raspberry Pi 3 Model B V1.2 (日本製) 国内正規代理店品”]