Ethernet Shild и mysql прием данных..

Тема в разделе "Arduino & Shields", создана пользователем Casper, 9 фев 2014.

  1. Casper

    Casper Нерд

    Подскажите пожалуйста как правильно работать с Ethernet Shild-ом. Отправить get запрос на выполнение скрипта который заносит данные в БД mysql у меня получилось. А вот считать ответ от скрипта у меня не получается(( В этой статье http://habrahabr.ru/post/108058/ автор использует скрипт для выборки данных из БД и отправки на ардуинку. Но у меня никак не получается считать данные Ethernet-ом
    PHP:
    <?php
    //адрес хоста
    $dbhost = 'localhost';
    //Имя пользовтаеля
    $dbuser = 'Casper';
    //пароль для подключения к Mysql
    $dbpass = '123456';
    //имя базы данных
    $dbname = 'test';

    //устанавливаем подключение к MySQL
    $connect = mysql_connect($dbhost, $dbuser, $dbpass);
    // проверяем состояние подключения
    if(! $connect )
    {
      die('Could not connect: ' . mysql_error());
    }
    // Выбираем базу данных
    mysql_select_db ($dbname, $connect);


    $sql = mysql_query("SELECT temp FROM banya");
    $myrow = mysql_fetch_array($sql);
    echo ( $myrow['temp']."\n");

    ?>
    и код на ардуинке..
    Код (Text):
    #include <SPI.h>
    #include <Ethernet.h>


    byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

    char server[] = {192, 168, 1, 44};

    IPAddress ip(192,168,1,67);


    EthernetClient client;
    int val;
    String currentLine = "";

    void setup() {
      Serial.begin(9600);
      Ethernet.begin(mac, ip);
     
    }

    void loop()
    {
      if (Serial.available()) {      
        val = Serial.read();          
        if (val == '1') {            
         
         
          Serial.println("connecting to server...");
      if (client.connect(server, 80)) {
        Serial.println("making HTTP request...");
      // Создаем GET HTTP-запрос
        client.println("GET /get2.php HTTP/1.1");
        client.println("HOST: 192.168.1.44");
        client.println();
       
        if (client.connected()) {
        if (client.available()) {
          // считываем полученные байты:
          char inChar = client.read();
    Serial.println(inChar);
          // добавляем полученные байты в конец строки:
          currentLine += inChar;
          Serial.println(currentLine);
        }
        client.stop();
      }
     
      }
         
        }

      }
     
    }
    Помогите как правильно принимать ответ ардуинкой! В браузере выводится значение из этого скрипта.
     
  2. Unixon

    Unixon Оракул Модератор

    А в каком конкретно месте желаемое расходится с действительным?
     
  3. Casper

    Casper Нерд

    Желаемое это получить результат работы скрипта в ардуинку, но там полная тишина (( Может кто может дать рабочий пример, что бы мне его опробовать и если не сложно подробно описать, как происходит прием данных, а то я не очень догоняю..
     
  4. Unixon

    Unixon Оракул Модератор

    ОК, перефразирую вопрос. Результат работы какого конкретно оператора в скетче по факту отличается от того, что должно быть? Выясните сначала, где программа работает правильно, а в каком месте возникает проблема.

    Кстати, не вижу в скетче ожидания фактического прихода данных...
     
  5. Casper

    Casper Нерд

    Подскажите пожалуйста как надо их принять правильно, а то никак не могу разобраться и понять. Если не трудно привести какой нибудь пример. Спасибо за помощь.