Lesson: Nodejs

nodejsからobnizを操作する

What is nodejs

nodejsはjavascriptをブラウザではなくPC上で動作させるためのソフトウェアです。
ブラウザで動かす場合はそのページを開いていないとobnizを使えなかったのですが、
nodejsを使えば手元のパソコンやサーバーなどでずっと動かすことが出来ます。
1時間ごとに気温をDropboxに保存するなどのことが簡単にできるようになります。

更にnodejs用に作られたライブラリも豊富にあるため色々なプログラムが簡単に作れます。

特徴

  • PCやサーバーで動くため、プログラムをずっと動かすことが可能
  • nodejsライブラリを使って色々なことが出来る。

Install Nodejs

初めてNodejsを使うならば、まずはNodejsのインストールからです

https://nodejs.org/

こちらのサイトからダウンロードできます。

Create Nodejs Project

nodejsのプロジェクトを作成しましょう。
プロジェクトと言ってもフォルダを作って中に1つ2つファイルを入れるだけです。
まずは空っぽなフォルダを作ります。
名前はなんでも良いです。
そして、Windowsならコマンドライン。MacやLinuxならシェルから
そのフォルダに入り

npm init

とコマンドを打ちます。色々聞かれますが、Enterを押してとりあえず進みます。
すると空だったこのフォルダにpackage.jsonというのが出来ます。
これがプロジェクトのファイルとなります。

次に、アプリを書くためのapp.jsを用意します。
空っぽなテキストファイルを用意してapp.jsという名前にしてこのフォルダに保存します。
ここまででプロジェクトの作成は完了です

Install obniz.js

次にobnizをnpmからインストールします。
ブラウザでは<script>タグを使って外部のプログラムを読み込んでいましたが、
nodejsではnpmというソフトを使って名前だけでソフトをインストールします。

npm install obniz 

と打って実行します。
これによりobnizがプログラムの中から使えるようになりました。

Program

app.jsをエディタで開いてプログラムを書いてみましょう。
まずは先ほどインストールしたobnizを取り込みます。
nodejsではこのようにインストールしたソフトを読み込みます。
ブラウザで<script>で読み込んでいたのに似ています。

var Obniz = require("obniz");

これでOKです。
この後はhtmlでプログラムしていたときと全く同じです。
jQueryはもう使っていないので注意しましょう。
まずobnizに接続します。

var Obniz = require("obniz");

var obniz = new Obniz("1234-5678");
obniz.onconnect = async function () {

}

そして接続した後に色々なプログラムを書きます。
サーボモーターを動かすのもhtmlのときと同じように

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

このようにすればOKです。

このjavascriptを実行するにはコマンドラインまたはシェルから

node app.js 

とコマンドを打てば実行されます。
そして自分から停止させるまではこのアプリは動き続けます

他のサービスとの連携

npmでは色々なパッケージが配布されています。
他のWebサービスと連携させることができるのはhtmlとの大きな違いです。

例えばTwitterなら
https://github.com/desmondmorris/node-twitter

Dropboxなら
https://github.com/dropbox/dropbox-sdk-js

といったライブラリがあります。
これらとobnizを連携させて色々なものを作ってみましょう。