2015-04-28 4 views
-1

Поиск совета по подключению модуля arduino и ESP8266 для чтения файла PHP на веб-странице (не в локальной сети, я использую доменное имя и хостинг для веб-страницы) 1 'или' 0 '. Если это «1», я смотрю на включение светодиода, а если «0», выключить его.Модуль WIFI ESP8266 для чтения файла PHP

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

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

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

благодарит заранее!

+0

PHP-файл выглядит так:

+0

Добро пожаловать в SO. Чтобы быть ясным, у вас есть Arduino, который вызывает страницу PHP. Основываясь на результатах страницы PHP, вы хотите, чтобы светодиод включался или выключался. Какую информацию вы передаете на страницу PHP? Какое условие? Также отправьте пример кода Arduino и кода PHP. – Twisty

ответ

0

Я бы посоветовал использовать запрос 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 

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 передается и условия.

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

Смежные вопросы