前回の記事で、電子回路のハードウエアを作りましたが、次にソフトウエアを作ります。
今回は、ESPr Developer を、Webサーバとして動作させます。ESPr Developerは、クライアント(スマホ)から受け取った要求に従って、各モータを動かすための処理を行います。
リンク
まずは、ソフトウエアのうち、クライアント(スマホ)で表示や操作を行うためのHTMLファイルを作成します。
ここで作ったHTMLファイルは、後ほど、ESPr Developerのフラッシュメモリに保存します。
HTMLファイルでは、formタグでPOST送信を行うことで、Webサーバに要求を送ることにします。
まずは、最も基本的なHTMLファイルを作りました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>WiFi Controller</title> </head> <body> <form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" value="↑"></form> </body> </html>
スマホでの表示結果は以下のようになります。
ボタンを押すことで、ESPr Developerに要求を送ることができます。
同様のボタンを、モータの動作内容に基づいて追加しました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>WiFi Controller</title> </head> <body> <form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" value="←"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" value="↑"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" value="→"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" value="ー"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" value="←"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" value="↓"></form> <form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" value="→"></form> </body> </html>
tableタグを使って、ボタンを分かりやすく並べました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>WiFi Controller</title> </head> <body> <table> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" value="↑"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" value="→"></form></td> </tr> <tr> <td></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" value="ー"></form></td> <td></td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" value="→"></form></td> </tr> </table> </body> </html>
スマホで適当なサイズで表示されるよう、記述を追加しました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>WiFi Controller</title> </head> <body> <table> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" value="↑"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" value="→"></form></td> </tr> <tr> <td></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" value="ー"></form></td> <td></td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" value="→"></form></td> </tr> </table> </body> </html>
tableの体裁を整えるための記述を追加しました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>WiFi Controller</title> <style type="text/css"> <!-- body { font-family: sans-serif; } .tbl { width: 320px; font-size: 20px; font-weight: bold; text-align: center; } --> </style> </head> <body> <table class="tbl"> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" value="↑"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" value="→"></form></td> </tr> <tr> <td></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" value="ー"></form></td> <td></td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" value="→"></form></td> </tr> </table> </body> </html>
さらに、ボタンの体裁を整えるための記述を追加しました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>WiFi Controller</title> <style type="text/css"> <!-- body { font-family: sans-serif; } .tbl { width: 320px; font-size: 20px; font-weight: bold; text-align: center; } .btn { border: none; padding: 1rem 2rem; background: limegreen; color: white; font-family: sans-serif; font-size: 1rem; font-weight: bold; -webkit-appearance: none; -moz-appearance: none; } --> </style> </head> <body> <table class="tbl"> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" class="btn" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" class="btn" value="↑"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" class="btn" value="→"></form></td> </tr> <tr> <td></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" class="btn" value="ー"></form></td> <td></td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" class="btn" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" class="btn" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" class="btn" value="→"></form></td> </tr> </table> </body> </html>
最後に、ボタン類が画面の真ん中に表示されるよう、table全体をさらにtableで囲み、それをセンタリングしました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width"> <title>WiFi Controller</title> <style type="text/css"> <!-- body { font-family: sans-serif; } .tbl { width: 320px; font-size: 20px; font-weight: bold; text-align: center; } .btn { border: none; padding: 1rem 2rem; background: limegreen; color: white; font-family: sans-serif; font-size: 1rem; font-weight: bold; -webkit-appearance: none; -moz-appearance: none; } --> </style> </head> <body> <table border=0 cellpadding=0 cellspacing=0 width=100% height=100%> <tr><td align=center valign=middle> <table class="tbl"> <tr> <td colspan="3">WiFi Controller</td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FL"><input type="submit" class="btn" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FF"><input type="submit" class="btn" value="↑"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="FR"><input type="submit" class="btn" value="→"></form></td> </tr> <tr> <td></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="SS"><input type="submit" class="btn" value="ー"></form></td> <td></td> </tr> <tr> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BL"><input type="submit" class="btn" value="←"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BB"><input type="submit" class="btn" value="↓"></form></td> <td><form action="" method="post"><input type="hidden" name="FLAG" value="BR"><input type="submit" class="btn" value="→"></form></td> </tr> </table> </td></tr> </table> </body> </html>
これで、HTMLファイルはできあがりです。
つづきは こちら。
リンク