XIAO ESP32、WebServerでリレーのオン、オフ。


参考
----


https://logikara.blog/m5nanoc6-setting/

いろいろ、注意
----

- 過去ログを見よ!!
- アンテナ関係を修正0414
- 3.2.0
- なぜかマイコンを抜いて、ルーターリセット、マイコンさすと、うまく、いつた
- 書き換え

```c++

const char *ssid = "ご自宅のSSID";
const char *password = "ご自宅のパスワード";

```


結果
----

![o_coq870.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/0cd4d450-b87a-4ff9-bbdd-73e47694e5e2.jpeg)

```

http://esp32.local/

```


![o_coq868.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/9786d5e3-d469-4e39-84d1-89472fe7ba95.jpeg)


![image_original (92).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/d8922d79-c765-4488-bbe0-3c3cb2154d24.jpeg)


![o_coq869.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/2267fc1e-b632-4d59-a456-7da69aed31c6.jpeg)


![image_original (93).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/840352/15e3754c-809d-40a2-b821-59094c28301a.jpeg)


プログラム
----

```c++



//webserver_test3_XAIO_ESP32C6_1


//インクルド
#include <WiFi.h>
#include <NetworkClient.h>
#include <WebServer.h>
#include <ESPmDNS.h>


//定義
const char *ssid = "ご自宅のSSID";
const char *password = "ご自宅のパスワード";

#define OUT_PIN D9       // 外部出力端子番号

//サービスポート番号の登録
WebServer server(80);

  char html[] = {
   
    "                                   "
    "<HTML lang=\"jp\">                 "
    "                                   "
    "<HEAD>                             "
    "                                   "
    "  <meta charset=\"UTF-8\">         "
    "                                   "
    "  <TITLE>ようこそ</TITLE>           "
    "                                   "
    "</HEAD>                            "
    "                                   "
    "<BODY>                             "
    "                                   "
    "  <H1>                             "
    "  <center>                         "
    "  REMOTE-SWITCH                    "
    "  </center>                        "
    "  </H1>                            "
    "                                   "
    "  <center>                         "
    "  <div>                            "
    "                                   "
    "  <button onclick=                 "
    "  \"location.href='/get/btn_on'\"  "
    "  >                                "
    "  ON                               "
    "  </button>                        "
    "                                   "
    "  <button onclick=                 "
    "  \"location.href='/get/btn_off'\" "
    "  >                                "
    "  OFF                              "
    "  </button>                        "
    "                                   "
    "  </div>                           "
    "  </center>                        "
    "                                   "
    "</BODY>                            "
    "                                   "
    "</HTML>                            "
    "                                   "
    "                                   "
  };


//ホームページ
void handleRoot() {
  server.send(200, "text/html", html);
}//handleRoot


//ホームページがない場合
void handleNotFound() {
  String message = "File Not Found\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 += " " + server.argName(i) + ": " + server.arg(i) + "\n";
  }
  server.send(404, "text/plain", message);
}//handleNotFound


// ブラウザONボタン処理
void btnOn() {
  digitalWrite(LED_BUILTIN, LOW); // 本体LED点灯
  digitalWrite(OUT_PIN, HIGH);      // 外部出力ON
  server.send(200, "text/html", html);  //レスポンス200を返しhtml送信
}


// ブラウザOFFボタン処理
void btnOff() {
  digitalWrite(LED_BUILTIN, HIGH);  // 本体LED消灯
  digitalWrite(OUT_PIN, LOW);       // 外部出力OFF
  server.send(200, "text/html", html);  //レスポンス200を返しhtml送信
}


//初期化
void setup(void) {

  //アンテナの設定
  pinMode(WIFI_ENABLE, OUTPUT); // pinMode(3, OUTPUT);
  digitalWrite(WIFI_ENABLE, LOW); // digitalWrite(3, LOW); // Activate RF switch control
  delay(100);
  pinMode(WIFI_ANT_CONFIG, OUTPUT); // pinMode(14, OUTPUT);
  digitalWrite(WIFI_ANT_CONFIG, LOW); // digitalWrite(14, LOW); // Use IN antenna

  //GPIOポートの初期化
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  pinMode(OUT_PIN, OUTPUT);
  digitalWrite(OUT_PIN, LOW);

  //WiFiの初期化
  WiFi.mode(WIFI_STA);
  WiFi.begin(ssid, password);
  delay(3000);//決め打ちなので、おかしかったら調整してね! wifiの待ち0.5*6

  //ローカルドメインサービス
  MDNS.begin("esp32");
  delay(150);

  //割り込みの登録　ホームページ
  server.on("/", handleRoot);

  //割り込みの登録　ホームページ以外　404
  server.onNotFound(handleNotFound);

  server.on("/get/btn_on", btnOn);    //ボタンオン受信処理
  server.on("/get/btn_off", btnOff);  //ボタンオフ受信処理

  //Webサーバの開始
  server.begin();

}//setup


//メインループ
void loop(void) {
  
  server.handleClient();
  delay(2);  //allow the cpu to switch to other tasks
  
}//loop


```