Arduino — WiFi-модуль ESP8266 для чтения PHP-файла

Обращаюсь за советом по поводу того, как заставить Arduino и модуль Wi-Fi ESP8266 читать файл PHP на веб-странице (не в локальной сети; я использую доменное имя и службу хостинга для веб-страницы), которая повторяет «1» или «0». Если это «1», я смотрю на включение светодиода, а если «0», выключаю его.

например, PHP-файл выглядит так, чтобы включить светодиод:
<?php echo 1; ?>

Мне нужно иметь возможность прочитать файл php, чтобы включить светодиод. Каков наилучший подход в этом сценарии? Лучше отправить запрос HTTP GET на IP-адрес модуля Wi-Fi ESP8266 или есть способ запрограммировать модуль для чтения отраженных данных из файла php? Есть ли другой модуль Wi-Fi, который сделает это проще?

если я не дал понять, или вам нужна дополнительная информация, чтобы посоветовать мне, пожалуйста, дайте мне знать.

заранее спасибо !

-1

Решение

Я бы посоветовал использовать 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 пройдено и условия выполнены.

Если вам нужна дополнительная информация или более четкий ответ, пожалуйста, обновите свой вопрос с более подробной информацией. Разместите свой код.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector