gpt4 book ai didi

arduino - 从网络服务器 ESP8266 的文本字段中获取值

转载 作者:行者123 更新时间:2023-12-01 11:17:45 25 4
gpt4 key购买 nike

我用 esp8266 制作了一个网络服务器。

 sResponse  = 
"<p>"
"<center>"
"<h1>ESP8266 Web Server</h1>"
"<p>Time <input type='text' name='date_hh' size=2 autofocus> hh <input type='text' name='date_mm' size=2 autofocus> mm <input type='text' name='date_ss' size=2 autofocus> ss</p>"
"<p><a href=\"?pin=FUNCTION1ON\"><button>Save</button></a>"
"</center>";
client.print(sResponse);

我从网络服务器得到以下信息:
enter image description here
.
如果我单击保存按钮,我想读取三个文本字段的值。

我需要做什么?或者,是否有另一种(更好的)方法来构建这样的网络服务器?

提前致谢!

最佳答案

你可以从这个开始。

单击“保存”按钮时,您可以通过 GET 请求将值作为查询字符串参数传递。

然后您可以使用 server.arg() 访问参数。 .

// Libraries
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>


// WiFi network
const char* ssid = "your_ssid";
const char* password = "your_password";

ESP8266WebServer server ( 80 );



char htmlResponse[3000];

void handleRoot() {

snprintf ( htmlResponse, 3000,
"<!DOCTYPE html>\
<html lang=\"en\">\
<head>\
<meta charset=\"utf-8\">\
<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\
</head>\
<body>\
<h1>Time</h1>\
<input type='text' name='date_hh' id='date_hh' size=2 autofocus> hh \
<input type='text' name='date_mm' id='date_mm' size=2 autofocus> mm \
<input type='text' name='date_ss' id='date_ss' size=2 autofocus> ss \
<div>\
<br><button id=\"save_button\">Save</button>\
</div>\
<script src=\"https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js\"></script>\
<script>\
var hh;\
var mm;\
var ss;\
$('#save_button').click(function(e){\
e.preventDefault();\
hh = $('#date_hh').val();\
mm = $('#date_mm').val();\
ss = $('#date_ss').val();\
$.get('/save?hh=' + hh + '&mm=' + mm + '&ss=' + ss, function(data){\
console.log(data);\
});\
});\
</script>\
</body>\
</html>");

server.send ( 200, "text/html", htmlResponse );

}


void handleSave() {
if (server.arg("hh")!= ""){
Serial.println("Hours: " + server.arg("hh"));
}

if (server.arg("mm")!= ""){
Serial.println("Minutes: " + server.arg("mm"));
}

if (server.arg("ss")!= ""){
Serial.println("Seconds: " + server.arg("ss"));
}

}


void setup() {

// Start serial
Serial.begin(115200);
delay(10);

// Connecting to a WiFi network
Serial.println();
Serial.println();
Serial.print("Connecting to ");
Serial.println(ssid);

WiFi.begin(ssid, password);

while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}

Serial.println("");
Serial.println("WiFi connected");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());

server.on ( "/", handleRoot );
server.on ("/save", handleSave);

server.begin();
Serial.println ( "HTTP server started" );


}

void loop() {
server.handleClient();
}

关于arduino - 从网络服务器 ESP8266 的文本字段中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48475428/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com