WEBサーバがたてられるなら、POSTアクションもいけるのが道理。
設定値の書き換えを模したものをつくります、
実際のところ
前回の記事をベースに、handleRootを改編する形で。
なんか記述が冗長な気がしますが、後で見返して確実に再現できる気もしないので……。
const char* ssid = "ssid"; const char* password = "pass"; void handleRoot() { if (server.method() == HTTP_POST) { String buff_ssid = server.arg("ssid"); String buff_pass = server.arg("pass"); if (buff_ssid && buff_pass) { Serial.print("ssid:\t"); Serial.println(buff_ssid); Serial.print("pass:\t"); Serial.println(buff_pass); } } String mes = ""; mes += "<html>"; mes += "<meta charset='utf-8'>"; mes += "<meta name='viewport' content='width=device-width, initial-scale=1.0'>"; mes += "<head><title>Config Page</title></head>\n"; mes += "<body style='font-family: sans-serif; background-color: #ffeeaa ;' >\n"; mes += "<h1>User Config</h1>\n"; mes += "<p>\n"; //wifi form mes += "<form action='' method='post'>"; mes += "<div>"; mes += "<label for='inputssid'>ssid</label>"; mes += "<input id='inputssid' type='text' name='ssid' value='"; mes += ssid; mes += "'>"; mes += "</div>\n"; mes += "<div>"; mes += "<label for='inputpass'>psss</label>"; mes += "<input id='inputpass' type='password' name='pass' value='"; mes += password; mes += "'>"; mes += "</div>\n"; mes += "<div>"; mes += "<input type='submit' value='send' accesskey='s'>"; mes += "</div>\n"; mes += "</form>\n"; mes += "</p>\n"; mes += "</body>\n"; mes += "</html>\n"; server.send(200, "text/html", mes); }
前回mDNSで割り付けたURLのROOTをみると……
http://m5atom.local/
初期値に設定した値が反映された状態で、ページが表示されます。
コンソールをみると
ssid: ssid pass: pass
蛇足
HTML書くのがあまりに久しぶりすぎて、FormにPOSTアクションを割り付けずURLオプションにSSIDだのPASSだのがぶら下がるだけのクソ雑魚状況を延々とやっていました。
……使わない技術も、定期的になにか作って勘戻さないとダメですね。