ini are as follows, and the code is as follows:
[env:d1_wroom_02]
platform = espressif8266
board = d1_wroom_02
framework = arduino
monitor_speed = 115200
#include <Arduino.h>
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#define WIFI_SSID "Pikara2-91d8e4"
#define WIFI_PWD ""
#define LED_PIN 16 // GPIO16 (D0)
ESP8266WebServer server(80);
// HTML fetchでget reqできた
const char HTML[] PROGMEM = R"rawliteral(
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>LED Control</title>
<script>
function ledOn() {
fetch("/led/on");
}
function ledOff() {
fetch("/led/off");
}
</script>
</head>
<body>
<h1>NodeMCU LED Control</h1>
<button onclick="ledOn()">LED ON</button>
<button onclick="ledOff()">LED OFF</button>
</body>
</html>
)rawliteral";
// GET /led/on
void handleLedOn()
{
digitalWrite(LED_PIN, HIGH);
Serial.println("GET /led/on");
server.send(200, "text/plain", "LED ON");
}
// GET /led/off
void handleLedOff()
{
digitalWrite(LED_PIN, LOW);
Serial.println("GET /led/off");
server.send(200, "text/plain", "LED OFF");
}
// GET /
void handleRoot()
{
server.send_P(200, "text/html", HTML);
}
void setup()
{
Serial.begin(115200);
pinMode(LED_PIN, OUTPUT);
digitalWrite(LED_PIN, LOW); // 最初はオフで
// WiFi接続
WiFi.begin(WIFI_SSID, WIFI_PWD);
Serial.print("WiFi connecting");
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(".");
}
Serial.println();
Serial.println("Connected!");
Serial.print("IP Address: ");
Serial.println(WiFi.localIP());
// URL登録
server.on("/", HTTP_GET, handleRoot);
server.on("/led/on", HTTP_GET, handleLedOn);
server.on("/led/off", HTTP_GET, handleLedOff);
server.begin();
Serial.println("Web server started");
}
void loop()
{
server.handleClient();
}
0 件のコメント:
コメントを投稿