#1 Програмування Arduino » Ethernet отправка и прием данных Get запросом » 2019-01-23 21:26:01

Refalkof
відповідей: 3

Здравствуйте! Есть код... с отправкой разобрался, но как принять данные - непонятно. Помогите, что с кодом не так? В правильном ли порядке прописан 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);
}

Підвал форуму