我在这里并不陌生,但这是我的第一个问题。 我进行了很多搜索,但坦率地说,我不明白这应该如何工作。 我会定期(温度)收集数据到我的ESP32,同时将其设置为WiFi客户端,连接到路由器并以某种方式将此数据存储在我的笔记本电脑上(或其他地方,例如本地/网站,不知道这是否是可能/更好)。 连接应该如何工作?我已经安装了XAMPP并运行Apache和MySQL服务器,并尝试使用ESP32库使用Arduino的一些草图连接到我的笔记本电脑
// Use WiFiClient class to create TCP connections
WiFiClient client;
const int httpPort = 80;
const char* host = "192.168.1.109"; //The local IP of my Laptop
if (!client.connect(host, httpPort)) {
Serial.println("connection failed");
return;
}
但是它没有连接。 有人可以告诉我这种联系应该如何形成吗?还是这个问题太含糊?我真的只是想知道这种情况下的“应该如何一起工作”。 预先谢谢你。
答案 0 :(得分:0)
好的,所以经过大量研究和尝试,我设法解决了。现在,我可以使用XAMP将来自ESP32的HTTP请求(如GET或POST)发送到笔记本电脑上运行的本地服务器,并获得响应。我还可以通过手机(也位于同一WiFi网络中)连接到本地IP。
对于要连接到本地网络中PC上托管的服务器中某个位置的其他任何人,步骤如下:
现在,为了将手机连接到PC,请打开浏览器,然后将PC的本地IP(即从路由器作为本地网络名称提供给PC的IP)输入浏览器就是这样,您已连接。
如果您安装并运行了XAMP,则从同一台PC或其他本地设备连接到本地IP时,它将转发到192.168.x.x / dashboard。如果要创建新的工作区和文件,请浏览安装位置的XAMP文件夹,并在“ / htdocs”子文件夹内进行测试。
用于Arduino中的ESP32通信(基本步骤,不是完整代码):
#include <WiFi.h>
#include <HTTPClient.h>
String host = "http://192.168.x.x/testfolder/";
String file_to_access = "test_post.php";
String URL = host + file_to_access;
void setup(){
WiFi.begin(ssid, password); //Connect to WiFi
HTTPClient http;
bool http_begin = http.begin(URL);
String message_name = "message_sent";
String message_value = "This is the value of a message sent by the ESP32 to local server
via HTTP POST request";
String payload_request = message_name + "=" + message_value; //Combine the name and value
http.addHeader("Content-Type", "application/x-www-form-urlencoded");
int httpResponseCode = http.sendRequest("POST", payload_request);
String payload_response = http.getString();
}
在test_post.php文件(位于“ C:\ xampp \ htdocs \ testfolder \”中)中,我使用了一个简单的脚本来回显通过POST请求接收到的消息,因此,它只能从POST请求中“读取”。从浏览器连接到它会给您“抱歉,接受...”消息。
<?php
$message_received = "";
if ($_SERVER["REQUEST_METHOD"] == "POST"){
$message_received = $_POST["message_sent"];
echo "Welcome ESP32, the message you sent me is: " . $message_received;
}
else {
echo "Sorry, accepting only POST requests...";
}
?>
最后,使用串行打印,输出为:
Response Code: 200
Payload: Welcome ESP32, the message you sent me is: This is the value of a message sent by the ESP32 to local server via HTTP POST request
有,希望这对某人有帮助。