PR

 前回は「hostapdとudhcpdを使ってiPhoneが接続できるAPを作る」ところまで進みました。今回はWebサーバーとCGIの実装です。

Webサーバーを動かす

 SX-IMAPP-SDKのbusyboxはデフォルトでWebサーバー機能が実装されています。「httpd –help」で簡単な使い方を調べることができます。


# httpd --help
BusyBox v1.19.4 (2014-08-05 19:14:14 PDT) multi-call binary.

Usage: httpd [-ifv[v]] [-c CONFFILE] [-p [IP:]PORT] [-r REALM] [-h HOME]
or httpd -d/-e STRING

Listen for incoming HTTP requests

        -i              Inetd mode
        -f              Don't daemonize
        -v[v]           Verbose
        -p [IP:]PORT    Bind to IP:PORT (default *:80)
        -r REALM        Authentication Realm for Basic Authentication
        -h HOME         Home directory (default .)
        -c FILE         Configuration file (default {/etc,HOME}/httpd.conf)
        -e STRING       HTML encode STRING
        -d STRING       URL decode STRING

 取りあえずホームディレクトリー(/root)にindex.htmlを作成し、




This is SX-580 SDK HTTP test

 Shellからhttpdを起動し、「ps」でhttpdが動作していることを確認してみます。


# httpd
# ps
  PID USER       VSZ STAT COMMAND
    1 root      1204 S    init
    2 root         0 SW   [kthreadd]
    3 root         0 SW   [ksoftirqd/0]
    .
    .
    .
  316 root      2224 S    hostapd -B /etc/hostapd.conf
  322 root      1192 S    udhcpd /etc/udhcpd.conf
  325 root      1196 S    inetd /tmp/inetd.conf
  326 root      1200 S    -sh
  335 root      1188 S    httpd
  341 root      1192 R    ps

 この状態でiPhoneをSSID IMAPP-SDKに接続し、ブラウザーで「192.168.99.1」を開けば先ほどのindex.htmlが表示されます(デフォルトではやたら字が小さいので、拡大しなければ読みにくいかも知れません)。

Webサーバーのテスト

 以上のように、「読むだけ」のWebサーバーを作るのは呆気ないほど簡単です。しかし今回のテーマは「iPhoneからWi-Fiで操作できる電気スタンド」ですので、Webブラウザーからの操作を受け付けなければなりません。Webブラウザーからの操作は「フォーム」と「CGI」という2つの要素によって構成されます。

この記事は会員登録で続きをご覧いただけます

日経クロステック登録会員になると…

新着が分かるメールマガジンが届く
キーワード登録、連載フォローが便利

さらに、有料会員に申し込むとすべての記事が読み放題に!
日経電子版セット今なら2カ月無料