Salut,
MQTT fonctionne suivant un principe de publication/abonnement (publish/subscribe).
Imagine le broker comme un endroit où il y a des boîtes aux lettres.
- Un topic représente une boîte aux lettres en particulier. Si tu veux publier les températures mesurées chez toi, tu crées un topic home/temperature. Quand tu publies un message sur le topic (la valeur de température), le message est déposé dans la boîte correspondante.
- Un client peut s'abonner à ton topic (avec certaines autorisations), en quelques sortes les clients disposent des clés de la boîte. Mais comme MQTT est un service de luxe, si tu es abonné au topic, tous les messages qui arrivent dans la boîte seront automatiquement déposés sur ta table sans avoir besoin de te lever du canapé![:mrgreen:](https://www.developpez.net/forums/images/smilies/icon_mrgreen.gif)
Je n'ai pas d'ESP32 sous la main, mais j'ai réussi quelques essais sur mon PC en m'abonnant à une chaîne publique avec MQTTx, un client MQTT pour Windows (un petit logiciel gratuit). Tu devrais l'utiliser pour la prise en main et les tests, l'ESP32 pourra prendre la main plus tard comme client.
- Il faut d'abord créer un device MQTT (voir Créer un appareil ThingSpeak MQTT). On précise les chaînes qu'on veut accéder et on note les ID/username/password.
- Dans MQTTX, créer une nouvelle Connection, et un nouvel abonnement New subscription. Tu as les explications et des exemples dans Subscribe to a Channel Feed.
Je me suis abonné à un topic public au hasard pour tester : channels/357142/subscribe. (357142 est l'identifiant de la chaîne)
Je reçois bien des messages à intervalles réguliers, du style :
{"channel_id":357142,"created_at":"2024-08-05T17:57:23+02:00","entry_id":290636,"field1":"2.7","field2":"5.5","field3":"32.325","field4":"981.014","field5":"29.605","field6":null,"field7":"42.370","field8":"5.585","latitude":null,"longitude":null,"elevation":null,"status":"17:57:23: new data"}
L'ESP32 devra faire pareil : se connecter au broker, s'abonner au topic et récupérer les messages. Restera à traiter le message pour récupérer la température.
Partager