void loop() { // Tableau pour la conversion de la valeur "val" à transmettre char msg[16]; // Tableau pour le topic char topic[64]; // Sommes-nous connectés au broker MQTT ? if (!mqttClient.connected()) { // Non alors reconnect(); // maintenir la connexion et s'abonner à un ou plusieurs topics } // Oui, maintien de la connexion avec le broker // Interrogation du broker : ne doit pas être bloquée !!! pour traiter les messages reçus mqttClient.loop(); // Déclencle la fonction callback si message reçu // Temporisation "non blocante" avant l'envoi d'un ou plusieurs topics long currentMillis = millis(); if (currentMillis - previousMillis > interval) // si temporisation > interval en ms { // alors on publie // On mémorise la "date" à laquelle le message a été envoyé previousMillis = currentMillis; val++; // incrémentation de la valeur à transmettre // Construction du message sprintf(msg, "%hu", val); // Construction du topic avec le nom d'hôte // Exemple "/" #### A adapter #### sprintf(topic, "%s/%s", readconf.myhostname, outTopicVal); // Publication du message sur le topic mqttClient.publish(topic, msg); } }