Bonjour
Je suis débutant et c'est mon premier programme, je vous remercie par avance pour votre aide.
Carte utilisée : Arduino ethernet sans poe.
Programme : envoi de valeur des sondes analogiques dans une base mysql via un script php.
Problême rencontrée : Au bout d'un moment (environ 10 minutes) la carte n'envoie plus de données. Si je fait un serial monitor, j'ai mon message connexion failed et puis cela refonctionne. En revanche si je ne lance pas de serial monitor la carte ne repart pas.
Et quand je deconnecte le port usb et que je met seulement le cable réseau et l'alim, le programme se lance une fois sur deux.
#include <SPI.h>
#include <Ethernet.h>
byte mac[] = {
0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
byte server[] = { 192, 168, 0, 18 };
IPAddress ip(192,168,0,59);
// initialize the library instance:
EthernetClient client;
long lastConnectionTime = 0; // last time you connected to the server, in milliseconds
boolean lastConnected = false; // state of the connection last time through the main loop
const int postingInterval = 10000; //delay between updates to Pachube.com
int capteur1_Pin = A0;
int capteur2_Pin = A1;
int capteur3_Pin = A2;
int capteur4_Pin = A3;
int capteur5_Pin = A4;
int capteur6_Pin = A5;
int capteur1 = 0;
int capteur2 = 0;
int capteur3 = 0;
int capteur4 = 0;
int capteur5 = 0;
int capteur6 = 0;
void setup() {
// start serial port:
Serial.begin(9600);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// no point in carrying on, so do nothing forevermore:
for(;;)
;
}
// give the ethernet module time to boot up:
delay(1000);
// start the Ethernet connection:
if (Ethernet.begin(mac) == 0) {
Serial.println("Failed to configure Ethernet using DHCP");
// Configure manually:
Ethernet.begin(mac, ip);
}
}
void loop() {
capteur1 = analogRead(capteur1_Pin); //Reading analog data
capteur2 = analogRead(capteur2_Pin);
capteur3 = analogRead(capteur3_Pin);
capteur4 = analogRead(capteur4_Pin);
capteur5 = analogRead(capteur5_Pin);
capteur6 = analogRead(capteur6_Pin);
if (client.available()) {
char c = client.read();
Serial.print(c);
}
if (!client.connected() && lastConnected) {
Serial.println();
Serial.println("disconnecting.");
client.stop();
}
if(!client.connected() && (millis() - lastConnectionTime > postingInterval)) {
sendData();
}
lastConnected = client.connected();
}
void sendData() {
if (client.connect(server, 8888)) {
Serial.println("connecting...");
client.print("GET /arduino/index.php?C1=");
client.print(capteur1);
client.print("&C2=");
client.print(capteur2);
client.print("&C3=");
client.print(capteur3);
client.print("&C4=");
client.print(capteur4);
client.print("&C5=");
client.print(capteur5);
client.print("&C6=");
client.print(capteur6);
client.println(" HTTP/1.1");
client.println("Host: 192.168.0.18");
client.println();
lastConnectionTime = millis();
}
else {
// if you couldn't make a connection:
Serial.println("connection failed");
}
}
Merci,
Marc