From 365d4afdfa7d332b6f16a38f0410db6bb282e95b Mon Sep 17 00:00:00 2001 From: Joachim Hummel Date: Fri, 24 Jan 2025 13:41:42 +0000 Subject: [PATCH] New Code for Arduino --- vision-ai.ino | 54 +++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 39 insertions(+), 15 deletions(-) diff --git a/vision-ai.ino b/vision-ai.ino index 5b3f72b..0062ccf 100644 --- a/vision-ai.ino +++ b/vision-ai.ino @@ -2,7 +2,6 @@ // Erstellungsdatum: 22.01.2025 // Hardware: Vision AI V2 Kit - #include #include #include @@ -14,7 +13,6 @@ const char* password = "DEIN_WIFI_PASSWORT"; // MQTT-Broker-Zugangsdaten const char* mqtt_server = "DEINE_MQTT_BROKER_ADRESSE"; const char* mqtt_topic = "/vision_ai/data"; - WiFiClient espClient; PubSubClient client(espClient); SSCMA AI; @@ -77,27 +75,53 @@ void loop() { mqttMessage += ",\"postprocess\":" + String(AI.perf().postprocess) + "},"; mqttMessage += "\"boxes\": ["; + bool validBoxFound = false; // Prüfen, ob mindestens ein gültiger Box-Eintrag existiert + for (int i = 0; i < AI.boxes().size(); i++) { - mqttMessage += "{\"target\":\"" + String(AI.boxes()[i].target) + "\","; - mqttMessage += "\"score\":" + String(AI.boxes()[i].score) + ","; - mqttMessage += "\"x\":" + String(AI.boxes()[i].x) + ","; - mqttMessage += "\"y\":" + String(AI.boxes()[i].y) + ","; - mqttMessage += "\"w\":" + String(AI.boxes()[i].w) + ","; - mqttMessage += "\"h\":" + String(AI.boxes()[i].h) + "},"; + if (AI.boxes()[i].score > 50) { // Bedingung: Nur bei Score > 50 verarbeiten + validBoxFound = true; + Serial.print("Box["); + Serial.print(i); + Serial.print("] target="); + Serial.print(AI.boxes()[i].target); + Serial.print(", score="); + Serial.print(AI.boxes()[i].score); + Serial.print(", x="); + Serial.print(AI.boxes()[i].x); + Serial.print(", y="); + Serial.print(AI.boxes()[i].y); + Serial.print(", w="); + Serial.print(AI.boxes()[i].w); + Serial.print(", h="); + Serial.println(AI.boxes()[i].h); + + // Box-Daten zur MQTT-Nachricht hinzufügen + mqttMessage += "{\"target\":\"" + String(AI.boxes()[i].target) + "\","; + mqttMessage += "\"score\":" + String(AI.boxes()[i].score) + ","; + mqttMessage += "\"x\":" + String(AI.boxes()[i].x) + ","; + mqttMessage += "\"y\":" + String(AI.boxes()[i].y) + ","; + mqttMessage += "\"w\":" + String(AI.boxes()[i].w) + ","; + mqttMessage += "\"h\":" + String(AI.boxes()[i].h) + "},"; + } } - if (AI.boxes().size() > 0) { + + if (validBoxFound) { mqttMessage.remove(mqttMessage.length() - 1); // Letztes Komma entfernen } mqttMessage += "]}"; - Serial.println("MQTT-Nachricht: " + mqttMessage); + // Nur senden, wenn mindestens eine Box mit Score > 50 gefunden wurde + if (validBoxFound) { + Serial.println("MQTT-Nachricht: " + mqttMessage); - // MQTT-Nachricht senden - if (client.publish(mqtt_topic, mqttMessage.c_str())) { - Serial.println("Daten erfolgreich an MQTT gesendet!"); + // MQTT-Nachricht senden + if (client.publish(mqtt_topic, mqttMessage.c_str())) { + Serial.println("Daten erfolgreich an MQTT gesendet!"); + } else { + Serial.println("Fehler beim Senden der MQTT-Daten."); + } } else { - Serial.println("Fehler beim Senden der MQTT-Daten."); + Serial.println("Keine Boxen mit Score > 50 gefunden. Keine Daten gesendet."); } } } -