Ви не увійшли.
Здравствуйте! Есть код... с отправкой разобрался, но как принять данные - непонятно. Помогите, что с кодом не так? В правильном ли порядке прописан client.read?
С сервера поступает echo 1; //или 0
#include <SPI.h>
#include <Ethernet.h>
#include <OneWire.h>
#include <DallasTemperature.h>
OneWire oneWire(15);
DallasTemperature ds(&oneWire);
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetClient client;
char server[] = "-----";
int buff = 0;
const int led = 7;
void setup()
{
Ethernet.begin(mac);
ds.begin();
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
}
void loop()
{
ds.requestTemperatures();
if (client.connect(server, 80))
{
client.print( "GET /add.php?");
client.print("temperature=");
client.print( ds.getTempCByIndex(0) );
client.print("&");
client.print("&");
client.print("temperature1=");
client.print( ds.getTempCByIndex(1) );
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);
}
if ( buff==0)
{
digitalWrite(led, LOW);
}
delay(500);
}
Остання редакція Refalkof (2019-01-24 18:01:55)
Неактивний
якщо ще актуально)
Есть код... с отправкой разобрался
а відправка йде точно?
проблеми можуть бути у двох місцях:
client.print( ds.getTempCByIndex(0) );
отримання даних із датчика займає досить тривалий час, тому краще попередньо отримати дані у якусь змінну, а потім відправляти get-запросом
якщо дані все ж таки відправляються то затримка у 200 ms перед отриманням даних
delay(200);
while (client.available())
іноді може бути замалою. цей час тратиться на виконання самого скрипта "add.php" на веб-сервері плюс 1-3 ms на отримання результату мікроконтроллером, і якщо у вас тормознутий скрипт, або БД, або сам апач то цей час може бути більший ніж 200ms.
наприклад в мене середній час на get-запрос і отримання й обробку відповіді 20ms, із них:
- 5ms - встановлення зв'язку з web-сервером і відправка get-запросу
- 10ms - час виконання скрипта на web-сервері
- 5ms - отримання і парсинг відповіді
але періодично цей час займає більше 200-250ms або навіть кількох секунд. це може бути на ділянці встановлення зв'язку з web-сервером, або під час виконання web-скрипта
Неактивний
Жорж.Пиши уже на русском , если не можешь по-украински. Тебя поймут лучше . А то типа -"ферштейн цюрюк нахрен"