Bonjour à vous,
Alors mon problème c'est que je ne sais pas faire "l'inverse" de la requête vers les serveur, c'est à dire écouter le serveur pour recevoir une information. Entre dans mon serveur il y a une partie (programmé en GO) sortie de piste pour une course de voiture et je voudrais que mon arduino reçoit l'information dès qu'il y a une sortie de piste, pour que je programme une LED qui s'allume.
Comment faire? Je suis complètement paumé
J'ai vraiment besoin d'aide aussi vite que possible, comment je peux faire?
Est-ce qu'il faut appeler le programme en GO dans mon programme arduino ? Je n'en sais rien du tout
pepe:
Bonjour
Par définition, le serveur est celui qui écoute et qui répond aux requêtes, et le client est celui qui l'interroge.
Si tu souhaites inverser les rôles, alors il faut par exemple ajouter un serveur à ton client et un client à ton serveur.
Tu pourrais également garder la configuration actuelle, mais maintenir le canal de transmission ouvert après la réception d'une requête, durant un temps déterminé, afin d'envoyer éventuellement des informations au client un peu plus tard. Lorsque le temps imparti est écoulé, le client peut (s'il est toujours actif), rouvrir un canal en envoyant une nouvelle requête.
Cela peut être réalisé à l'aide d'un protocole adapté, ou bien à l'aide du classique HTTP.
Merci de ta réponse pepe mais est-ce que tu peux expliciter ta réponse!, Je ne vois pas très bien ce que tu veux dire
pepe:
La première solution consiste à installer un programme client sur ton serveur actuel, et un serveur sur ton Arduino. Ainsi, lorsqu'une information se présente sur ton serveur actuel, il peut en informer le serveur de l'Arduino (qui reste à l'écoute) en lui envoyant une requête.
Pour la seconde solution, le client Arduino reste à l'écoute après l'envoi de sa requête, tandis que le serveur met en attente l'envoie de sa réponse afin d'y insérer éventuellement de nouvelles informations qui se présenteraient. Ce type de fonctionnement est facilement réalisable à l'aide d'un script en PHP.
Donc mon but est que mon programme fait clignoter une LED lorsque le serveur détecte une sortie de piste, en gros le serveur doit logiquement envoyer l'information sur la carte pour qu'elle puisse interagir et allumer la LED.
Comment tu procéderais pepe? Quel est ton avis?
bonjour,
pepe a répondu à ta question.
soit ta carte a un web client et server
soit ta carte interroge le server, qui va transmettre l'info après traitement
perso, si tu ne peux toucher au server existant, je prendrais la solution 2
la carte envoi un GET fréquemment (1s), attends la réponse et la traite en fonction.
si réponse= sortie==>girophare, sirène, fanfare
si non===>prendre un café et attendre 1s pour la prochaine demande
infobarquee:
bonjour,
pepe a répondu à ta question.
soit ta carte a un web client et server
soit ta carte interroge le server, qui va transmettre l'info après traitement
perso, si tu ne peux toucher au server existant, je prendrais la solution 2
la carte envoi un GET fréquemment (1s), attends la réponse et la traite en fonction.
si réponse= sortie==>girophare, sirène, fanfare
si non===>prendre un café et attendre 1s pour la prochaine demande
D'accord j'ai compris ce dont vous voulez parler, et comment je dois l'écrire dans Arduino?
il faudrait connaitre la ligne de commande sur le server.
savoir quelle ligne de commande (php, JS) qui est utilisée pour la sortie de route, ou comment accéder aux infos sortie de route.
infobarquee:
savoir quelle ligne de commande (php, JS) qui est utilisée pour la sortie de route, ou comment accéder aux infos sortie de route.
La ligne de commande c'est en GO (langage de programmation), il faudrait que je prenne cette partie pour le mettre dans mon programme arduino?
inspire toi de CECI
je connais pas du tout la programmation GO
infobarquee:
inspire toi de CECI
je connais pas du tout la programmation GO
Merci pour ta réponse, mais ça ne m'avance pas vraiment vu mon serveur est déjà créé en GO
Ce qu'il faudrait c'est comment recevoir une requête d'un serveur externe, c'est à dire les lignes de code en C++ qui permettent de recevoir la requête qui sera envoyé par le serveur lors de la sortie de piste, comme cela je n'ai juste à faire un digitalWrite pour la led jaune et c'est bon.
Pouvez-vous m'aider svp?
Enfaîte pour faire simple, il faudrait que ma LED s'allumer lorsqu'il y a une sortie de piste du côté serveur, donc il doit y avoir une communication enfin quelque chose pour que le serveur prévient l'arduino qu'il y a une voiture hors piste.
Comment faire ?
arduino62:
Enfaîte pour faire simple, il faudrait que ma LED s'allumer lorsqu'il y a une sortie de piste du côté serveur, donc il doit y avoir une communication enfin quelque chose pour que le serveur prévient l'arduino qu'il y a une voiture hors piste.
Comment faire ?
donc il faut savoir comment ton server connait les sorties de route.
à partir de là, il en découle une instruction ou ligne de commande sur le server.
il faut mettre les mains dedans.
ca revient au même à deux personnes ne parlant pas le même langage de se comprendre.
il faut trouver une passerelle pour la compréhension.
infobarquee:
donc il faut savoir comment ton server connait les sorties de route.
à partir de là, il en découle une instruction ou ligne de commande sur le server.
il faut mettre les mains dedans.
ca revient au même à deux personnes ne parlant pas le même langage de se comprendre.
il faut trouver une passerelle pour la compréhension.
Merci a toi, c'est pas faux. J'ai Fais de cette façon moi:
while (client.available()) {
char c = client.read();
Serial.write(c);
digitalWrite(ledpin5,HIGH);
}
Est-ce que ça marche de cette façon?
Du côté serveur, on aurait rajouté une ligne ou 2 pour dire d'envoyer une requête à l'arduino on se serait servi de son ip pour faire passer la requête.
Est ce que ça peut marcher ?
J'ai essayé mais ça ne marche pas, je ne pense pas que ce soit comme ça qu'il faut appeler la requête que le serveur envoie lors de la sortie.
Je n'arrive vraiment pas, vous avez une idée?
Merci d'avance!
je vais me répéter, mais si tu ne sais pas comment le serveur gère les sorties de route, comment veux tu programmer le nono?
autre solution, mais il faut modifier le code du serveur :
si sortie de route, serveur écrit dans un fichier "1" par exemple sinon "0"
le nono interroge via un GET le fichier, si "1"==> les si "0"==>rien
infobarquee:
autre solution, mais il faut modifier le code du serveur :
si sortie de route, serveur écrit dans un fichier "1" par exemple sinon "0"
le nono interroge via un GET le fichier, si "1"==> les si "0"==>rien
C'est pas bête du tout cette solution, je vais regarder le code du serveur et je te redis quoi dès que je peux
Merci à toi info !
J'ai mis un nouveau topic merci de ta compréhension