Помогите пожалуйста Прочесть данные client.read()

Matt007
Offline
Зарегистрирован: 25.04.2021
while (client.available())
{
  char c = client.read();
Serial.print(c);
}
 
РЕЗУЛЬТАТ:
HTTP/1.1 200 OK
Server: nginx
Date: Sun, 25 Apr 2021 08:29:47 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: close
Vary: Accept-Encoding
X-Powered-By: PHP/7.3.26
 
3
 
0                                                 // ИНТЕРЕСУЕТ ЗНАЧЕНИЕ В ЭТОЙ СТРОКЕ
 
0
 
rkit
Offline
Зарегистрирован: 23.11.2016

http вручную не разбирают. Это колоссальная трата времени. Для http есть библиотеки. Абсолютно на любой платформе.

Matt007
Offline
Зарегистрирован: 25.04.2021

Подскажите, будьте любезны, где искать информацию?

negavoid2
negavoid2 аватар
Offline
Зарегистрирован: 06.05.2020
Matt007
Offline
Зарегистрирован: 25.04.2021

Господи! Может кто-нибудь за деньги проконсультировать?!

 

Matt007
Offline
Зарегистрирован: 25.04.2021

Дайте кто-нибудь консультацию по обмену данными с сервера на ардуино! 5000р

 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Чем не устроила ссылка #3 ?

Matt007
Offline
Зарегистрирован: 25.04.2021

Я вообще ничего не понимаю

У меня есть сайт на сервере, есть код
Есть Мега с шилдом, есть код

не работает! 

Чего только не делал

 

Rumata
Rumata аватар
Offline
Зарегистрирован: 29.03.2019

Matt007 пишет:

Я вообще ничего не понимаю

Значит это не ваше. К чему все это?

Matt007
Offline
Зарегистрирован: 25.04.2021

Я готов заплатить денег, за консультацию. 10 000 рублей
Я покажу код, объясню задачу, мне нужно пояснение где что за чем выполняется.
Ребенок занимается в Кванториуме. Дали такой проект. 

Я не понимаю одного, если здесь есть те, кто в этом хорошо разбирается, почему никто не может помочь за оплату?

 

sadman41
Offline
Зарегистрирован: 19.10.2016

Таким кодом http не разобрать.
Писал я как-то парсер http на мегу - это треш полный.
В данной ситуации я бы, пожалуй, просто хидер скипнул, а тело распарсил.

sadman41
Offline
Зарегистрирован: 19.10.2016

Matt007 пишет:

Я покажу код, объясню задачу, мне нужно пояснение где что за чем выполняется.

Скиньте исходник на wrk.sadman@gmail.com - гляну хоть что нынче дети изучают.

rkit
Offline
Зарегистрирован: 23.11.2016

sadman41 пишет:
В данной ситуации я бы, пожалуй, просто хидер скипнул, а тело распарсил.

Особенно вот такое, ага

Transfer-Encoding: chunked
sadman41
Offline
Зарегистрирован: 19.10.2016

Chunked на трёх строчках - ситуация нездоровая, с ней тоже надо разбираться.

rkit
Offline
Зарегистрирован: 23.11.2016

Совершенно здоровая ситуация. Пхп-то откуда знать, сколько там строчек будет.

sadman41
Offline
Зарегистрирован: 19.10.2016

Опять включил режим "затычка в каждой бочке" без знакомств с исходниками?

rkit
Offline
Зарегистрирован: 23.11.2016

Ой. Опять какая-то обида выплыла. Я знаю, что такое пхп, нежная ты наша, и как пхп работает. Даже без конкретных исходников.

Matt007
Offline
Зарегистрирован: 25.04.2021
#include <SPI.h>
#include <Ethernet.h>
//#include <OneWire.h>
//#include <DallasTemperature.h>

//#define ONE_WIRE_BUS 2
//OneWire oneWire(ONE_WIRE_BUS);
//DallasTemperature sensors(&oneWire);

byte mac[] = { 0x54, 0x34, 0x41, 0x30, 0x30, 0x31 };                                       

EthernetClient client;
char server[] = "matveyserv.ru"; // имя вашего сервера  
int buff=0;
const int led=6;

