IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Shield Ethernet 2 vers serveur PHP


Sujet :

Arduino

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut Shield Ethernet 2 vers serveur PHP
    Bonjour,

    J'ai programmé mon shield pour qu'il puisse envoyer à mon serveur PHP des relevés de température.
    Pour vérifier que la requête URL transmise à mon serveur soit bonne j'ai fait le test suivant en tapant dans mon navigateur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    monserver.com/arduino/controller.php?air_temp=25
    Pas de souci, mon serveur prend bien en charge la variable air_temp à la valeur 25. Donc la requête fonctionne.

    Alors dans mon sketch Arduino j'ai mis ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    //Envoi de la température
                char myserver[] = "www.monserver.com/";
                if (client.connect(myserver, 80))
                {
                  Serial.println("connected");
                  client.println("GET /arduino/controller.php?air_temp=25 HTTP/1.1");
                  client.println("Host: www.monserver.com/");
                  client.println("Connection: close");
                  client.println();
                }
                else
                {
                  // if you didn't get a connection to the server:
                  Serial.println("Connection failed to Server");
                }
    Mon moniteur série affiche bien "connected" mais mon serveur PHP semble ne pas recevoir la variable air_temp. Pourquoi ?

  2. #2
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Rebonjour à tous,

    Personne pour m'aider sur le sujet. J'ai beau lire d'autres tuto sur le même principe qui semble fonctionner chez d'autres. Pourquoi mon serveur PHP ne reçoit pas la variable air_temp ?

  3. #3
    Expert confirmé
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par défaut
    bonjour,

    as-tu un message d'erreur ?

  4. #4
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Non, pas de message d'erreur, , mon moniteur série affiche connected donc je suppose, je dis bien je suppose, que mon shield a bien trouvé mon serveur et le fichier controller.php. Mais la variable transmise en methode GET ne semble pas être prise en compte contrairement à un essai avec mon navigateur...
    Où ça coince ?

  5. #5
    Modérateur

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    Septembre 2008
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 282
    Par défaut
    Bonjour

    if (client.connect(myserver, 80)) sera toujours prit car client.connect retourne un int avec la valeur 1 en cas de succès et des valeurs négatives (-1 à -4) en cas d'échec. Hors seule la valeur 0 est considérée comme un false, pour toutes les autres c'est un true (donc également -1 à -4).

    Faire déjà if (client.connect(myserver, 80)==1) devrait aider.
    Ensuite récupérer l'int dans une variable et l'envoyer sur le serial.

    Sinon tu as bien un Ethernet.begin(mac, ip, dns); avant le code que tu posts? Sinon ton shield n'est simplement pas connecté au RJ45.

    Bonne fin de week-end

    Delias

  6. #6
    Inactif  
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2012
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2012
    Messages : 41
    Par défaut
    Mon shield est bien connecté au RJ45 puisqu'il reçoit des données d'un Javascript qui tourne bien.
    J'ai rajouté la variable checkConnect dans mon sketch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    int checkConnect = client.connect(myserver, 80);
    Serial.print("checkConnect: ");
    Serial.println(checkConnect);
    //Envoi de la température
                char myserver[] = "www.monserver.com/";
                if (client.connect(myserver, 80))
                {
                  Serial.println("connected");
                  client.println("GET /arduino/controller.php?air_temp=25 HTTP/1.1");
                  client.println("Host: www.monserver.com/");
                  client.println("Connection: close");
                  client.println();
                }
                else
                {
                  // if you didn't get a connection to the server:
                  Serial.println("Connection failed to Server");
                }
    Elle retourne -5 dans mon moniteur série....

    Autre chose, j'ai essayé d'enlever le slash après .com dans char myserver[] donc char myserver[] = "www.monserver.com"; Et là, checkConnect me retourne 0 suivi du message Connection failed to Server.

    Je ne comprends rien!!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Web Service] Upload fichier csv vers serveur PHP SOAP
    Par Jarod51 dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 06/02/2016, 16h27
  2. Upload image vers serveur PHP
    Par 2001hal dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 11/01/2016, 03h19
  3. [MySQL] php+transfert de données serveur vers serveur
    Par Samolo dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 02/11/2009, 09h12
  4. Envoi d'un fichier .zip vers un serveur php
    Par Arnard dans le forum C++
    Réponses: 4
    Dernier message: 25/04/2008, 10h57
  5. Java vers serveur Php/Mysql, quelle solution ?
    Par Mordoum dans le forum Général Java
    Réponses: 7
    Dernier message: 22/01/2008, 11h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo