web:javascript:serveurhttp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
web:javascript:serveurhttp [2026/04/27 22:20] – [3. Code Arduino, php et jQuery correspondant] mnoweb:javascript:serveurhttp [2026/05/05 18:03] (Version actuelle) mno
Ligne 3: Ligne 3:
 ===== C++ & jQuery - Communiquer avec une carte à microcontrôleur ===== ===== C++ & jQuery - Communiquer avec une carte à microcontrôleur =====
  
-[Mise à jour le 27/4/2026]+[Mise à jour le 5/5/2026]
  
 +  * **Ressource**
 +    * [[:microc:uc:mkr|Microcontrôleurs - Arduino MKR Wifi 1010]]
 ==== 1. Présentation ==== ==== 1. Présentation ====
 Ce document présente la communication mise en œuvre entre un PC, un Raspberry Pi et une carte Arduino MKR Wifi 1010 dans les activités de projet en terminale STI2D spécialité SIN. Ce document présente la communication mise en œuvre entre un PC, un Raspberry Pi et une carte Arduino MKR Wifi 1010 dans les activités de projet en terminale STI2D spécialité SIN.
Ligne 327: Ligne 329:
 </code> </code>
  
 +{{ :materiels:capteurs:distance:arduinoico.png?nolink&50|}}
 +<callout type="tip" icon="true" title="TELECHARGER">La dernière version du <html><a href="https://webge.fr/doc/wikis/code/Arduino/ARD_MKR1010_HTTP_SERVER_V6a.zip" target="_blank" title="Version 1">serveur HTTP</a></html> sur Arduino MKR wifi 1010.</callout>
 ==== 3. Code Arduino, php et jQuery correspondant ==== ==== 3. Code Arduino, php et jQuery correspondant ====
 +
 +{{ :web:javascript:jauge.png|}}
 ===3.1 Lecture d'une valeur === ===3.1 Lecture d'une valeur ===
   * **Utilisation** : affichage d'une grandeur physique sous la forme d'une valeur, d'un widget jQuery, etc.    * **Utilisation** : affichage d'une grandeur physique sous la forme d'une valeur, d'un widget jQuery, etc. 
