WP7605でHTTPサーバ

前回は開発環境の構築を行いました.
WP7605は通信モジュールなのでHTTPサーバとして
動かしてみようと思います.

構成

Sierra Wireless社のLegatoフレームワークにもlighttpdを使用した
サンプルアプリケーションが存在します.
しかし今回はWP7605を通常のLinuxマシンのように使用する前提で
別途lighttpdをビルドしサーバとして運用することにします.
以前MicroBlazeで使用したのを参考にビルドしていきます.

ビルド

ディレクトリ構成はホームディレクトリ以下にhttpsvディレクトリを作成し
その下に様々作成する予定です.
ターミナルを開いたら以下のコマンドを実行してからビルドを始めます.

pcre

それではまずlighttpdをビルドするのに必要なライブラリをビルドします.

lighttpd

次にlighttpd本体をビルドします.
WP7605ではビルドしたlighttpdを単体で動作させる予定なので
ライブラリは基本的に静的リンクとします.

静的リンクするためには別途ヘッダーファイルを作成しなければいけないので
“~/httpsv/lighttpd-1.4.59/src/plugin-static.h”として以下の内容で作成します.

作成したらビルドを続けます.

これでlighttpdのビルドが完了しました.

lighttpdを動かす準備

lighttpdを動かすために準備を行います.
デプロイする際にわかりやすいように転送するためのディレクトリを作成しlighttpdをコピーします.

lighttpdは設定ファイルが必要です.
設定ファイルのサンプルはlighttpdのソースコードディレクトリ以下doc内にあります.
今回は複数ファイルに分散していると少し面倒に感じてしまったので単一ファイルに統一します.
(mimeの設定だけ大きいので別ファイルとする)
“~/httpsv/httpsv_root/lighttpd.conf”

mime.confはdocからコピーします.

コンテンツの作成

次はHTTPサーバで表示するコンテンツを作成します.
単純なHTMLファイルを表示するだけでは面白くないので
モジュールに搭載されているLEDの制御をしてみようと思います.
GPIOの制御はLinuxの仮想ファイルシステムを経由する方法で行います.

GPIOについて

“~/httpsv/httpsv_root/www/index.html”

“~/httpsv/httpsv_root/www/gpio.py”

いざデプロイ

WP7605上で実際に動かします.
WP7605を開発用PCに接続し,電源を入れます.
そして先ほど作成したhttpsv_rootディレクトリを転送します.

次からはWP7605上で操作するためsshで接続しlighttpdを起動します.

これでHTTPサーバは動き始めましたが,そのままではポートが開放されていないので
外部からアクセスできません.
以下のコマンドでIPv4及びIPv6の両方のポートを開放します.

開発用PCからは192.168.2.2でブラウザからアクセスすればHTMLファイルが表示されます.
それぞれのリンクへ遷移すれば対応するLEDが点灯消灯することが確認できます.

GPIO28 On
GPIO29 On

現状ではローカルでの接続であるため,本来のキャリア回線経由でのアクセスも試します.
まずはWP7605からキャリア回線へ接続します.

Testing connection …と表示されればキャリア回線へ接続されたようです.
IPアドレスを確認し別のPCやスマートフォンからアクセスします.

回線の契約にもよりますが今回はIPv6のみ外部からアクセス可能なものとなっているので
IPv6のアドレスを使用します.
http://[2001:xxxx:yyyy:zzzz:aaaa:bbbb:cccc:dddd]/
IPv6はアドレスに対してスクエアブラケット[]で囲んだものをブラウザに入力します.
ローカルと同様に制御できました.

まとめ

WP7605はLinuxが内部で動いているので通常のマシンのように
HTTPサーバを動作させることができました.
今回はGPIOの制御をキャリア回線経由で制御することができました.
電源を確保し電波がつながる範囲であれば制御できるのでGPIOだけでなく
他のインタフェースも使用して様々な応用が考えられます.

コメント

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