#include <M5Unified.h> #include <WiFi.h> #include <HTTPClient.h> // ステータスコードの定義もここにある const char* ssid = "ics-ap"; const char* password = "jikkenics"; WiFiServer server(80); void setup() { auto cfg = M5.config(); cfg.serial_baudrate = 115200; M5.begin(cfg); M5.Display.setRotation(3); //横向き M5.Display.setFont(&fonts::lgfxJapanGothic_16); M5.Display.println("webserver01"); M5.Display.setTextScroll(true); WiFi.begin(ssid, password); // 接続開始 while (WiFi.status() != WL_CONNECTED) { // 接続中... M5.Display.print("."); M5.delay(500); } // 接続完了!! M5.Display.fillScreen(GREEN); M5.Display.setCursor(0, 30, 4);//x,y,fonttype M5.Display.setTextColor(BLACK, GREEN); M5.Display.print(" Wifi Connected!\n"); String gotip = WiFi.localIP().toString(); // m5デバイスのIPアドレス M5.Display.println(gotip); M5.Display.println("open Web via HTTP"); server.begin(); // Webサーバを開始 } void loop() { M5.update(); WiFiClient client = server.available(); if (client) { String req = "" ; String tmp = "" , meth = "" ; while (client.connected()) { // loop while the client's connected if (client.available()) { // if there's bytes to read from the client, char c = client.read(); // read a byte, then req += c; if (c == '\n') { // if the byte is a newline character if (tmp.length() == 0) { // end of request, break while loop break; } else { //まだ継続 if (tmp.startsWith("GET ") || tmp.startsWith("POST ") ) { meth = tmp; } tmp = ""; } } else if (c != '\r') { // if you got anything else but a carriage return character, tmp += c; // add it to the end of the currentLine } } } // end of while Serial.println(meth); if ( meth.startsWith("GET /") ) { client.println("HTTP/1.1 200 OK"); // header (with response code) client.println("Content-Type:text/plain"); client.println(""); // HTTPでは、header と body の区切りは改行 client.println(meth); client.println("-- request --"); client.println(req); } if ( meth.startsWith("POST ") ) { String post = ""; char buf[257]; int n; while ((n = client.available()) > 0) { if (n < 256) { client.readBytes(buf, n) ; buf[n] = 0 ; } else { client.readBytes(buf, 256) ; buf[256] = 0 ; } } post += buf ; client.println("HTTP/1.1 200 OK"); client.println("Content-Type:text/plain"); client.println(""); // HTTPでは、header と body の区切りは改行 client.println(meth); client.println("-- request --"); client.println(req); client.println("-- post data --"); client.println(post); } // close the connection: client.stop(); Serial.println(" --- Client Disconnected."); } M5.delay(20); }