Ligne 361: Ligne 367:
       $.ajax({       $.ajax({
          url: 'scripts/lireVal1.php',          url: 'scripts/lireVal1.php',
-         type: 'get',+         method: 'GET',
          success: function (data) {          success: function (data) {
                     $("#val1").html(data); // Affichage de la valeur sur la page pour les tests                     $("#val1").html(data); // Affichage de la valeur sur la page pour les tests
-                    let val1 = parseInt(data) * 50 / 920; // Exemple de mise à l'échelle pour les tests+                    let val1 = parseInt(data) * 50 / 1023; // Exemple de mise à l'échelle pour les tests
                     $('#jaugeCirculaire').jqxGauge({ value: val1 });                     $('#jaugeCirculaire').jqxGauge({ value: val1 });
                  },                  },
Ligne 382: Ligne 388:
 </code> </code>
  
 +{{ :web:javascript:leaflet.png?nolink|}}
 ===3.2 Lecture de n valeurs transmises au format JSON === ===3.2 Lecture de n valeurs transmises au format JSON ===
   * **Utilisation** : carte leaflet, matrice de points , graphique jQwidget   * **Utilisation** : carte leaflet, matrice de points , graphique jQwidget
Ligne 417: Ligne 424:
     $.ajax({     $.ajax({
         url: 'scripts/getcoordonnees.php',         url: 'scripts/getcoordonnees.php',
-        type: 'get',+        method: 'GET',
         dataType: 'json', // demande à jQuery de parser le JSON         dataType: 'json', // demande à jQuery de parser le JSON
         success: function (data) {         success: function (data) {
-                // Pour les tests, on souhaite 0 < val0 < 1023 => 47.07970 < latitude < 47.01328 +                // Pour les tests, on souhaite 0 < val0 < 1023 => 47.01328 < latitude < 47.07970 
-                latitude = -0.0000664 * parseFloat(data.val0) + 47.07970;+                latitude = * parseFloat(data.val0) + b// a et b à calculer
                 // Pour les tests, on souhaite 0 < val1 < 1023 => 2.199468 < longitude < 2.409102                 // Pour les tests, on souhaite 0 < val1 < 1023 => 2.199468 < longitude < 2.409102
-                longitude = 0.000210 * parseFloat(data.val1) + 2.199468;+                longitude = * parseFloat(data.val1) + d// c et d à calculer
  
                 // Afficher les valeurs numériques                 // Afficher les valeurs numériques
-                $('#latitude').html(latitude); +                $('#latitude').html(/* A compléter */); 
-                $('#longitude').html(longitude);+                $('#longitude').html(/* A compléter */);
  
                 // Afficher un marqueur sur la carte (objet map)                 // Afficher un marqueur sur la carte (objet map)
Ligne 450: Ligne 457:
 </code>  </code> 
  
 +  * //Exemple de résultat attendu//
 +{{ :web:javascript:resultat_attendu_gps.png?350 |}}
 +{{ :web:javascript:captthermique.png?400|}}
   * **Exemple 3** : lecture de 5 valeurs <code cpp lectureAll.cpp>   * **Exemple 3** : lecture de 5 valeurs <code cpp lectureAll.cpp>
 // Réponse de la carte Arduino à la requête .../lire/all. // Réponse de la carte Arduino à la requête .../lire/all.
 // g11. Mesure et transmission des valeurs analogiques présentes sur A0 à A4 au format JSON // g11. Mesure et transmission des valeurs analogiques présentes sur A0 à A4 au format JSON
-// mmsgjson : tableau contenant un objet JSON+// mmsgjson : objet JSON
 void lectureAll() { void lectureAll() {
-  String msgjson = "[{\"val0\":";+  String msgjson = F("{\"val0\":");
   msgjson += val0;   msgjson += val0;
-  msgjson += ","; +  msgjson += F(",\"val1\":");
-  msgjson += "\"val1\":";+
   msgjson += val1;   msgjson += val1;
-  msgjson += ","; +  msgjson += F(",\"val2\":");
-  msgjson += "\"val2\":";+
   msgjson += val2;   msgjson += val2;
-  msgjson += ","; +  msgjson += F(",\"val3\":");
-  msgjson += "\"val3\":";+
   msgjson += val3;   msgjson += val3;
-  msgjson += ","; +  msgjson += F(",\"val4\":");
-  msgjson += "\"val4\":";+
   msgjson += val4;   msgjson += val4;
-  msgjson += "}]";+  msgjson += F("}");
   server.sendHeader(F("Cache-Control"), F("no-cache, no-store, must-revalidate"));   server.sendHeader(F("Cache-Control"), F("no-cache, no-store, must-revalidate"));
   server.send(200, F("application/json; charset=utf-8"), msgjson);   server.send(200, F("application/json; charset=utf-8"), msgjson);
Ligne 489: Ligne 495:
     $.ajax({     $.ajax({
        url: 'scripts/lireall.php',        url: 'scripts/lireall.php',
 +       method: 'GET',
        dataType: 'json',              // demande à jQuery de parser le JSON        dataType: 'json',              // demande à jQuery de parser le JSON
-       success: function (thermique) { +       success: function(data) { 
-         // thermique est maintenant un objet JavaScript +            let vals = []; 
-         let objet thermique[0];  // récupère le premier objet du tableau +            vals[0] parseInt(data.val0)
-         let cellule0 objet.val0;  // récupère la première valeur +            vals[1] parseInt(data.val1)
-         let cellule1 objet.val1;  // récupère la deuxième valeur +            vals[2] = parseInt(data.val2); 
-         ..+            vals[3] = parseInt(data.val3); 
-         console.log(cellule0);       // affiche val0 +            vals[4] = parseInt(data.val4); 
-         console.log(cellule1);       // affiche val1+ 
 +            // Utilisation du tableau 
 +            ...
        },        },
        timeout: delaiError,        timeout: delaiError,
Ligne 507: Ligne 516:
 </code>  </code> 
  
-  * **Exemple 4** : transfert de n valeurs <code cpp exemple4.cpp>+  * **Exemple 4** : transfert de n valeurs 
 +{{ :web:javascript:graphe.png?nolink&600 |}} 
 +<code cpp tablevar.cpp> 
 +// Réponse de la carte Arduino à la requête .../lire/tablevar.
 // g12. Mesure de 2 valeurs mises à l'echelle (max 5) // g12. Mesure de 2 valeurs mises à l'echelle (max 5)
 // et insertion dans une table JSON // et insertion dans une table JSON
 +
 void lectureTableJSON() { void lectureTableJSON() {
-  unsigned int val_0 = val0; +  String msgtable = R"([{ "H0": 0, "T0": )" + String(val0 * 0.05) + R"( }, { "H1": 1, "T1": )" + String(val1 * 0.05) +
-  unsigned int val_1 = val1; +
-  String msgtable = R"([{ "H0": 0, "T0": )" + String(val_0 * 0.05) + R"( }, { "H1": 1, "T1": )" + String(val_1 * 0.05) ++
                     R"( }, { "H": 1, "T": 11.7 },                      R"( }, { "H": 1, "T": 11.7 }, 
   { "H": 2, "T": 12 },    { "H": 2, "T": 12 }, 
Ligne 524: Ligne 535:
   { "H": 23, "T": 15.4 }])";   { "H": 23, "T": 15.4 }])";
   // Transmission   // Transmission
-  server.send(200, F("text/plain"), msgtable);+  server.sendHeader(F("Cache-Control"), F("no-cache, no-store, must-revalidate")); 
 +  server.send(200, F("application/json; charset=utf-8"), msgtable);
 } }
 </code> <code php lireTable.php> </code> <code php lireTable.php>
Ligne 538: Ligne 550:
   curl_close($curl);   curl_close($curl);
 ?> ?>
-</code><code js table.js>+</code><code js graphique.js>
      function loadMeasures() {      function loadMeasures() {
         $.ajax({         $.ajax({
  • web/javascript/serveurhttp.1777321245.txt.gz
  • Dernière modification : 2026/04/27 22:20
  • de mno