Bonjour à tous,
Voici mon projet
De qu’elle façon je peux lire les entrées digitales de mon Esp32 connecté en wifi sur un point d’acces lui même relié en Ethernet à mon Mac avec xojo ?!
Merci d’avance.
Pour lire une broche il faut utiliser DigitalRead ou AnalogRead sur cette broche.
Ensuite cela dépend si tu as déjà fait ton programme en xojo ?
Si tu pars d'une page blanche je partirais sur un serveur HTTP sur l'ESP32 qui renvois ce qu'il a lu sur ses broches au client(xojo) qui lui aura fait une requête HTTP du coup.
Pour cela je pense que le mieux est d'utiliser la librairie ESPAsyncWebSrv.
Tu peux te référer à l'exemple simple_server pour commencer.
C'est une façon parmi bien d'autre, mais celle-ci est très simple à mettre en œuvre et à tester, sans programme client dans un premier temps.
Ok merci beaucoup je vais tester cela mais le temps de réponse doit être au plus de 10 ms , cela sera possible avec votre solution ?
Ça dépend du réseau wifi
Il faudra peut être utiliser des websockets pour conserver le lien ouvert et éviter la reconnection au serveur http
Ok mais si j’ai 3 Esp32 en mode serveur web pour un seul routeur cela va fonctionner ?
Oui c'est possible, mais il y a beaucoup de paramètre qui peuvent faire monter ce temps ![]()
Après rien ne vous empêcher de voir si passer par des sockets ne permettrait pas d'accélérer ce temps.
Par contre, il faut bien que tout les éléments soit dans votre réseau local.
Je suis désolé, mais je ne comprends pas bien la question.
Oui le principe de base va fonctionner.
Chaque ESP ayant un IP dédié donné soit par vous, soit par le DHCP de votre réseau.
Votre programme xojo, peut faire des requêtes sur chacun de vos ESP.
Mais pour vraiment d'aiguiller, il faudrait peut être que tu en dise plus sur ce que tu veux vraiment faire.
Je serait aussi curieux de savoir pourquoi tu as besoin d'une réactivité de 10ms.
Que ce passe t-il si tu dépasse ce temps ?
En fait, c'est pour un jeux avec 2 buzzers et bien sur un ESP32 dans chaque buzzer
Pouvoir afficher dans mon appli réalisé avec xojo l'appui sur l'un des 2 buzzers et c'est pour cela qu'il faut une très courte réactivité !
Dans ce cas, c'est le contraire que tu veux faire.
lorsque l'un des deux ESP détecte un appuis sur le bumper, il le dit à ton application.
L'application déterminant qui a fait la requête en premier.
Du coup la restriction des 10ms, n'a pas vraiment lieu d'être.
Ok donc je dois configurer les ESP32 quand meme en point d'acces wifi ?ou autre mode ?
Et je dois utiliser quel protocole pour detecter les envois de mes esp32 dans mon appli xojo ?
Merci beaucoup pour l'aide...
cela n'a pas de rapport avec le fait que le programme réceptionne des requêtes HTTP ou les envois.
Si tu met l'un tes ESP32 en point d'accès WIFI, il faudra que ton autre ESP et la platform que tu utilise pour exécuter ton application xojo, ce connecte au premier ESP.
Normalement, il est plus pratique, d'utiliser ton routeur WIFI(souvent la box internet) comme point d'accès et connecter tes différents appareils dessus.
C'est toi qui voit, moi je t'ai proposé le protocole HTTP, mais je ne connais pas xojo et les librairies qu'il propose.
sachant que sur le xojo, il faut un serveur HTTP, ici il me semble que cela fait l'affaire.
Sur les ESP32, il alors faire des requêtes HTTP vers ton serveur HTTP xojo.
Ok merci pour ces pistes, je vais y regarder...
n'hésite pas à poser des questions si tu as des doutes ou des points d'interrogation, il y aura forcément quelqu'un pour y répondre.
est-ce que les 2 buzzers ne pourraient pas partager le même ESP?
Les buzzers ont ils vraiment besoin d'être sans fil ?
Bah non sinon je n’aurais pas spécifier cette demande !
Ok je posais la question à tout hasard ![]()
Ça va être chaud de garantir que c’est le premier appui qui gagne si les appuis sont super proches, la partie réseau sans fil et traitement des requêtes pouvant induire une latence non maîtrisée.
Oui, même si je me demande quel est le pourcentage de risque ![]()
Je m'étais justement posé la question, d'avoir une horloge temps réel, couplé à une configuration par NTP.
Le timestamp n’est pas une mauvaise idée mais Vous aurez du mal à garantir le centième de seconde sur NTP avec un ESP32 en WiFi et la parfaite synchronisation des deux horloges (dérive)
A moins de mettre une petite horloge atomique sur chaque ESP32…
Pourquoi l'ESP32 n'atteindrait pas les 10ms, normalement espérer avec une utilisation standard du protocole NTP?
Même si il est toujours possible d'avoir deux communications asymétriques et différentes en étant à 1m, l'un de l'autre. qu'es ce qui pourrait entrainer une aussi grande différence?
La dérive d'un RTC est quand même faible, je suppose que sur une partie, cela ne devrait quand même pas d'être de 100ms, surtout que si les joueurs sont dans le même lieu la différence de température de devrait pas être si importante?
J'aurais dû préciser que je parlais du code NTP standard. il faudrait soigner l'implémentation NTP, la bibliothèque espressif est à ±1s de précision (de mémoire ils n'utilisent qu'un seul des timestamp de la trame NTP).
pour calculer l'offset il faut coder en suivant les recommandations du standard NTP RFC5905. J'avais vu une bibliothèque NTP pour ESP qui faisait cela mais je ne l'ai plus en tête.
Oh la vous me faites peur avec tout ca ! du coup je sais plus quoi faire deja dans un premier temps pour tester de la façon la plus simple... !