j'essaye depuis quelques temps de passer des ordres à mon arduino via l'ethernetshield à partir d'une tablette android. Sur mon PC j'utilise avec succès un script python (socket.send("hello world")) mais j'ai des problèmes sous android. J'ai donc pensé au javascript. J'ai fais un page HTML avec une fonction javascript du genre :
dans ce script il y a un lien qui renvoie à lui-même (index01.html). Si on le clique il exécute la fonction Com().
problème 1: si je laisse le script tel quel : il va bien rentrer dans la fonction mais ne l'exécute pas (!) par contre si je rajoute un alert("connection OK ") après la création il se connecte et envoie quelque chose à l'Arduino la fonction Com() devient donc
function Com()
{
var ws=new WebSocket("ws://185.398.8.98:1456");
alert("connecté");
ws.send("hello world");
ws.close();
}
Je suis loin d'etre expert en javascript et découvre avec toi les websockets mais j'aurais une premiere remarque qui peut surement expliquer pourquoi rajouter un "alert" améliore les choses :
Lorsque tu créé ton socket, si tu ne met pas de pause tu vas chercher directement à envoyer des données sans pour autant être sur que ce dernier est ouvert et prêt. Du coup ca marche pas. Si tu rajoutes un alert, le temps que la fenetre popup et que tu la ferme le socket s'est bien ouvert et du coup fonctionne. Tu devrais utiliser les évènements du websocket pour faire les choses proprement et dans l'ordre (comme "onopen" par exemple)
En fait, j'avais déjà essayé "ws.onopen{ws.send("hello world")}" mais ça ne marche pas mieux.
socket javascript et arduino
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Retrouvez moi sur mon blog et ma chaine Youtube !