Go Down

Topic: Communication entre Arduino et javascript (Read 896 times) previous topic - next topic

MithicBeu

Feb 01, 2013, 04:43 pm Last Edit: Feb 01, 2013, 04:52 pm by MithicBeu Reason: 1
Bonjour à tous!

Je suis en train de tester un communication avec mon arduino et une page web. Pour cela j'utilise du javascript et la fonction XMLHttpRequest.
Je suis maintenant capable d'envoyer à mon Arduino des valeurs et de par exemple changer la tension d'une sortie.

Ou je bloque, c'est pour recevoir des données depuis mon Arduino. Je me débrouille pas mal en C et je viens "d'apprendre" le javascript. J'ai donc essayé d'écrire un petit quelque chose, mais malheureusement sans succès!
Voici ma fonction javascript:
Code: [Select]
function recevoir(){

var xhr;
var response;

xhr = new XMLHttpRequest();

xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200){
response = xhr.responseText;
document.getElementById("text2").innerHTML=response;
}
}
xhr.open('GET', "http://192.168.0.30/",true);
xhr.send(null);
}


Et ma partie de code Arduino qui envoie au client:
Code: [Select]
  if (client) {
    boolean currentLineIsBlank = false;
   
    while (client.connected()) {
      if (client.available()) {
       
        char c = client.read();
        Serial.write(c);
   
        if (c == '\n' && currentLineIsBlank) {
          Serial.println("Blank line detected");
         
           client.println("HTTP/1.1 200 OK");
           client.println("Content-Type: text/html");
           client.println("Connnection: close");
           client.println();
           client.println("Hello");
       }

        if (c == '\n'){
          // Commence nouvelle ligne
          currentLineIsBlank = true;
        }
       
        else if (c != '\r'){
          // Caractere sur la ligne
          currentLineIsBlank = false;
        }   
      }
    }
  }


Mon but serait d'afficher "Hello" sur ma page pour commencer.
Je n'y connais encore pas grand chose donc c'est possible que je sois un peu brouillon, j'ai essayé différentes choses avec ce que j'ai pu trouvé sur le net.

Merci d'avance pour votre aide!

skywodd

Bonjour,

Un conseil, si tu veut faire des requêtes AJAX regarde du côté de JQuery ou des librairies similaires comme Zepto :
http://zeptojs.com/#ajax

Ça te facilitera la vie et ça tournera sur n'importe quel navigateur ;)
Des news, des tutos et plein de bonnes choses sur http://skyduino.wordpress.com !

zerr0s

Bonjour,

Je suis en train de coder un système domotique pour mon futur chez moi, et mes premières versions de mon application développée en php + ajax utilisait XmlHttpRequest, et ça fonctionne encore très bien jusqu'à présent. Je suis en train de tester une migration en jquery, car le XmlHttpRequest dans sa première version est compatible avec tous les navigateurs, mais a des limites. La seconde version est déjà moins compatible avec tous les navigateurs. le jquery, quant à lui est très puissant et permet meme de "binder" de l'ajax dans d'autres pages appelées par la page parente. C'est cette partie qui m'intéresse.

La seule différence par rapport à toi, c'est que je communique avec une arduino en serial, et non en http. Alors tout ce que je peux te dire est que le code JS est correct. Coté arduino, je ne sais pas, je n'ai jamais fait. C'est mon arduino qui reçoit les ordres en seria et qui renvoi (ou plutot renverra) les actions vers les modules dispersés dans la maison en utilisant des transceivers.

matesson44

Bonjour

Je souhaites aussi envoyé une requette a mon arduino avec XMLHttpRequest.

je me heurte moi aussi, au même problème.
ce que je souhaites faire : c'est récupérer la valeur de la sonde de température LM35 puis l'afficher sur la page web avec les api que propose google :http://code.google.com/intl/fr-FR/apis/chart/


MithicBeu : as tu résolus ton problème?

skywodd: aurait tu une explication ou connait tu un tuto ou forum qui porte sur le sujet arduino avec XMLHttpRequest en javascript

Merci




Go Up