问题描述: 在Arduino向树莓派发送HTTP GET请求时遇到问题,无法成功获取到树莓派返回的数据。
解决方法:
以下是一个示例代码,展示了如何在Arduino上向树莓派发送HTTP GET请求并获取返回的数据:
#include
#include
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED}; // Arduino的MAC地址
IPAddress ip(192, 168, 1, 100); // Arduino的IP地址
IPAddress serverIP(192, 168, 1, 200); // 树莓派的IP地址
int serverPort = 80; // 树莓派的HTTP服务器端口号
EthernetClient client;
void setup() {
Ethernet.begin(mac, ip);
Serial.begin(9600);
delay(1000);
}
void loop() {
if (client.connect(serverIP, serverPort)) {
Serial.println("Connected to server");
client.println("GET /api/data HTTP/1.1");
client.println("Host: 192.168.1.200");
client.println("Connection: close");
client.println();
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.print(c);
}
}
client.stop();
} else {
Serial.println("Connection failed");
}
delay(5000);
}
请将上述代码中的IP地址和端口号修改为树莓派的实际IP地址和HTTP服务器端口号。
在上述代码中,使用Ethernet库连接网络,并使用EthernetClient对象来发送HTTP GET请求和接收返回的数据。在loop()函数中,首先尝试连接到树莓派的HTTP服务器,然后发送GET请求并读取返回的数据,最后关闭连接。如果连接失败,会在串口监视器上打印出"Connection failed"。
通过以上步骤,您应该能够成功解决Arduino向树莓派发送HTTP GET请求时遇到的问题,且能够获取到树莓派返回的数据。