void setup()
{
  Ethernet.begin(mac);
 // sensors.begin();
  pinMode( led, OUTPUT);
  digitalWrite(led, LOW);
}

void loop()
 {
  
//  sensors.requestTemperatures();
  
    if (client.connect(server, 80)) 
{

    client.print( "GET /add_data.php?");
    client.print("temperature=");
    client.print( random(1,10) );
    client.print("&");
    client.print("&");
    client.print("temperature1=");
    client.print( random(1,10) );
    client.println( " HTTP/1.1");
    client.print( "Host: " );
    client.println(server);
    client.println( "Connection: close" );
    client.println();
    client.println();
   
    delay(200);
    
      while (client.available())
 {
      char c = client.read();
        if ( c=='1')
        {
        buff=1;
        }
        if ( c=='0')
        {
         buff=0;
        }
      } 
      client.stop();
      client.flush();
      delay(100); 
  }
  else 
  {
   client.stop();
   delay(1000);
   client.connect(server, 80);
  }

  if ( buff==1)
        {
        digitalWrite (led, HIGH);
        }
        else
        {
          digitalWrite(led, LOW);
        }
  delay(500);
}

 

 

Matt007
Offline
Зарегистрирован: 25.04.2021

Отправляем на сервер рандомные значения. На страничке все отображается.
Но Ардуино не зажигает светодиод.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Matt007 пишет:
почему никто не может помочь за оплату?
Потому, что Вы полезли писать на форум не потрудившись его почитать и понять его структуру. За оплату помогают в разделе "Ищу исполнителя". Вы же запостили в раздел, где помогают бесплатно. Но именно помогают (подсказывают что почитать, о чём подумать, на что обратить внимание), а не делают за Вас.

Matt007
Offline
Зарегистрирован: 25.04.2021

Евгений, спасибо за ценный совет.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Matt007 пишет:

Евгений, спасибо за ценный совет.

Не за что, могу дать ещё один.

Всегда читайте форум, прежде, чем писать. Если бы Вы это сделали, Вы бы знали, что код, который Вы вставили в посте #17 никто даже читать не будет. Правила вставки кода описаны в разделе "Песочница". Код должен иметь нумерацию строк и возможность копирования его к себе (без номеров, конечно).

Feofan
Offline
Зарегистрирован: 28.05.2017
Сделайте в 71-й строке вывод переменной buff в Serial. Что оно покажет...
P.S.
В ArduinoIDE есть волшебная комбинация клавиш для авто-форматирования текста - Ctrl+T
b707
Offline
Зарегистрирован: 26.05.2017

А код Хтмл странички поменять можно? Обьясню о чем спрашиваю - если вместо одинокого символа "3" выводить в строку что-то более удобное для поиска, типа "####3####" - то задача извлечения информации со страницы существенно упростится и с ней справится даже ардуино Нано, а не то что мега

Matt007
Offline
Зарегистрирован: 25.04.2021

Спасибо за помощь!!!

Кажется какие-то проблемы на стороне сервера

К сожалению я не могу разобраться c работой PHP файлов.

rkit
Offline
Зарегистрирован: 23.11.2016

b707 пишет:
А код Хтмл странички поменять можно? Обьясню о чем спрашиваю - если вместо одинокого символа "3" выводить в строку что-то более удобное для поиска, типа "####3####" - то задача извлечения информации со страницы существенно упростится и с ней справится даже ардуино Нано, а не то что мега

Там ничего кроме цифры не выводится.

sadman41
Offline
Зарегистрирован: 19.10.2016

Скриншот для знатока "что такое пхп, и как пхп работает", а так же любителя поутверждать, что "Пхп-то откуда знать, сколько там строчек будет".

Никаких Chunked и вполне себе осязаемый Content-Lenght. 

rkit
Offline
Зарегистрирован: 23.11.2016

Большой молодец. Показал, что апач агрессивно буферизует ввод. Жалко, что к коду, на который ты хотел смотреть, этот триумфальный пук в лужу не имеет никакого отношения.

sadman41
Offline
Зарегистрирован: 19.10.2016
$ cat test.php
<?php
header("Content-Length: 32");
phpinfo();
?>

Если не знаешь, как посчитать размер контента - спроси, кто-нить тебе ссылку на мануал даст.