Pb avec la liaison Ethernet (a moitie Résolu)

Les cartes Arduino, les platines

Pb avec la liaison Ethernet (a moitie Résolu)

Message non lude S3B » Sam 5 Nov 2011 01:46

Bonjour

Désolé de poster à cet endroit, mais je n'ai pas trouvé de topic lié à l'ethernet shield

j'utilise la dernière lib ethernet ( j'ai aussi essayé l'ethernet2 )

mon problème est tout simple mais assez pour bloquer l'avancement de mon projet.
la fonction connect() échoue ou gel après pas mal d'envois

je dois simplement envoyer une requete à mon serveur PHP.
au debut je faisais des Get et je viens de changer avec un autre type d'envoi et idem.
j'ai aussi changé de serveur php afin de l'avoir sur mon poste et éviter la limitation des requetes et le pb est le meme

j''ai essayer pas mal de tutos et j'ai minimisé le code.

si quelqu'un a deja eu ce soucis ou si il voit mon pb ...

voici le loop, la mémoire est suffisante ainsi que la taille de mes buffers, j'ai viré tout l'inutile

une fois planté le reset ne suffit pas, je dois débrancher electriquement la carte et hop c'est reparti pour environ 150 envois de requetes

merci par avance pour vos réactions.


Pour contourner le pb, j'ai converti le programme avec un envoi en liaison série, un programme sur Mac OSX récupère les infos et envoie sur le serveur les données. ( bon je vous passe un autre problème où le mac lui aussi plante la connexion série au bout d'un certain temps ... )



[EDIT]
J'ai avancé sur mon problème. J'avais bien lu quelque chose sur la SD / ethernet comme quoi on ne pouvait utiliser les 2 à la fois sur ce shield.
Je n'ai pas encore fait le nécessaire et je ne peut pas confirmer à cette heure si je vais résoudre mon pb en activant la SD ou l'ethernet l'un après l'autre mais le simple fait de retirer physiquement la carte micro SD du lecteur me permet à présent de boucler sans soucis (930 000 insertions sans soucis).
Je viendrai sur ce post valider le dev car j'ai besoin de la SD.
Si cela peut débloquer quelqu'un ....
[EDIT]



[EDIT N°2]
Problème résolu, il faut bien activer la SD OU l'ethernet.
un appel de fonction ci dessous et plus de soucis.
j'ai inséré 3 000 000 de requêtes sans soucis.
Je laisse le post au complet si cela peu aider .
[EDIT]

Code: Tout sélectionner
//Pin SD / Ethernet
#define pinSD 4
#define pinEthernet 10

#define ethernetON() digitalWrite(pinEthernet, LOW); digitalWrite(pinSD, HIGH)
#define sdON() digitalWrite(pinEthernet, HIGH); digitalWrite(pinSD, LOW)


[EDIT N°3]
Une fois tout le code remis en place, la liaison ne tient pas.
Il reste 310 octets de mémoire et je ne peux pas optimiser plus.
Soit je me suis planté sur ce que j ai dit au dessus, soit la mémoire n'est pas suffisante.
Je teste sans la sd pour valider qu avec 400 octets de mémoire liason tient ...
A suivre du coup , je commence a désespérer.
[EDIT]

Code: Tout sélectionner

void loop(void)
{
  if (client.connect())
  {
     strcpy(resultBuffer,"0");
     strcpy(resultBuffer2,"0");
 
    Serial.println("connected");
    sprintf(strData, "HEAD /arduino/homecontrol.php?ilog=%d&isrc=%d&val=%s&val2=%s  HTTP/1.0", 1, 1, resultBuffer,resultBuffer2);
    client.println(strData);
    client.println("Host: 192.168.1.74");
    client.println("Connection: close");
    client.println();
    client.stop();
    client.flush();    // j'ai essayé avec ou sans
   
    delay(100);       // essayé avec ou sans pause
  }
  else
  {
   Serial.println("connection failed");
  }
}
S3B
 
Messages: 13
Inscription: Jeu 13 Oct 2011 14:34

Re: Pb avec la liaison Ethernet (a moitie Résolu)

Message non lude Lionel » Lun 7 Nov 2011 15:05

Bonjour,

j'ai déplacé le sujet dans la section Matériel arduino.

Afin de vous aider au mieux pourriez vous :
1- nous faire savoir quelle carte arduino vous utilisez
2- Poster votre code complet ?

D'avance merci
Image - Distributeur officiel Arduino - Conception de shields
Avatar de l’utilisateur
Lionel
 
Messages: 734
Inscription: Mar 21 Déc 2010 09:52
Localisation: Toulouse

Re: Pb avec la liaison Ethernet (a moitie Résolu)

Message non lude S3B » Lun 7 Nov 2011 15:22

Bonjour

J'utilise l'arduino uno (dernière version) + les derniers drivers 022 et ethernet
Je posterai un bout de code dans la soirée.

une simple aqui avec un DS1820 + envoi ethernet me plombe aussi l'envoi ethernet au bout d'un certain temps suivant le delai entre chaque requête.

En spécifiant un envoi par minute, j'ai tenu 8H cette nuit..
toutes les 5s, ca tient en moyenne 2 à 3H, c'est assez aléatoire.
Par contre, l'arduino n'est pas planté, il continue l'aqui de température et l'écriture sur carte SD.

Je viens de mettre en place un reboot matériel au bout de 5 echecs d'envoi pour que les logs continuent d'arriver en base de donnée.
C'est assez violent mais à ce stade, j'ai besoin que ca tourne. Alors en attendnant de trouver ce qui ne va pas réellement ...

Pas mal de personnes ont ce soucis avec l'envoie de données en utilisant l'éthernet.
J'étais content avec mes 3000 000 d'envois sans soucis, mais sans rien : ni SD, ni DS1820, juste une boucle ...
Par contre, il falllait bien désactiver la SD pour que ca passe.

Merci à vous de vous soucier de mon problème qui doit en bloquer plus d'un à mon avis.
Après suivant la fréquence d'envoie des données, tout peut changer, car un envoi toutes les 10min, j'ai tournée 5 Jours sans soucis ...
S3B
 
Messages: 13
Inscription: Jeu 13 Oct 2011 14:34


Retourner vers Arduino

Qui est en ligne

Utilisateurs parcourant ce forum: Bing [Bot] et 1 invité