我建议使用HTTP GET
来自 Arduino 的请求。根据您的堆栈代码,如果未设置 DNS,它可能无法解析域名。因此,除非您知道它可以将您的域解析为正确的 IP,否则我建议您使用 IP。您可以在 WebClient 示例中查看更多信息:http ://www.arduino.cc/en/Tutorial/WebClient
// if you get a connection, report back via serial:
if (client.connect(server, 80)) {
Serial.println("connected");
// Make a HTTP request:
client.println("GET /arduino.php?led=1 HTTP/1.1");
client.println("Host: www.yourwebsite.com");
client.println("Connection: close");
client.println();
}
else {
// kf you didn't get a connection to the server:
Serial.println("connection failed");
}
然后在您的循环中,您寻找正确的响应(假设LEDPIN
已在设置中定义):
void loop()
{
// if there are incoming bytes available
// from the server, read them and print them:
if (client.available()) {
char c = client.read();
if(c == 1){
digitalWrite(LEDPIN, HIGH);
} else {
digitalWrite(LEDPIN, LOW);
}
Serial.print(c);
}
// if the server's disconnected, stop the client:
if (!client.connected()) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
// do nothing forevermore:
while(true);
}
}
然后 PHP 可以执行以下操作:
<?php
if(isset($_GET['led']) && $_GET['led']){
// LED is on, send 0 to turn it off
echo "0";
} else {
// Turn LED on
echo "1";
}
?>
所以页面总是会显示一个0,除非你通过了一个led
被通过并且条件得到满足。
如果您需要更多信息或更明确的答复,请更新您的问题并提供更多详细信息。发布您的代码。