Отправка и прием данных от сервера

Тема в разделе "Arduino & Shields", создана пользователем one_player, 24 дек 2016.

  1. one_player

    one_player Нерд

    Добрый день.
    Подскажите как можно реализовать отправку данных с arduino с помощью W5100 на сервер php и принять ответ от сервера.
    Т.е. ардуинка к примеру каждый час отправляет GET запросом единицу "1"
    Код (C++):

    client.connect(server, 80);
    client.print( "GET /index.php?int=1");
     
    Эта единица уходит на сервер. Сервер принимает, обрабатывает эту единицу и в конце своего скрипта посылает GET на ардуинку. Ардуинка принимает данные от сервера и выдает внешний признак(мигает диод, пищит, дергает серву и т.д).
    На данный момент ардуинка умеет отправлять данные на сервер и сервер их обрабатывает. Но вот удачно отработал скрипт или нет ардуинка не знает. Хотелось бы что бы ардуинка могла принимать от сервера что то вроде "1" или "0".
    Подскажите может кто то делал уже такое. Кто сильно добрый, поделитесь куском кода.
     
  2. rkit

    rkit Гуру

    PHP:
    <?php echo 1; ?>
     
  3. one_player

    one_player Нерд

    Сами то поняли что написали? :)
    Зачем писать в теме абы что?
     
  4. rkit

    rkit Гуру

    Понял. Жаль, что вы не поняли.
     
    sslobodyan и one_player нравится это.
  5. one_player

    one_player Нерд

    Признаю, был не прав, молодой был горячий :)
    Ответ нашел на форуме.
    Код (C++):
     
    String currentLine = "";
      client.connect(server, 80);
      client.print( "GET /index.php?dat=");
      client.print(dat);
      client.println();
      delay (50);
              if (client.connected())
              {
                while (client.available())
                {
                  char inChar = client.read();
                  currentLine += inChar;
                  if (currentLine == "1")
                  {
                      tone(3,800,200);
                      delay(2000);
                   }
                  if(currentLine == "0")
                  {
                      tone(3,1000,200);
                   }
                }
                client.stop();
              }
     
  6. rkit

    rkit Гуру

    Кошмар какой. Никогда не пишите на голом JS в вебе, это мазохизм. Используйте хотя бы jQuery.
    https://api.jquery.com/jquery.get/
    HTML:
    <!DOCTYPE html>
    <html>
    <head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
    <script>
    $(document).ready(function(){
        $("button").click(function(){
            $.get("script.php", function(data){
                    $("#result").html(data);
            });
        });
    });
    </script>
    </head>
    <body>

    <button>Click</button>
    <div id="result"></div>

    </body>
    </html>
     
     
  7. sslobodyan

    sslobodyan Гик

    Все правильно, только JQuery я б загружал из своего подкаталога, мы же не знаем есть ли выход в и-нет или все крутится на домашнем серваке.
     
  8. sslobodyan

    sslobodyan Гик

    Для перманентного обновления применяют таймеры, которые автоматом запускают нужную функцию через определенный интервал. А в функции тот же get-запрос с обновлением ваших показометров.
     
  9. VadimB

    VadimB Нуб

    Код (C++):
     GetAjaxData(client);
    Вот за это спасибо.
    Голову сломал как заставить функцию отправлять сообщения в сеть, а оказывается ей ссылку скормить нужно было.