Raspberry Piを購入したきっかけ
筆者がRaspberry Piを購入したのは、3,500円程度でLinuxが動くという理由からでした。よく使用するArduino Uno※1が3,000円くらいでマイコンレベルなのに比べると、性能的にはるかに安かったのです。しかし、買った時点では特に何に使おうかは考えていませんでした。とりあえず起動して、安いのにXウィンドウ動いてスゴイな、という印象でした。ところがふとしたことから、次に取り上げるNode.jsが動くらしいという情報を得て、本格的にいじり始めました。
まずはNode.jsをRaspberry Piにインストールして、チャットアプリを作成するところまでを説明していこうと思います。後半ではRaspberry PiでNode.jsを使ったプロトタイピングの例を紹介します。
- ※1 Arduino Uno: プロトタイピングデバイスとも呼ばれる。初心者でも使える小型マイコンボード
Node.jsとは
Node.jsはサーバーサイドJavaScriptとも呼ばれ、サーバ側もクライアント側もJavaScriptで記述できるのが大きな特徴です。またNode.jsは大体の場合、WebSocketの実装であるSocket.IOモジュールと組み合わせて使われ、リアルタイムWebを実現するためのサーバとして利用されるパターンが多いようです。Node.jsのインストールからSocket.IOを使ったチャットアプリの作成までの過程を、順を追って説明していきます。
準備
まずはRaspberry Piに公式のカーネル一式がインストールされて起動していて、リモートログインしている、という前提から始めます。早速Node.jsをインストールするのですが、Node.jsは開発のスピードが速くバージョンがすぐに上がってしまいます。そのため、Node.jsのバージョンを管理するためのマネージャをまずインストールし、実際に使用するバージョンのNode.jsをインストールするようにします。今回はnodebrewというバージョンマネージャを使用します。
1 | pi@raspberry ~ $ sudo apt-get update |
2 | pi@raspberry ~ $ sudo apt-get install vim # エディタとしてvimをインストールしておく(他でもよい) |
3 | pi@raspberry ~ $ curl -L git.io/nodebrew | perl - setup |
.bashrcにパス(export PATH=HOME/.nodebrew/current/bin:PATH)を追加して読み込み直します。
1 | pi@raspberry ~ $ vim .bashrc # エディタで"export PATH=$HOME/.nodebrew/current/bin:$PATH" を追加 |
2 | pi@raspberry ~ $ source .bashrc |
Node.jsのインストール
Node.jsの最新バージョンはv0.11.15(8/12現在)ですが、今回はv0.10.12を使用します。Raspberry Piは、以前はソースを落としてきてセルフビルドに2時間近く掛かっていたのですが、現在は下記のようにバイナリをインストールできるようになっています。
1 | pi@raspberry ~ $ nodebrew install-binary v0.10.12 |
このバージョンを使えるように下記コマンドを使用します。
1 | pi@raspberry ~ $ nodebrew use v0.10.12 |
複数のバージョンをインストールしたい場合は、同じように他のバージョンもインストールできます。使用するバージョンを切り替える場合は、上記コマンドで使用するバージョンを指定して切り替えられます。インストールされているNode.jsのバージョンを調べるには、下記コマンドを使用します。
1 | pi@raspberry ~ $ nodebrew list |
これでNode.jsのインストールは完了です。
expressのインストール
次にNode.jsでよく使われるWebフレームワークのexpressをインストールします。ここでnpmというコマンドを使いますが、これはnodebrewのインストール時に同時にインストールされています。npm : Node Package Manager で、Node.jsに関するインストールその他を管理するモジュールです。通常npmコマンドを使用してインストールすると、カレントディレクトリに展開されます。今回のexpressはカレントディレクトリではなく、-gオプションを付けてグローバルインストールしておきます。
1 | pi@raspberry ~ $ npm install -g express |
expressを使ったサンプルアプリを動かす
では、expressを使ってNode.jsサーバを作って動かしてみましょう。expressを使う時にテンプレートエンジンとして-eオプションでEJSを指定します。
01 | pi@raspberry ~ $ mkdir work # workディレクトリ作成 |
02 | pi@raspberry ~ $ cd work |
03 | pi@raspberry ~/work $ express -e sample |
06 | create : sample/package.json |
07 | create : sample/app.js |
08 | create : sample/public |
09 | create : sample/public/javascripts |
10 | create : sample/public/images |
11 | create : sample/public/stylesheets |
12 | create : sample/public/stylesheets/style.css |
13 | create : sample/routes |
14 | create : sample/routes/index.js |
15 | create : sample/routes/user.js |
17 | create : sample/views/index.ejs |
20 | $ cd sample && npm install |
出力された指示通りにします
1 | pi@raspberry ~/work $ cd samaple && npm install |
さて、あとは実行するだけです。ifconfigで予めRaspberry PIのIPアドレスを調べておいてください。
1 | pi@raspberry ~/work/sample $ node app.js |
2 | Express server listening on port 3000 |
PCなどのブラウザから"Raspberry PIのIP"である3000ポートにアクセスして、下記の画面が表示されればOKです。これでNode.jsを使ったWebサーバが動作しました。

図1: Express起動画面