Terminal WiFi pour ESP8266 & ESP32

Bonjour

C'est quand même bien pratique de laisser quelques print() dans un code source, même après finalisation, afin de pouvoir suivre "de l'intérieur" le bon fonctionnement du programme.

Alors voici un terminal à interface http, pour rester en contact avec un ESP, même quand il n'est plus relié au PC. Son utilisation passe par les mêmes fonctions que le terminal série : .print(), .available(), .read(), ...

Mode d'emploi :

1) Pré-requis : installez la bibliothèque externe arduinoSockets.h

2) Installez ma bibliothèque WiFiTerm.h

3) Chargez l'exemple Full_Demo et laissez-vous guider

Super !

Comme je me suis dit que cela pourrait intéresser quelques personnes dans le microcosme Arduino, au-delà de notre nanocosme francophone, j'ai essayé de faire les choses bien cette fois-ci.

Tout en anglais + publication sous GitHub :)

Bonjour, Super. Bravo bricoleau, j’oubliai Monsieur bricoleau

+1 Je ne peux qu'approuver.

Il y a certains projets finis qui comportent tellement de posts avec des modifications réparties partout que c'est une vraie galère pour retrouver le code final. Avec github au moins c'est clair. Tu peux même taguer V1.0, V1.1 si tu as envie.

Bonjour

Bibliothèque WiFiTerm mise à jour sur github

  • ajustement de la surveillance de l’état de la connexion du terminal à l’ESP, pour éviter qu’un ping occasionnellement en erreur fasse clignoter le bouton

  • ajout d’une méthode nécessaire au complément qui va suivre…

PS : suis un noob sur github. Pas trouvé comment taguer V1.0 V1.1 etc.

Complément

WiFiTerm est le compagnon idéal d’ArduinoOTA.
Les deux réunis permettent de travailler à distance sur un ESP, avec le même confort que s’il était relié au PC.

On peut ainsi effectuer facilement une maintenance logicielle sur un montage, sans avoir à le manipuler.

Du coup, je me suis bricolé une petite lib myESP.h qui intègre les deux et allège le code du programme principal.
Je vous la soumets en pièce jointe.
Pour l’instant elle n’est que pour ESP8266.

Comme d’hab après installation, chargez les exemples joints (en commençant par 0_init) et tout s’éclairera :slight_smile:

myESP.zip (14.3 KB)

bricoleau: PS : suis un noob sur github. Pas trouvé comment taguer V1.0 V1.1 etc.

faut aller sur "releases" puis "draft a new release" la tu choisis sur quel commit tu te bases, tu met ton numéro de tag dans la case, et zou

Bonjour

Nouvelle version publiée sur github.

Correction : Maintien de l'autoscroll après redimensionnement de la fenêtre. Intéressant sur mobiles quand on passe de portrait à paysage.

Ajouts : Possibilité de rediriger vers le terminal, toute url non gérée par le serveur, y compris la racine Possibilité de fournir une image favicon (logo arduino) aux navigateurs

Bonjour à tous

Merci à Bricoleau pour le super travail , j'ai justement une application où le ESP est difficilement accessible.

J'ai implanté le programme; et j'arrive à me logger sur le terminal avec les différents exemples fournis, mais je

n'ai jamais le port ( init-esp disponible ). faut-il faire une configuration spécifique pour ça ?

Merci d'avance

Bonjour

Si je comprends bien, c'est ArduinoOTA qui ne déclenche pas l'apparition de l'ESP8266 au niveau des ports proposés par l'IDE pour le téléversement.

C'est un problème décrit dans pas mal de posts sur le forum côté internationnal. Certains disent quel la fonctionnalité est buguée. Il se peut aussi que cela soit lié au système d'exploitation et/ou à la version de l'IDE. Chez moi cela fonctionne plutôt bien, même si occasionnellement je dois arrêter et relancer l'IDE pour faire apparaître le port.

Est-ce que les exemples ArduinoOTA fournis avec l'IDE fonctionnent correctement chez toi ?

Autre point de vigilance : la fonctionnalité OTA repose sur une fonction handle() qui doit être appelée depuis loop() pour être exécutée très régulièrement. Je suspecte que l'IDE puisse rater la détection de l'ESP distant, si handle() n'est pas exécutée à une fréquence suffisante. On est bien d'accord que ton programme principal ne comporte aucun delay ? Quel temps sépare deux exécutions de loop() ?

Une information plus détaillée sur ArduinoOTA, utile pour comprendre sa bonne mise en œuvre, se trouve ICI.

On y trouve par exemple :

"Note: If the OTA port does not show up, exit Arduino IDE, open it again and check if the port is there. If it is not, check your firewall and router settings. The OTA port is advertised using mDNS service. To check if the port is visible by your PC, you can use an application like Bonjour Browser."

Bonjour Bricoleau,

Merci pour la publication de cette réalisation magnifique qui fonctionne fort bien.

Elle m'a donné l'idée d'en faire une version "low-cost", qui utilise un client Telnet (telnet sur Linux ou Putty sur W), en mode "ligne" et sans la négociation de protocole. Pour cela, j'ai repris toute votre "magie" c-à-d la déclaration de la classe du terminal qui hérite des classes Stream et Print.

Verriez vous un inconvénient à ce que je publie ce développement sur ce site, en vous rendant tout ce qui vous revient, bien entendu ?

Merci d'avance,

MicroQuettas.

Non bien sûr aucun souci pour tout repompage ou modification.

Pour telnet il me semble que cela peut être assez simple et léger comme ceci

Bonjour Bricoleau,

Merci bien, je vais publier cela d'ici qq jours. Avec Telnet, c'est effectivement plus léger, mais moins joli. Comme le service rendu est le même, on est dans le "low-cost" !

Bonne bidouille,

MicroQuettas

C'est vrai que le service "primaire" est le même. La principale différence est qu'il faut un logiciel telnet côté client, alors que nativement tous les clients disposent d'un navigateur.

A l'origine je voulais pouvoir dégainer smartphone ou tablette et me connecter directement à l'ESP sans avoir à installer quoi que ce soit.

Bonjour,

Voilà, le développement est en ligne variante low-cost avec Telnet.

Tout à fait d'accord avec Bricoleau, si le service de base est le même, les façons de le rendre ne le sont pas. Mon développement est plutôt destiné à du débogage sur PC, tandis que l'original fonctionne avec n'importe quelle machine, tablette ou téléphone inclus.

Bonne bidouille,

MicroQuettas

Bonjour

Mon développement est plutôt destiné à du débogage sur PC, tandis que l'original fonctionne avec n'importe quelle machine, tablette ou téléphone inclus.

On trouve des clients Telnet (ou SSH) corrects pour Android

J'utilse "Serial WiFi Terminal" ou "JuiceSSH" pour joindre mes raspberry Pi, et ce ne sont pas les seuls.

Merci Al1fch,

Cela marche nickel avec "Serial WiFi Terminal' depuis ma tablette Android.

Bonne bidouille,

MicroQuettas

Bonjour,

Voila je récupère des données différentes avec 2 esp32 différents est-il possible d'utiliser ce terminal WIFI pour récupérer les données des 2 esp32 en même temps sur le même terminal ?

Merci de votre aide