Merci!
Voici un exemple de GET envoyé sur le serveur:
do=data&data=Jeudi 6 Fevrier 2014 - 01:13:12,0,0,1,1,192,168,1,240,8080,192,168,1,211,8888,80,0,127,0,0,1,24.3,21.3,21.3,21.3,0,1,2,2,14.5,21.0,22.0,23.0,20.5,21.5,22.5,23.5,24.5,25.5,26.5,27.5,1,1,1,1,1,0,0,0,0,255,255,255,255,540,570,600,630,720,660,600,540,60,60,60,60,1,1,1,1,0,0,0,0,30,30,30,30,0,0,390,420,1,1,0,0,2,2,1,1,0,0,0,0.0,7.1,6.5,7.5
Je précise que les variables s'affiche très rapidement dans le terminal et que la led bleu de la carte wifi clignote pendant 6 secondes.
Voici mon code Arduino:
void sendDataToServer(byte whatDataSent)
{
String data;
float light1Power = 0.0, light2Power = 0.0, light3Power = 0.0, light4Power = 0.0;
// SONDE DE TEMPERATURE
// Convertion de float en string à 0.1 degré près
tempAquaTankStr = dtostrf(tempAquaTank,0,1,tempAquaTankTmp);
tempAquaTankSoilStr = dtostrf(tempAquaTankSoil,0,1,tempAquaTankSoilTmp);
tempFillingTankStr = dtostrf(tempFillingTank,0,1,tempFillingTankTmp);
tempAmbientStr = dtostrf(tempAmbient,0,1,tempAmbientTmp);
tempAquaTankSetPointStr = dtostrf(EEPROM.readFloat(EEaquaTankSetPoint),0,1,tempAquaTankSetPointTmp);
tempAquaTankSoilSetPointStr = dtostrf(EEPROM.readFloat(EEaquaTankSoilSetPoint),0,1,tempAquaTankSoilSetPointTmp);
tempFillingTankSetPointStr = dtostrf(EEPROM.readFloat(EEfillingTankSetPoint),0,1,tempFillingTankSetPointTmp);
tempAmbientSetPointStr = dtostrf(EEPROM.readFloat(EEambientSetPoint),0,1,tempAmbientSetPointTmp);
alarmMiniTempAquaTankStr = dtostrf(EEPROM.readFloat(EEalarmMiniTempAquaTank),0,1,alarmMiniTempAquaTankTmp);
alarmMaxiTempAquaTankStr = dtostrf(EEPROM.readFloat(EEalarmMaxiTempAquaTank),0,1,alarmMaxiTempAquaTankTmp);
alarmMiniTempAquaTankSoilStr = dtostrf(EEPROM.readFloat(EEalarmMiniTempAquaTankSoil),0,1,alarmMiniTempAquaTankSoilTmp);
alarmMaxiTempAquaTankSoilStr = dtostrf(EEPROM.readFloat(EEalarmMaxiTempAquaTankSoil),0,1,alarmMaxiTempAquaTankSoilTmp);
alarmMiniTempFillingTankStr = dtostrf(EEPROM.readFloat(EEalarmMiniTempFillingTank),0,1,alarmMiniTempFillingTankTmp);
alarmMaxiTempFillingTankStr = dtostrf(EEPROM.readFloat(EEalarmMaxiTempFillingTank),0,1,alarmMaxiTempFillingTankTmp);
alarmMiniTempAmbientStr = dtostrf(EEPROM.readFloat(EEalarmMiniTempAmbient),0,1,alarmMiniTempAmbientTmp);
alarmMaxiTempAmbientStr = dtostrf(EEPROM.readFloat(EEalarmMaxiTempAmbient),0,1,alarmMaxiTempAmbientTmp);
// ECLAIRAGE
light1Power = light1Pwm / 2.55;
light2Power = light2Pwm / 2.55;
light3Power = light3Pwm / 2.55;
light4Power = light4Pwm / 2.55;
light1PowerStr = dtostrf(light1Power,0,0,light1PowerTmp);
light2PowerStr = dtostrf(light2Power,0,0,light2PowerTmp);
light3PowerStr = dtostrf(light3Power,0,0,light3PowerTmp);
light4PowerStr = dtostrf(light4Power,0,0,light4PowerTmp);
// SONDE CO2
// Convertion de float en string à 0.1 degré près
phStr = dtostrf(ph,0,1,phTmp);
phSetPointStr = dtostrf(EEPROM.readFloat(EEphSetPoint),0,1,phSetPointTmp);
alarmMiniPhStr = dtostrf(EEPROM.readFloat(EEalarmMiniPh),0,1,alarmMiniPhTmp);
alarmMaxiPhStr = dtostrf(EEPROM.readFloat(EEalarmMaxiPh),0,1,alarmMaxiPhTmp);
// Envois les valeurs a afficher sur le site
if (whatDataSent == 1)
{
data = "do=data&data="+String()+displayRtc()+","
+EEPROM.readBit(EEhardwareResetStatus,0)+","+EEPROM.readBit(EEhardwareRebootStatus,0)+","
+EEPROM.readBit(EElanguage,0)+","+EEPROM.readBit(EEdisplayError,0)+","
+EEPROM.readByte(EEipArduinoOctet1)+","+EEPROM.readByte(EEipArduinoOctet2)+","+EEPROM.readByte(EEipArduinoOctet3)+","+EEPROM.readByte(EEipArduinoOctet4)+","
+EEPROM.readInt(EEportUdpArduino)+","
+EEPROM.readByte(EEipServerOctet1)+","+EEPROM.readByte(EEipServerOctet2)+","+EEPROM.readByte(EEipServerOctet3)+","+EEPROM.readByte(EEipServerOctet4)+","
+EEPROM.readInt(EEportUdpServer)+","+EEPROM.readInt(EEportHttpServer)+","
+EEPROM.readBit(EErestrictAcces,0)+","
+EEPROM.readByte(EEipAllowedOctet1)+","+EEPROM.readByte(EEipAllowedOctet2)+","+EEPROM.readByte(EEipAllowedOctet3)+","+EEPROM.readByte(EEipAllowedOctet4)+","
+tempAquaTankStr+","+tempAquaTankSoilStr+","+tempFillingTankStr+","+tempAmbientStr+","
+EEPROM.readByte(EEindexSensorAquaTank)+","+EEPROM.readByte(EEindexSensorAquaTankSoil)+","+EEPROM.readByte(EEindexSensorFillingTank)+","+EEPROM.readByte(EEindexSensorAmbient)+","
+tempAquaTankSetPointStr+","+tempAquaTankSoilSetPointStr+","+tempFillingTankSetPointStr+","+tempAmbientSetPointStr+","
+alarmMiniTempAquaTankStr+","+alarmMaxiTempAquaTankStr+","
+alarmMiniTempAquaTankSoilStr+","+alarmMaxiTempAquaTankSoilStr+","
+alarmMiniTempFillingTankStr+","+alarmMaxiTempFillingTankStr+","
+alarmMiniTempAmbientStr+","+alarmMaxiTempAmbientStr+","
+EEPROM.readBit(EEalarmTemp1,0)+","+EEPROM.readBit(EEalarmTemp2,0)+","+EEPROM.readBit(EEalarmTemp3,0)+","+EEPROM.readBit(EEalarmTemp4,0)+","
+EEPROM.readBit(EEtemperatureCelciusFahrenheit,0)+","
+light1PowerStr+","+light2PowerStr+","+light3PowerStr+","+light4PowerStr+","
+EEPROM.readByte(EElightPwmMax1)+","+EEPROM.readByte(EElightPwmMax2)+","+EEPROM.readByte(EElightPwmMax3)+","+EEPROM.readByte(EElightPwmMax4)+","
+EEPROM.readInt(EElightStartTime1)+","+EEPROM.readInt(EElightStartTime2)+","+EEPROM.readInt(EElightStartTime3)+","+EEPROM.readInt(EElightStartTime4)+","
+EEPROM.readInt(EElightOperatingTime1)+","+EEPROM.readInt(EElightOperatingTime2)+","+EEPROM.readInt(EElightOperatingTime3)+","+EEPROM.readInt(EElightOperatingTime4)+","
+EEPROM.readByte(EElightDimmingTime1)+","+EEPROM.readByte(EElightDimmingTime2)+","+EEPROM.readByte(EElightDimmingTime3)+","+EEPROM.readByte(EElightDimmingTime4)+","
+EEPROM.readBit(EEautoManuLight1,0)+"," +EEPROM.readBit(EEautoManuLight2,0)+"," +EEPROM.readBit(EEautoManuLight3,0)+"," +EEPROM.readBit(EEautoManuLight4,0)+","
+EEPROM.readBit(EEmanuelLightOnOff1,0)+","+EEPROM.readBit(EEmanuelLightOnOff2,0)+","+EEPROM.readBit(EEmanuelLightOnOff3,0)+","+EEPROM.readBit(EEmanuelLightOnOff4,0)+","
+EEPROM.readByte(EElight1PwmOffset)+","+EEPROM.readByte(EElight2PwmOffset)+","+EEPROM.readByte(EElight3PwmOffset)+","+EEPROM.readByte(EElight4PwmOffset)+","
+EEPROM.readBit(EEstatusFood1,0)+","+EEPROM.readBit(EEstatusFood2,0)+","
+EEPROM.readInt(EEstartFood1)+","+EEPROM.readInt(EEstartFood2)+","
+EEPROM.readByte(EEfastingDayFood1)+","+EEPROM.readByte(EEfastingDayFood2)+","
+food1LockTime+","+food2LockTime+","
+EEPROM.readByte(EEtempoFood1)+","+EEPROM.readByte(EEtempoFood2)+","
+EEPROM.readBit(EEautoManuFood1,0)+","+EEPROM.readBit(EEautoManuFood2,0)+","
+EEPROM.readBit(EEmanuelFoodOnOff1,0)+","+EEPROM.readBit(EEmanuelFoodOnOff2,0)+","
+co2NumbBubble+","+phStr+","
+phSetPointStr+","+alarmMiniPhStr+","+alarmMaxiPhStr;
whatDataSent = 0;
#ifdef DEBUG_WIFI_SERVER
Serial.println(F("-> Envois des donnees pour affichage sur le serveur: "));
Serial.println(data);
Serial.println();
#endif
}
// Envois les valeurs a enregistrer dans MYSQL
else if (whatDataSent == 2)
{
data = "do=data&func=3&date="
+dateTimeMysql()
+"&temp1="+tempAquaTankStr+"&temp2="+tempAquaTankSoilStr+"&temp3="+tempFillingTankStr+"&temp4="+tempAmbientStr
+"&light1="+light1PowerStr+"&light2="+light2PowerStr+"&light3="+light3PowerStr+"&light4="+light4PowerStr
+"&food1="+EEPROM.readBit(EEstatusGraphFood1,0)+"&food2="+EEPROM.readBit(EEstatusGraphFood2,0)
+"&co2="+co2NumbBubble+"&ph="+phStr;
whatDataSent = 0;
if( (EEPROM.readBit(EEstatusGraphFood1,0) == 1) || (EEPROM.readBit(EEstatusGraphFood2,0) == 1) )
foodGraphDataSent();
#ifdef DEBUG_WIFI_SERVER
Serial.println(F("-> Envois des donnees dans la base de donnees MYSQL: "));
Serial.println(data);
Serial.println();
#endif
}
#ifdef DEBUG_WIFI_SERVER
Serial.print(F("-> Connection au serveur: "));
Serial.print(ipServer);
Serial.print(F(":"));
Serial.println(portHttpServer);
#endif
if (client.connect(ipServer, portHttpServer))
{
client.println( "POST /mapagetrucmuche.php HTTP/1.1" );
client.println( "Host: " + String(ipServer) );
client.println( "Content-Type: application/x-www-form-urlencoded" );
client.println( "User-Agent: DuduInoWifi" );
client.println( "Connection: close" );
client.print( "Content-Length: " );
client.println( data.length() );
client.println();
client.print( data );
client.println();
#ifdef DEBUG_WIFI_SERVER
Serial.println(F("| S U C C E S de la connection au serveur"));
#endif
}
#ifdef DEBUG_WIFI_SERVER
else
{
Serial.println(F("| E C H E C de la connection au serveur"));
}
#endif
client.stop();
#ifdef DEBUG_WIFI_SERVER
Serial.println(F("| Connection terminee"));
Serial.println();
#endif
}