「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
ブラウザから確認するとこういう画面を表示してくれます。
どのプロセスが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が表示されました!
Edisonは小さいけどWebサーバも起動できます。
何かを作ろうと思ったときに、Edisonへ入力信号を与える回路を作るのは結構面倒です。でもWebサーバが起動できるので、ブラウザ向けにインターフェースを作って、そこからEdisonを操作することもできます。
これでEdisonへの入力ができるようになったということで、次はEdisonからの出力を試してみます。
コメント
[…] 前回は、「Intel Edisonの上にWebサーバを起動する。」で、EdisonをWebサーバとして使う方法を書きました。 […]