ESP-WROOM-02(以下ESPと略) のマニュアルから抜粋
ESPをソフトAPモードに設定するとスマホから無線LANのアクセスポイントに見えるようになる。
図中 UARTホストPC で実行されるターミナルソフトの動作をPIC上でプログラムしておく。
このPICがWEBサーバーのふりをすれば、スマホからはWEBページを見ることができて、簡単なボタンなどの操作ができるようになる。
ということで、以前に作ったLED版テニススコアボードの心臓部を取り替えてしまいます。
新規にESPを制御する部分、WEBサーバーのふりをする部分、LEDダイナミック点灯でパターンを表示する部分、のプログラムを作っていきます。
で、ハードのほう完成。
表
ESPはサイズが大きいのでスコアボードからはみ出てしまいました。
持ち運びでぶつかって折れてしまいそうなので、塩ビ板でカバーを作成。
全体。点灯。
プログラムのほうはC言語で書きますが、その中にHTML文書を埋め込まないとなりません。
スマホのブラウザからくるHTTP要求にはHTMLで書かれた文を返さないといけないので。
久しぶりにHTML(ハイパーテキストマークアップランゲージ)書きました。
スマホからのリクエスト要求をログしていたら、/favicon.ico ファイルをスタート直後から欲しがっていることがわかりました。
これは、フェイバリットアイコンファイル=通称ファビコンというものらしく、ホームページ毎にタブやブックマークについてる小さいアイコンのことみたいです(知らなかった;)。いま記事を書いているときも左上のほうに出てます。
↓これね。
ファイルシステムを持っていないし記憶領域も2K程度のPICに、アイコンファイルを用意できないのでこれはスルーすることにしました。
あとは、GET要求(WEBページを見せてくれ)とPOST要求(このボタン押しました)にだけ応えられる作りにしました。
スマホのブラウザ(クローム)の画面
手持ちのXBEE無線通信では、10m先と通信できなかったので実用を断念していたテニススコアボードですが、今回のESP-WROOM-02では、スマホを使った場合、13ヤード(テニスのネットからエンドライン、つまりコート長辺の半分)で通信実験できました。
ネット付近にボードを設置しておけば、サーブを打つ位置から操作できるということです。
スマホを持ちながらテニスするのは危ないので、WEBクライアント側も試作しました。
3.3Vでよいのですが、電流が100mA程度(立ち上がり500mA)必要らしく、電池の問題は発生しそうです。
ボタンをつけて電池接続
最後に動画。
最初はスマホのブラウザで操作するスコアボード
次はスマホの代替コントローラで操作した場合。