Arduino の ESP8266をwebサーバーで定義以外のファイルが指定され場合の処理
Arduino の ESP8266をwebサーバーで定義以外のファイルが指定され場合の処理
「 server.on("xxx",yyy);」で定義していないファイルが呼ばれた場合に呼ばれた アドレス、メソッド、アーギュメントを表示します。
- onNotFound_() 関数を追加します。最後に"_"が付いているのはIDEのエディタがonNotFoundと間違えて色が関数の色に変ってしまうためです。
onNotFound_()の内容はSDWebServerスケッチの内容を参考に(ほぼコピー)しています。 - server.onNotFound(onNotFound_); 定義を server.begin(); の直前に追加する。
全体のソースコードは以下の通りです。
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include "myssid.h"
ESP8266WebServer server(80);
void onRoot() {
String msg = "<html><head><title>ESP8266WebSerber</title></head><body><h1>Hello</h1></body></html>";
server.send(200,"text/html",msg);
}
void onNotFound_() {
String message = "Not Detected\n\n";
message += "URI: ";
message += server.uri();
message += "\nMethod: ";
message += (server.method() == HTTP_GET) ? "GET" : "POST";
message += "\nArguments: ";
message += server.args();
message += "\n";
for (uint8_t i = 0; i < server.args(); i++) {
message += " NAME:" + server.argName(i) + "\n VALUE:" + server.arg(i) + "\n";
}
server.send(404, "text/plain", message);
}
void setup() {
Serial.begin(115200);
delay(100);
Serial.println("");
pinMode(5, OUTPUT); // オリジナルは13だがテスト環境の都合で5に変えてある。
WiFi.mode(WIFI_STA);
WiFi.begin(mySSID, myPASSWORD);
while(WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
WiFi.config(IPAddress(192, 168, 0, 99), WiFi.gatewayIP(), WiFi.subnetMask());
Serial.println("");
Serial.print(WiFi.localIP());
server.on("/",onRoot);
server.on("/index.htm",onRoot);
server.on("/index.html",onRoot);
server.onNotFound(onNotFound_);
server.begin();
}
void loop() {
server.handleClient();
}
« Arduino の ESP8266をwebサーバーでip address を固定する | トップページ | Arduino の ESP8266をwebサーバーでSDカードのファイルを返す »
「Arduino」カテゴリの記事
- Arduino の ESP8266をwebサーバーにしてみよう(2015.07.24)
- SPIFFS 用のFTPサーバーをSD対応に変更(2016.11.09)
- ESPr Developer(ESP-WROOM-02開発ボード) 購入(2016.10.25)
- ESP8266のTOUTピンの電圧をちゃんと測定する方法(2015.07.19)
- ESP8266の電源電圧(3V3端子の電圧)の読み取り(2015.08.05)
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/569662/62024295
この記事へのトラックバック一覧です: Arduino の ESP8266をwebサーバーで定義以外のファイルが指定され場合の処理:
« Arduino の ESP8266をwebサーバーでip address を固定する | トップページ | Arduino の ESP8266をwebサーバーでSDカードのファイルを返す »
コメント