我将esp8266连接到Arduino-Uno (WiFi Controlled LED using ESP8266 and Arduino),它工作得很好。但是,当我在浏览器中调用(http://192.168.1.*/?led= on )时,我希望esp8266响应并在页面上显示消息(Ok/No),我们能用AT命令做到这一点吗?或者其他任何方式。
void loop() {
if (esp8266.available()) {
if (esp8266.find("+IPD,")) {
String msg;
esp8266.find("?");
msg = esp8266.readStringUntil(' ');
String command1 = msg.substring(0, 3);
String command2 = msg.substring(4);
if (DEBUG) {
Serial.println(command1); // Must print "led"
Serial.println(command2); // Must print "ON" or "OFF"
}
delay(100);
if (command2 == "ON") {
digitalWrite(led_pin, HIGH);
// here i want send led is on now
} else {
digitalWrite(led_pin, LOW);
// here i want send led is off now
}
}
}
}发布于 2018-11-02 13:23:36
我建议在这个项目中使用ESP8266WebServer库。您可以创建一个HTML页面,其中包含两个单独的输入按钮,参数为On和Off,然后您可以将URL的状态从on更改为off,反之亦然。在ESP端,您可以获得参数的状态,如下所示
if(server.hasArg("ON")==true){
digitalWrite(led_pin, HIGH);
}else if(server.hasArg("OFF")==true){
digitalWrite(led_pin, HIGH);
}我做过一个类似的项目https://ncd.io/thingspeak-weather-app-using-esp8266/和https://github.com/vbshightime/ESPMeshServer
发布于 2019-07-04 18:57:45
此方法:
#include <WiFi.h>
#include <WiFiClient.h>
#include <WebServer.h>
const int LED_PIN = 16;
IPAddress ip(192, 168, 0, 32);
IPAddress gateway(192, 168, 0, 1);
IPAddress subnet(255, 255, 255, 0);
WebServer server(9999);
void handleLED();
void setup(void){
WiFi.config(ip, gateway, subnet);
WiFi.begin("ssid","pw");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
}
server.on("/ON", HTTP_GET, handleLED_ON);
server.on("/OFF", HTTP_GET, handleLED_OFF);
server.begin();
Serial.begin(115200);
Serial.println("Start");
}
void loop(void){
server.handleClient();
}
void handleLED_ON() {
digitalWrite(LED_PIN, HIGH);
server.send(200,"text/plan","OK");
}
void handleLED_OFF() {
digitalWrite(LED_PIN, LOW);
server.send(200,"text/plan","OK");
}https://stackoverflow.com/questions/53082592
复制相似问题