Почему мой код никогда не получает команду перезагрузки?

это продолжает терпеть неудачу и терпеть неудачу и терпеть неудачу.

Arduino YUN У меня есть этот код. Он должен перейти на сайт и получить значение «reboot», если значение «reboot» обнаружило, что оно выполняет действие, если «reboot» нет, то больше ничего не делать.

Иногда команда перезагрузки работает, но не всегда работает, что меня огорчает.

Кто-нибудь знает, почему мой код не работает?

#include <Bridge.h>
#include <HttpClient.h>

String result = String("");
void setup() {
delay(5000);
pinMode(2, OUTPUT);
Bridge.begin();
digitalWrite(2, HIGH);
}

void loop() {
HttpClient client;

// PIN 2
client.get("http://www.example.com/output.php?value=reboot");// output.php outputs the value reboot and the reset the value to empty string. after 10 second php puts the value to reboot and then put the value to empty.
result = "";
while (client.available()) {
char c = client.read();
result = result + c;
}

if(result.indexOf("reboot") >= 0) {// this keeps failing, sometime working and sometime not working
digitalWrite(2, LOW);
delay(3000);
digitalWrite(2, HIGH);
}

delay(7000);
}

0

Решение

оно работает.

#include <Bridge.h>
#include <HttpClient.h>
String result = String("");
void setup() {
delay(5000);
pinMode(2, OUTPUT);
Bridge.begin();
digitalWrite(2, HIGH);

}
boolean was_on = false;
void loop() {
HttpClient client;

// PIN 2
client.get("http://ok.example.com/ajax/light");
delay(500);
result = "";
while (client.available()) {
char c = client.read();
result = result + c;
}if(result.indexOf("reboot") >= 0) {
digitalWrite(2, LOW);
delay(2000);
was_on = true;
} else {
if(was_on) {
digitalWrite(2, HIGH);
delay(1000);
was_on = false;
}
}

delay(3000);
}
0

Другие решения

Других решений пока нет …