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からの出力を試してみます。

About katty0324

Scroll To Top