Arduino Uno R4 MQTT reconnect

Hallo zusammen,

ich habe einen Arduino UNO R4 der über MQTT Daten an meinen iobroker sendet.
Wenn ich jetzt den iobroker neu starte bricht die MQTT Verbindung natürlich zusammen.
Aber leider weiß ich nicht wie ich in meinen Sketch einen reconnect für MQTT einbauen muss.
Bin wirklich blutiger Anfänger, ich habe gejubelt wie Daten im iobroker ankammen.
Es wäre nett wenn mir jemand erklären könnte was ich in meinem Sketch ändern muss damit weiterhin Daten nach einem Neustart gesendet werden.
Hier mein Sketch:

#include <ArduinoMqttClient.h>
#include <WiFiS3.h>
#include "arduino_secrets.h"

///////Eingabe des WLAN Name und Passwort in der Registerkarte "arduino_secrets.h"
char ssid[] = SECRET_SSID;    // your network SSID (name)
char pass[] = SECRET_PASS;    // your network password (use for WPA, or use as key for WEP)

WiFiClient wifiClient;
MqttClient mqttClient(wifiClient);

const char broker[] = "10.0.50.1";
int        port     = 2021;
const char topic[]  = "Windgeschwindigkeit";

const int RecordTime = 6; //Messzeit in Sekunden
const int SensorPin = 3;  //an welchem Pin ist der Windmesser angeschlossen (2 or 3 @ Arduino Uno)

int InterruptCounter;
float WindSpeed;

void setup()
{
  Serial.begin(9600);

  Serial.print("Versuche, eine Verbindung zum WLAN herzustellen: ");
  Serial.println(ssid);
  while (WiFi.begin(ssid, pass) != WL_CONNECTED) {
    // failed, retry
    Serial.print(".");
    delay(5000);
  }

  Serial.println("Verbindung mit WLAN wurde hergestellt");
  Serial.println();

  mqttClient.setUsernamePassword("benutzer", "passwort");

  Serial.print("Versuche, eine Verbindung zum MQTT Server herzustellen: ");
  Serial.println(broker);

  if (!mqttClient.connect(broker, port)) {
    Serial.print("Verbindung zum MQTT Server fehlgeschlagen: Error code = ");
    Serial.println(mqttClient.connectError());

    while (1);
  }

  Serial.println("Verbindung zum MQTT Server wurde hergestellt");
  Serial.println();

}

void loop() {
  meassure();
  Serial.print("Windgeschwindigkeit: ");
  Serial.print(WindSpeed);       //Speed in km/h
  Serial.print(" km/h - ");
  Serial.print(WindSpeed / 3.6); //Speed in m/s
  Serial.println(" m/s");

  // senden der Daten an den MQTT Server
  mqttClient.beginMessage(topic);
  mqttClient.print(WindSpeed);
  mqttClient.endMessage();
}

void meassure() {
  InterruptCounter = 0;
  attachInterrupt(digitalPinToInterrupt(SensorPin), countup, RISING);
  delay(1000 * RecordTime);
  detachInterrupt(digitalPinToInterrupt(SensorPin));
  WindSpeed = (float)InterruptCounter / (float)RecordTime * 2.4;
}

void countup() {
  InterruptCounter++;
}

Ich danke euch.

Hallo,
du könntest im loop eine Abfrage machen ob die Verbindung noch steht. Wenn nicht baust Du sie neu auf. Im Setup ist das schon so ähnlich drin.

Hallo,

danke für deine Antwort.
Leider habe ich bis jetzt null Ahnung und google ist heute nicht mein Freund.
Kannst du mir da ein Beispiel geben?

Hallo,
ich habe mir gerade mal Deinen Sketch angesehen. Das delay() in der messure() fuction wird der Grund sein das die Verbindung abbricht. Ich kenne mich mit MQTT nun wirklich nicht aus. Aber die Messung sollte eventuell ohne Interrupt laufen und mit millis() gemacht werden.