Как правильно отправить Get ?

9ser
Offline
Зарегистрирован: 18.11.2012

есть  кусок кода отвечающий за отправку данных на 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{};
}

дело  в том что данные уходят частями.

я так понимаю нужно сделать что-то вроде цикла и отправлять отдельно 

com
Offline
Зарегистрирован: 06.09.2013

наличие или отсутствие цикла никак не влияет на отправляемость данных.  рабочий код будет работать хоть  в setup() хоть в loop().

9ser пишет:

дело  в том что данные уходят частями.

а надо чтобы лились непрерыным потоком? :)

Что именно-то не работает? сформируйте статическую строку типа

const char* buf = "GET /objects/?object=TempSensor1&op=m&m=tempChanged&t=25";

и пробуйте отправить