Mega2560 + ESP8266 + MQTT : bug de communication

J'aurais alimenté sonde et LCD directement entre sortie 5V de la MEGA et GND.

+1
.... et on peut faire de même avec une carte D1 Mini ou une NodeMCU

Sincèrement opte pour un ESP8266 seul

Même avis (avec ESP8266 ou ESP32)

J'aurais alimenté sonde et LCD directement entre sortie 5V de la MEGA et GND.

Alors en effet je viens de changer le branchement et ça fonctionne aussi (d'ailleurs le lcd a davantage de contraste et est plus éclairé), la différence c'est qu'il n'est pas possible de l'éteindre entre 2 relevés de mesures. Du coup, idem pour la sonde, elle reste active en permanence. L'idée de les brancher sur des pin digitals c'était pour pouvoir les éteindre et les allumer.
(ou alors on peut aussi le faire sur la sortie 5V et j'ai raté un truc).

Normal. La tension est plus élevée qu'en passant par deux pins digitales.

Quel intérêt d'éteindre le LCD et la sonde ?
Pour étendre le LCD : lcd.noBacklight(); // si la librairie de fdebrabander est utilisée
Pour couper la sonde, ce sera plus difficile, mais vu ce qu'elle doit consommer, est-ce si grave ?

Je ne pense pas que toutes ces modifs résolvent les problèmes d'envoi MQTT, sauf miracle.

Avec un ESP8266 seul les messages apparaîtraient sur le terminal. Exemple :

Serial.println("Déconnecté MQTT");
ou
Serial.print("echec, code erreur= ");

Grave je ne pense pas ^^
Ouais donc au lieu de faire un pinwrite à LOW je fais un noBackLight, pourquoi pas ^^ je vais checker ça merci :slight_smile:
Pour info j'ai commandé ça https://www.amazon.fr/gp/product/B0754N794H/ref=ppx_yo_dt_b_asin_title_o01_s00?ie=UTF8&psc=1
je vais refaire la même chose mais avec juste l'esp. En plus ça me permettra de mieux tracer les erreurs s'il y en a, etc.
(j'espère juste pas me chier sur les soudures :smiley: )

Il y a un gros condo en amont pour lisser et j'ai le meme pb lorsqu'alimenté par une batterie :thinking:
Le pire est qu'en plus, il y a l'aire d'avoir une dérive en fonction de la température.

J'ai l'impression que le pb est au niveau de la liaison série ou les fins de lignes ne sont pas correctement géré (après, je ne suis pas dans le détail).
De plus, en MQTT, ou tu envoie, ou tu n'envoie rien, mais pas des trucs tronqué sur des messages aussi court.

Bonjour

J'utilise un Mega2560 avec un esp8266 embarqué

Comme indiqué dans plusieurs messages précendent le débugage du code ES8266 est compliqué sur ce type de carte hybride quand on veut exploiter simultanément les deux puces
Içii la liaison série est accaparée par la transmission d'informations à l'ESP8266 pour qu'il les publie vers MQTT.

L'ESP8266 dispose d'un second UART (Serial1) dont seul la sortie TX est pratiquement disponible, on peut au moins l'utiliser pour envoyer vers l'extérieur des infos de mise au point sans interférence avec son autre ligne série .

Info de référence : https://arduino-esp8266.readthedocs.io/en/3.0.0/reference.html#serial

1 Like

Cela veut dire que je peux utiliser par exemple Serial1.begin(XX) puis Serial1.print("bablabla") pour afficher des infos ??
Sur la board que j'utilise il y a un switch pour passer de RX/TX3 à RX/TX0. J'avoue que j'ai pas vraiment compris ça mais bon.

Oui , il faut alors récupérer ces infos sur GPIO2 (le TX de Serial1) et et les envoyer vers un terminal distinct de celui de l'IDE Arduino.

Autre piste : il est sans doute possible d'utilser le 'terminal WiFi de Bricoleau' pour envoyer par WiFi des infos de débuggage. Voir ces fils de discussion :
https://forum.arduino.cc/t/terminal-wifi-pour-esp/640110
https://forum.arduino.cc/t/terminal-wifi-pour-esp8266-esp32/643876

Sur la board que j'utilise il y a un switch pour passer de RX/TX3 à RX/TX0. J'avoue que j'ai pas vraiment compris ça mais bon.

Il s'agit là de choisir l'UART du Mega2560 à relier à l'ESP8266

(parenthèse : je n'ai jamais été attriré par les diverses cartes qui réunissent un Mega328 et un ESP8266 ou un Mega2560 et un ESP8266 et n'ai donc aucune pratique de celles-ci. Sur ce forum on a vu à plusieurs reprises passer des utilisateurs ce ces cartes hybrides assez embarrasés par le,manque apparent de documentation détaillée, de schéma....)

Oui , il faut alors récupérer ces infos sur GPIO2 (le TX de Serial1) et et les envoyer vers un terminal distinct de celui de l'IDE Arduino.

Je vais regarder de ce côté là. Tu aurais une doc ou un exemple pour m'inspirer et voir par où commencer à creuser ?

Autre piste : il est sans doute possible d'utilser le 'terminal WiFi de Bricoleau' pour envoyer par WiFi des infos de débuggage

Effectivement j'ai vu ça, ça semble intéressant je vais tester :slight_smile:

(parenthèse : je n'ai jamais été attriré par les diverses cartes qui réunissent un Mega328 et un ESP8266 ou un Mega2560 et un ESP8266 et n'ai donc aucune pratique de celles-ci. Sur ce forum on a vu à plusieurs reprises passer des utilisateurs ce ces cartes hybrides assez embarrasés par le,manque apparent de documentation détaillée, de schéma....)

Ouais, ben avec le recul je me rends compte qu'effectivement c'est pas super documenté et y'a pas vraiment des tas de gens qui utilisent ça au final ...

Je vais regarder de ce côté là. Tu aurais une doc ou un exemple pour m'inspirer et voir par où commencer à creuser ?

non je n'ai rien sous la main . ça consiste juste à brancher un FTDI ou équivalent sur GPIO2 , à raccorder cet adaptateur UART/USB à un port USB et lancer un terminal (à choisir parmi ceux disponibles sur ton système d'exploitation. Avec Linux j'utilse en général CuteCom)

Me conseillez-vous d'installer ESPeasy sur mon esp8266 ? j'ai reçu les esp8266 "seuls".

Bonjour

Si tu souhaites éviter de coder avec l'IDE Arduino ta propre application et que le firmware ESPEasy propose exactement les foctionnalités dont tu as besoin, pourquoi pas ?

Mais dans ce cas tu t'éloignes de ce Forum où les échanges autour des ESP divers tournent essentiellement autour d'applications développées sous IDE Arduino + extension ESP.

A titre perso je n'utilise aucun de ces firmwares car ils proposent des choix de onfigurations 'préfabriquées' qui ne collent jamais avec mes besoins particuliers. Le 'sur mesure' avec IDE Arduino me convient mieux, d'autant que les sources d'inspiration sur ce forum ou ailleurs ne manquent pas.

Ok merci :slight_smile: en filigrane de ma question, je voulais également savoir si la philosophie avec l'esp8266 c'est "de base on flashe en espEasy car c'est "le firmware tout puissant à la mode qu'il faut absolument utiliser" et ensuite on fait ce qu'on veut" mais vu ta réponse c'est pas le cas donc je vais rester avec ce qu'il y a de base :slight_smile: Merci.

je pense qu'il faut:
-bien définir ses besoins .....en essayant d'anticiper
-faire l'inventaire des fonctionalités , contraintes et limites des firmwares 'facilitateurs'

Le choix de méthode vient ensuite. EspEasy peut être un bon choix ... avec le risque un jour d'y découvrir une voise sans issue pur une évolution particulière du 'cahier des charges'

Pour revenir sur la discussion précédente, je pense que j'ai compris pourquoi passer par une Mega pour la sonde pH.
L'esp ne dispose que d'un pin analogique qui supporte un voltage max de 3.3V

Or, la sonde pH renvoie un voltage entre 0 et 5V. Du coup, ça peut a priori pas le faire.
En l'état, je sais pas s'il y a un moyen de pallier à ce problème mais sinon ça veut dire que pas le choix je dois coupler une mega à l'esp 8266.

L'ESP8266 dispose d'une unique entrée analogique sur la plage[0, 1V]
Mais comme cela a écrit plus haut (message #9) de nombreuses cartes (NodeMCU, D1 Mini...) comportent un pont diviseur pour porter la plage de mesure à [0, 3,3V]
IL suffit d'ajouter a l'extérieur de la carte une résistance pour porter cette plage à [0, 5V]

Ah d'accord, merci alors :slight_smile:

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.