Bonjour,
Après plusieurs recherches dans les forums et des test avec un suivi en moniteur série et des alertes Javascript, je sèche sur la transmission de données.
J'utilise un Arduino Mega et un shield Arduino Ethernet 2
La parie du code serveur :
EthernetClient client = serveurHTTP.available();
if (client) { // si le client existe
// message d'accueil dans le Terminal Série
Serial.println ("Client present !");
while (client.connected()) { // tant que le client est connecté
if (client.available()) { // si des octets sont disponibles en lecture
// le test est vrai si il y a au moins 1 octet disponible
char c = client.read(); // lit l'octet suivant reçu du client (pour
//vider le buffer au fur à mesure !)
} // --- fin client.available
else { // si pas de caractères disponibles = requete client terminée
// message Terminal Serie
Serial.println ("Reception requete terminee");
// envoi d'une entete standard de réponse http
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
webPage = SD.open ("index.htm"); // ouvrir un fichier de page Web
while (webPage.available ())
client.write (webPage.read ()); // envoyer une page Web au client
webPage.close ();
Serial.println ("Reponse envoyee au client");
break; // on sort de la boucle while
}
} // on donne au navigateur le temps de recevoir les données
delay(1);
// fermeture de la connexion avec le client
client.stop();
}
Et le code Javascript (index.htm) appellé par <BODY onload="LectureArduino();">
:
<script>
function LectureArduino() {
var http = new XMLHttpRequest();
var url = '192.168.1.5';
var params = 'Read';
http.open('GET', url, true);
http.onreadystatechange = function() {//Call a function when the state changes.
alert(http.readyState);
alert(http.status);
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
else
{
alert("False !");
}
http.send(params);
}}
</script>
J'ai essayé d'envoyer les données depuis l'Arduino par client.write() et client.println() depuis plusieurs endroits du script mais je n'arrive qu'à afficher la valeur en bas de la page html.
Les 'alert()' ne s'activent jamais.
L'un d'entre vous pourrais m'aiguiller ?
Merci d'avance.
Xavier