简而言之,我想将2个变量发送到服务器,异步 Web 服务器(托管在 Nodemcu 上),以便更新页面(并节省检查 DHT22 的单元的电池寿命)但是我
如何发送变量的实际值而不仅仅是名称?
使用 JSON 或 url 编码,无论需要什么。
在我的代码中,我有一些部分,首先包括库,定义常量,然后是包含索引页和脚本的原始文本部分,然后是启动服务器的设置部分,以及读取温度和湿度的循环部分。无论如何,我有点迷路了。我只能做基本编程,现在我们有一个很棒的硬件,但要学的东西太多了
2024-1-4 14:43:23
您可以使用以下代码将2个变量作为 JSON 对象发送到服务器:
```c
#include
#include
HTTPClient http;
void sendToServer(int variable1, int variable2) {
// Create JSON object
StaticJsonDocument<200> doc;
doc["variable1"] = variable1;
doc["variable2"] = variable2;
String jsonStr;
serializeJson(doc, jsonStr);
// Send JSON data to server
http.begin("http://yourserver.com/update.php"); // Replace with your server URL
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.POST(jsonStr);
// Check for errors
if (httpResponseCode != 200) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
}
http.end();
}
```
在此示例中,您需要将您的服务器 URL 更改为 `http://yourserver.com/update.php`,并替换变量名称和值为您的实际值。 `StaticJsonDocument <200>` 表示 JSON 对象的大小,可以根据您的需要更改。
当从 NodeMCU 上的异步服务器调用此函数时,您可以使用以下代码在服务器端接收 JSON 数据:
```php
// Receive JSON data
$json = file_get_contents('php://input');
$data = json_decode($json);
// Read variables
$variable1 = $data->variable1;
$variable2 = $data->variable2;
// Process data
// ...
// Send response
http_response_code(200);
?>
```
您可以在 `// Process data` 部分中使用收到的变量。 希望这可以帮助您开始工作。
您可以使用以下代码将2个变量作为 JSON 对象发送到服务器:
```c
#include
#include
HTTPClient http;
void sendToServer(int variable1, int variable2) {
// Create JSON object
StaticJsonDocument<200> doc;
doc["variable1"] = variable1;
doc["variable2"] = variable2;
String jsonStr;
serializeJson(doc, jsonStr);
// Send JSON data to server
http.begin("http://yourserver.com/update.php"); // Replace with your server URL
http.addHeader("Content-Type", "application/json");
int httpResponseCode = http.POST(jsonStr);
// Check for errors
if (httpResponseCode != 200) {
Serial.print("HTTP Response code: ");
Serial.println(httpResponseCode);
}
http.end();
}
```
在此示例中,您需要将您的服务器 URL 更改为 `http://yourserver.com/update.php`,并替换变量名称和值为您的实际值。 `StaticJsonDocument <200>` 表示 JSON 对象的大小,可以根据您的需要更改。
当从 NodeMCU 上的异步服务器调用此函数时,您可以使用以下代码在服务器端接收 JSON 数据:
```php
// Receive JSON data
$json = file_get_contents('php://input');
$data = json_decode($json);
// Read variables
$variable1 = $data->variable1;
$variable2 = $data->variable2;
// Process data
// ...
// Send response
http_response_code(200);
?>
```
您可以在 `// Process data` 部分中使用收到的变量。 希望这可以帮助您开始工作。
举报