Intel Edisonの上にWebサーバを起動する。

Intel Edisonの初期設定をする。」では、Edisonの初期設定をしました。
続いて、Edisonの「コンピュータ」としての能力を試すべく、Edisonの上にWebサーバを起動してみます。

Intel EdisonにSSHで接続する

ここまでEdisonには、USBケーブルで接続して操作をしていました。しかしながら、MacBookにずっとEdisonがぶらさがっている状態では、邪魔です。
Edisonには電源用のUSBケーブルだけ接続して、MacBookからはSSHで接続できたら楽です。
EdisonはWiFiに接続できるので、SSHで接続することもできます。
[Edison]sshやscpを使ってみる | Developers.IO
ここには設定が必要と書かれているんですが、どこかで済ませていたのか、既にSSHで接続できる状態でした。
EdisonのプライベートIPを確認します。

# configure_edison --showWiFiIP
192.168.0.4

そして、sshでMacのターミナルから接続します。

$ ssh root@192.168.0.4
# ...(略)...
root@192.168.0.4's password:
root@edison-01:~#

SSHでログインできました!

デフォルトで起動しているWebサーバを確認する

本題に戻って、Webサーバを起動する方法なんですが、実はEdisonは最初から80番ポートをLISTENしています。

# netstat -ant | grep LISTEN
tcp        0      0 0.0.0.0:58888           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:1883            0.0.0.0:*               LISTEN
tcp6       0      0 :::22                   :::*                    LISTEN

ブラウザから確認するとこういう画面を表示してくれます。
スクリーンショット 2014-12-28 22.26.55
どのプロセスが80番ポートをLISTENしているか確認してみます。

# lsof -i:80
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
node    219 root   10u  IPv4  19470      0t0  TCP *:http (LISTEN)

辿ってみると下記のプロセスにたどり着きます。

# ps
// ...(略)...
  219 root     70968 S    node /usr/lib/edison_config_tools/edison-config-serv
// ...(略)...

EdisonにはデフォルトでNode.jsがインスールされていて、先ほどのページが表示されるようになっています。

# node --version
v0.10.28
# npm --version
1.4.9

Node.jsでWebサーバ構築

せっかくNode.jsがインスールされているので、これを使ってデフォルトのWebサーバとは別のWebサーバを起動してみます。
下記のページを参考に、Expressのフレームワークを利用して、簡単なHello Worldだけ表示します。
Express Hello world example
npmでExpressをインスールしておきます。

npm install -g express

ExpressのHello Worldを記述します。テキトーに作業ディレクトリを作って、viで編集します。

mkdir -p ~/helloworld
cd ~/helloworld
vi app.js

Hello Worldを表示するだけのプログラムを書きます。ここでは、3000番ポートで起動しています。

var express = require('express');
var app = express();
app.get('/', function(request, response) {
  response.send('Hello World!');
});
var server = app.listen(3000, function() {
  console.log('Listening to port %d', server.address().port);
});

Webサーバの起動と動作の確認

あとは、nodeコマンドでプログラムを起動するだけです。

# node app.js
Listening to port 3000

Macのブラウザからアクセスしてみます。

http://192.168.0.4:3000/

Hello Worldが表示されました!
スクリーンショット 2014-12-28 23.17.28
Edisonは小さいけどWebサーバも起動できます。
何かを作ろうと思ったときに、Edisonへ入力信号を与える回路を作るのは結構面倒です。でもWebサーバが起動できるので、ブラウザ向けにインターフェースを作って、そこからEdisonを操作することもできます。
これでEdisonへの入力ができるようになったということで、次はEdisonからの出力を試してみます。

コメント

  1. […] 前回は、「Intel Edisonの上にWebサーバを起動する。」で、EdisonをWebサーバとして使う方法を書きました。 […]

タイトルとURLをコピーしました