Как правильно отправить Get ?
- Войдите на сайт для отправки комментариев
Пт, 01/11/2013 - 10:40
есть кусок кода отвечающий за отправку данных на HTTP страничку
oid send(){
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval){
previousMillis = currentMillis;
EthernetClient client;
if (client.connect(rserver, 80))
{
int temp21 = (duino2.temperature_Sensor - (int)duino2.temperature_Sensor) * 100;
sprintf(buf, "GET /objects/?object=TempSensor2&op=m&m=tempChanged&&t=%0d.%d HTTP/1.0", (int)duino2.temperature_Sensor, abs(temp21));
Serial.print("T2 : ");
Serial.println(duino2.temperature_Sensor);
client.stop();
}else {Serial.println("no connect T2");
}
//-------> отправка температуры ТО <--------------
if (client.connect(rserver, 80))
{
int analog2 = 100 - duino2.Analog_sensor_A2;
sprintf(buf, "GET /objects/?object=analog2&op=m&m=tempChanged&&t=%d HTTP/1.0", (int)analog2);
Serial.print("a2 : ");
Serial.println(analog2);
client.stop();
}else {Serial.println("no connect a2");
}
sensors.requestTemperatures();
if(sensors.getAddress(Termometers, 0))
{
float tempC = sensors.getTempC(Termometers);
int temp1 = (tempC - (int)tempC) * 100;
//SWITCH_TO_SD;
//myFile = SD.open("1.txt", FILE_WRITE);
// if (myFile) {
// Выводим данные на экран
//Serial.print(sys.uptime());
//Serial.print(": TempSensor0 : ");
//Serial.println(tempC);
// Записываем время
// myFile.print(sys.uptime());
// Добавляем точку с запятой
// myFile.print(": TempSensor0 : ");
// Добавляем температуру и добавляем перенос строки
// myFile.println(tempC);
// закрываем файл
// myFile.close();
// SWITCH_TO_W5100;
// } else {
// // Выводим сооб щение о том, что открыть файл не удалось
// Serial.println("error opening 1.txt");
// }
if (client.connect(rserver, 80))
{
sprintf(buf, "GET /objects/?object=TempSensor0&op=m&m=tempChanged&&t=%0d.%d HTTP/1.0", (int)tempC, abs(temp1));
client.println(buf);
client.println();
Serial.print("T0 : ");
Serial.println(tempC);
client.stop();
} else {Serial.println("no connect T0");
}
if(sensors.getAddress(Termometers, 1))
{
float tempC = sensors.getTempC(Termometers);
int temp1 = (tempC - (int)tempC) * 100;
/*
sensorDataFile = SD.open(SENSOR_DATA_FILE_NAME, FILE_WRITE);
char msg[128];
sprintf(msg, "TempSensor1 = %0d.%d%C", (int)tempC, abs(temp1));
Serial.println(msg);
sensorDataFile.print(sys.uptime());
sensorDataFile.print("-");
sensorDataFile.println(msg);
sensorDataFile.close();
*/
if (client.connect(rserver, 80))
{
sprintf(buf, "GET /objects/?object=TempSensor1&op=m&m=tempChanged&&t=%0d.%d HTTP/1.0", (int)tempC, abs(temp1));
Serial.print("T1 : ");
Serial.println(tempC);
client.println(buf);
client.println();
//Serial.print("send T1");
} else {Serial.println("no connection T1");
}
}
}
}else{};
}
дело в том что данные уходят частями.
я так понимаю нужно сделать что-то вроде цикла и отправлять отдельно
наличие или отсутствие цикла никак не влияет на отправляемость данных. рабочий код будет работать хоть в setup() хоть в loop().
дело в том что данные уходят частями.
а надо чтобы лились непрерыным потоком? :)
Что именно-то не работает? сформируйте статическую строку типа
и пробуйте отправить