首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Arduino UNO和ESP8266如何发送http响应

Arduino UNO和ESP8266如何发送http响应
EN

Stack Overflow用户
提问于 2018-10-31 19:45:40
回答 2查看 105关注 0票数 0

我将esp8266连接到Arduino-Uno (WiFi Controlled LED using ESP8266 and Arduino),它工作得很好。但是,当我在浏览器中调用(http://192.168.1.*/?led= on )时,我希望esp8266响应并在页面上显示消息(Ok/No),我们能用AT命令做到这一点吗?或者其他任何方式。

代码语言:javascript
复制
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
}

  }
 }
}
EN

回答 2

Stack Overflow用户

发布于 2018-11-02 13:23:36

我建议在这个项目中使用ESP8266WebServer库。您可以创建一个HTML页面,其中包含两个单独的输入按钮,参数为On和Off,然后您可以将URL的状态从on更改为off,反之亦然。在ESP端,您可以获得参数的状态,如下所示

代码语言:javascript
复制
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

票数 0
EN

Stack Overflow用户

发布于 2019-07-04 18:57:45

此方法:

代码语言:javascript
复制
#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");
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53082592

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档