【发布时间】:2021-07-16 04:04:24
【问题描述】:
当我按下网页上的按钮时,我只是想关闭和打开 pin。我知道硬件可以工作,因为我可以在不同的程序中切换它。我是使用这个库的新手,所以我确定我在这里遗漏了一些小东西......为什么它不会在回调中切换我的输出。我已经执行了代码以在回调之外切换该引脚的 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 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(){
}
【问题讨论】:
标签: html c++ esp8266 arduino-ide asynccallback