Bonsoir tout le monde,
J'ai problème avec mon code.
Si je laisse à la fin le delay, toutes les 10 secondes la requete sera bien envoyée au serveur. De ce coté tout fonctionne bien.
Je souhaite remplacer le delay par une boucle while pour envoyer ma requete une fois, quand les minutes et secondes sont =0 (autrement dit 1 fois / heure).
Avec cette programmation je sort bien de ma boucle au moment décidé mais je n'ai plus ma connection au serveur et la requête n'est pas envoyée.
Si quelqu'un a une idée...
Merci d'avance
Voici le code, je l'ai alégé pour une comprehension plus aisée.
Client client(serverip, serverport);
bool connected = false;
int Heure;
int Minute;
int Seconde;
int Mois;
int Jour;
int An;
void setup()
{
lcd.begin(20, 4);
Serial.begin(9600);
Serial.println("Initializing Ethernet.");
Ethernet. begin(hwaddr, ipaddr); // start up ethernet
sensors.begin(); // start up the library
sensors.getDeviceCount(); // store the number of sensors to the variable numSensors,
}
void loop()
{
if(!connected) { // if "not" connected print: not connected ;)
Serial.println("Not connected");
if (client.connect()){ // if connected, set variable connected to "true" and
connected = true;
sensors.requestTemperatures(); // send the request for temperature to sensors (all sensors)
delay(100);
Heure=(RTC.get(DS1307_HR,true));
....
....
client.print("GET /essaiArduinoBase2/update_db.php?");
...
...
}
else{
Serial.println("Cannot connect to Server");
}
}
else{
delay(100);
while (client.connected() && client.available()) {
char c = client.read();
Serial.print(c);
}
Serial.println();
client.stop();
connected = false;
}
delay(10000); // Avec ce delay c'est ok, on renvoie bien la requête au serveur
/* // Si je remplace par cette boucle j'en sort bien, mais plus de connection au serveur
do
{
delay(1000);
Minute=(RTC.get(DS1307_MIN,true));
Seconde=(RTC.get(DS1307_SEC,true));
} while ((Minute !=0) || (Seconde !=0));
*/
}