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 :

Envoyer du code arduino ( avec esp32) sur une page php ( serveur distant chez hebergeur)


Sujet :

Arduino

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Par défaut Envoyer du code arduino ( avec esp32) sur une page php ( serveur distant chez hebergeur)
    Bonjour a vous,
    J'aimerais afficher sur une page php les donnees envoyees par mon esp 32. Il utilise pour cela une requete get vers mon code php du serveur distant avec les valeurs des parametres passes dedans.
    Le serveur n est pas sur mon esp et est chez un hebergeur ( webhost).
    Dans mon php, je fais echo GET["parametre"], le echo est renvoye dans mon moniteur serie mais pas sur ma page php.
    J'ai deja au cours d'un precedent travail de cours eu l'occasion d'afficher des valeurs envoyees par esp.
    Mais la configuration etait differente. Elles etaient envoyeees a une base de donnees depuis arduino et mon code php les recuperait dans la base de donnees.
    La je n'ai pas besoin de BDD et je pensais que ca serait tres simple mais ca ne marche pas. J'ai meme essaye d'utiliser des variables de session en php poir conserver la valeur du get mais sans succes.
    En vous remerciant pour votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Postez le PHP et le code arduino

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Par défaut codes utilisés
    Bonjour à vous voici les codes utilisés

    fichier PHP recup_infos_4.php

    Code php : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    <?php   session_start(); ?>
    <!DOCTYPE HTML>
    <html>
        <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
     
            <meta name="viewport" content="width=device-width, initial-scale=1">
     
            <title>Securite</title>
            <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
        </head>
    <body>
        <?php 
        $temperature = "";
        $couleur = "";
        $son="";
     
        if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET)&&!empty($_GET)){
            echo "dans GET";
            $_SESSION["temperature"] = $_GET["temperature"];
            $_SESSION["son"] = $_GET["son"];
            $_SESSION["couleur"] = $_GET["couleur"];
     
       }
       if (isset($_SESSION["temperature"])){
        $temperature = $_SESSION["temperature"];
       }
       if (isset( $_SESSION["couleur"])){
        $couleur = $_SESSION["couleur"];
           }
         if (isset($_SESSION["son"])){
        $son = $_SESSION["son"];
         }
        ?>
        <script>
        var temperature = <?php echo json_encode($temperature); ?>;
        var couleur = <?php echo json_encode($couleur); ?>;
        var son = <?php echo json_encode($son); ?>;
         $(document).ready(function(){
            function afficher_donnees(){
                $.ajax({
                    url: 'recup_infos_5.php?=son'+son+'&temperature='+temperature+'&couleur='+couleur,
                    type: 'GET',
                    dataType: 'json',
                    success: function(response) {
                    console.log(response);
                    var objet = JSON.parse(JSON.stringify(response));
                    //console.log(objet.message);
                    console.log(objet.temperature);
                    console.log(objet.couleur);
                    console.log(objet.son);
                   // traiterAffichage(objet.temperature,objet.couleur,objet.son);
                    },
                     error: function(xhr, status, error) {
                        console.error("Erreur lors de la recupération infos musicien:", error);
                    }
                });
            }
             setInterval(afficher_donnees, 30000);
        });
     
          function traiterAffichage(temperature,couleur,son){
           var affichetemperature = document.querySelector('.temperature');
           var affichecouleur = document.querySelector('.couleur');
           var afficheson = document.querySelector('.son');
     
           affichetemperature.textContent = temperature;
           affichecouleur.textContent = couleur;
           afficheson.textContent = son;
     
     
          }
        </script>
        <h2>Situation musicien</h2>
        <div class = "temperature"> temperature</div>
        <div class = "couleur">couleur</div>
        <div class = "son">son</div>
    </html>

    fichier php recup_infos_5.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php
    if ($_SERVER["REQUEST_METHOD"] =="GET"&& !empty($_GET) && isset($_GET)){
    echo json_encode($_GET);
    }

    code Arduino de l'ESP 32


    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    #include <WiFi.h>
    #include <HTTPClient.h>
    #include <WiFiClientSecure.h>
     
     
     
    unsigned long previousMillis = 0;
    unsigned long startMillis;  //some global variables available anywhere in the program
    unsigned long currentMillis;
    const long interval = 1000;
    String temperature ="100";
    String son ="saute";
    String couleurNiveau ="rouge";
     
    const char* ssid = "*****";
    const char* password = "*****";
    const char* serverName = "https://url.000webhostapp.com/";
     
     
    void setup() {
      Serial.begin(115200);
     
      WiFi.begin(ssid, password);
      Serial.println("Connecting");
      while(WiFi.status() != WL_CONNECTED) { 
        delay(500);
        Serial.print(".");
      }
      Serial.println("");
      Serial.print("Connected to WiFi network with IP Address: ");
      Serial.println(WiFi.localIP());
     
     
    }
     
    void loop() {
      unsigned long currentMillis = millis();
     
      if(currentMillis - previousMillis >= interval) {
     
        if(WiFi.status()== WL_CONNECTED ){ 
     
     
                String nouveauson = "papa noel";
                String nouvelletemperature = "12";
                String nouveauNiveaucouleur = "r";
                son  = nouveauson;
                temperature  = nouvelletemperature;
                couleurNiveau = nouveauNiveaucouleur;
     
                Serial.print("nouveau son =");
                Serial.println(son);
                Serial.print("nouveau temp =");
                Serial.println(temperature);
                couleurNiveau = nouveauNiveaucouleur;
                Serial.print("nouveau niveau =");
                Serial.println(couleurNiveau);
     
                String lien = "https://url.000webhostapp.com/recup_infos_4.php?temp="+temperature+"&son="+son+"&couleur="+couleurNiveau;
                Serial.println(lien);
                httpGETRequest(lien.c_str());
     
     
          // save the last HTTP GET Request
          previousMillis = currentMillis;
          currentMillis = millis();
        }
        else {
          Serial.println("WiFi Disconnected");
        }
      }
    }
     
    String httpGETRequest(const char* serverName) {
      WiFiClientSecure *client = new WiFiClientSecure;
     
      // set secure client without certificate
      client->setInsecure();
      HTTPClient https;
     
      // Your IP address with path or Domain name with URL path 
      https.begin(*client, serverName);
     
      // Send HTTP POST request
      int httpResponseCode = https.GET();
     
      //String payload = "{}"; 
      String payload = "";
     
      if (httpResponseCode>0) {
        Serial.print("HTTP Response code: ");
     
        Serial.println(httpResponseCode);
         payload = https.getString();
         const String& payload2 = payload;
        // Serial.println( payload2);
         payload = payload2;
        Serial.println(payload);
      }
      else {
        Serial.print("Error code: ");
        Serial.println(httpResponseCode);
      }
      // Free resources
      https.end();
     
      return payload;
    }

  4. #4
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    et donc que voyez vous exactement dans la console Arduino?

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Par défaut
    Citation Envoyé par Jay M Voir le message
    et donc que voyez vous exactement dans la console Arduino?
    Je vois le contenu de toute ma page web dans la console donc il semble à première vue bien y a voir une réponse HTTP de recup_infos_4.php. Mais c'est contradictoire avec le fait que dans recup_infos_4.php, ces lignes là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     if ($_SERVER["REQUEST_METHOD"] == "GET" && isset($_GET)&&!empty($_GET)){
            echo "dans GET";
            $_SESSION["temperature"] = $_GET["temperature"];
            $_SESSION["son"] = $_GET["son"];
            $_SESSION["couleur"] = $_GET["couleur"];
     
       }
    ne semblent jamais exécutées. Je précise j'appelle la page recup_infos_4.php dans mon navigateur et le echo "dans GET" n'apparait pas.
    En fait mon php ne récupère pas les données envoyées par l'ESP32

  6. #6
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    rajouter un ELSE et balancez de l'info pour débug vous verrez comme cela ce qu'il en est réellement (l'URL est elle bonne? )

    éventuellement rajoutez un error_reporting(E_ALL); au script PHP pour voir s'il y a des erreurs

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2024
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2024
    Messages : 4
    Par défaut
    Alors.. dans la console de mon arduino parmi le texte de la page web affiché dans la console il y a bien "dans GET" Mais les variables par la suite $temperature, $son et $couleur ne sont pas mises à jour et ne s'affichent pas dans les console.log javascript de recup_info_4.php

    Je précise que même si c'est peut être un code compliqué pour rien la seule chose que je cherche à faire c'est à afficher en temps réel, les valeurs envoyées par l'ESP 32 sur mon site.

  8. #8
    Expert confirmé

    Homme Profil pro
    mad scientist :)
    Inscrit en
    Septembre 2019
    Messages
    2 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : mad scientist :)

    Informations forums :
    Inscription : Septembre 2019
    Messages : 2 884
    Par défaut
    Citation Envoyé par Gigy1234 Voir le message
    Je précise que même si c'est peut être un code compliqué pour rien la seule chose que je cherche à faire c'est à afficher en temps réel, les valeurs envoyées par l'ESP 32 sur mon site.
    pouvez vous clarifier cela ?

    - vous avez un ESP32 disons sur votre réseau local qui appelle un PHP hébergé chez un hébergeur externe (donc via Internet)
    - l'ESP32 fait donc une requête GET vers ce script PHP
    - le script PHP bâtit une réponse qui est renvoyée par HTTP à votre ESP32

    ➜ Quel est votre site en question?

Discussions similaires

  1. Réponses: 11
    Dernier message: 18/07/2022, 19h44
  2. Réponses: 7
    Dernier message: 07/11/2019, 12h15
  3. [Forum] Enregistrer une img Base64 (généré avec J!) sur une page sur le serveur
    Par crackone dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 10
    Dernier message: 25/02/2011, 16h01
  4. Réponses: 3
    Dernier message: 09/11/2010, 19h31
  5. Afficher un calendrier sur une page php
    Par griese dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 12/06/2006, 09h53

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