Я просто пытаюсь выключить и включить булавку, когда нажимаю кнопку с веб-страницы. Я знаю, что оборудование работает, так как могу переключать его в другой программе. Я новичок в использовании этой библиотеки, поэтому я уверен, что мне здесь не хватает чего-то небольшого ... Почему он не переключает мой вывод в обратном вызове. Я выполнил код для переключения этого вывода HIGH и LOW вне функции обратного вызова, и он работает.
server.on("/door1", HTTP_GET, [] (AsyncWebServerRequest *request) {
pinMode(5, OUTPUT);
delay(10);
digitalWrite(5, HIGH);
delay(5000);
digitalWrite(5, LOW);
request->send(SPIFFS, "/index.html", String(), false);
});
Полный код ниже:
// Import required libraries
#include <ESP8266WiFi.h>
#include <ESPAsyncTCP.h>
#include <ESPAsyncWebServer.h>
#include <FS.h>
// NetworkCreds
const char* ssid = "******";
const char* password = "*****";
// Create AsyncWebServer object on port 80
AsyncWebServer server(80);
void setup(){
// Serial port for debugging purposes
Serial.begin(115200);
// Initialize the sensor
// Initialize SPIFFS
if(!SPIFFS.begin()){
Serial.println("An Error has occurred while mounting SPIFFS");
return;
}
// Connect to Wi-Fi
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.println("Connecting to WiFi..");
}
// Print ESP32 Local IP Address
Serial.println(WiFi.localIP());
// Route for root / web page
server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(SPIFFS, "/index.html", String(), false);
});
// // Route to load style.css file
server.on("/style.css", HTTP_GET, [](AsyncWebServerRequest *request){
request->send(SPIFFS, "/style.css", "text/css");
});
server.on("/door1", HTTP_GET, [] (AsyncWebServerRequest *request) {
pinMode(5, OUTPUT);
delay(10);
digitalWrite(5, HIGH);
delay(5000);
digitalWrite(5, LOW);
request->send(SPIFFS, "/index.html", String(), false);
});
// Start server
server.begin();
}
void loop(){
}