diff --git a/src/Arduino/Sensors/Sensors.ino b/src/Arduino/Sensors/Sensors.ino index 90c5162..d6e5b15 100644 --- a/src/Arduino/Sensors/Sensors.ino +++ b/src/Arduino/Sensors/Sensors.ino @@ -61,7 +61,28 @@ void setup() { client.setCallback(callback); } +void reconnect() { + // Herstel verbinding met MQTT-broker + while (!client.connected()) { + Serial.print("Verbinding maken met MQTT..."); + if (client.connect("ArduinoClient")) { + Serial.println("Verbonden!"); + } else { + Serial.print("Fout, rc="); + Serial.print(client.state()); + Serial.println(" Probeer opnieuw over 5 seconden..."); + delay(5000); + } + } +} + void loop() { + // Zorg ervoor dat MQTT verbonden blijft + if (!client.connected()) { + reconnect(); + } + client.loop(); + float h = dht.readHumidity(); float t = dht.readTemperature(); @@ -78,18 +99,22 @@ void loop() { return; } - // Print de sensorwaarden naar de seriƫle monitor - Serial.print("Luchtvochtigheid: "); - Serial.print(h); - Serial.print(" %\tTemperatuur: "); - Serial.print(t); - Serial.println(" *C"); + // Maak een JSON-payload + String payload = "{"; + payload += "\"humidity\":" + String(h) + ","; + payload += "\"temperature\":" + String(t) + ","; + payload += "\"mq5\":" + String(mq5Value) + ","; + payload += "\"tvoc\":" + String(sgp.TVOC) + ","; + payload += "\"eco2\":" + String(sgp.eCO2); + payload += "}"; - Serial.print("MQ5 waarde: "); - Serial.println(mq5Value); + // Verzend de payload via MQTT + if (client.publish(mqtt_topic, payload.c_str())) { + Serial.println("Bericht verzonden: " + payload); + } else { + Serial.println("Fout bij verzenden van bericht!"); + } - Serial.print("TVOC "); Serial.print(sgp.TVOC); Serial.print(" ppb\t"); - Serial.print("eCO2 "); Serial.print(sgp.eCO2); Serial.println(" ppm"); - - delay(500); + // Wacht 5 seconden voor de volgende meting + delay(5000); } \ No newline at end of file