Inspiration Create a modular edge AI solution to reduce costs and increase industrial efficiency. What it does EdgePredict analyzes vibration patterns in real time to predict failures and optimize maintenance. How we built it We used IP68 sensors, ESP32 microcontrollers, and Intel OpenVINO for local inference with low latency. Challenges we ran into Ensuring high accuracy with low latency and simple integration with MES/ERP systems. Accomplishments that we're proud of Intel-approved platform with 21 ms latency and 31 FPS, without cloud dependency. What we learned The importance of local privacy and scalability for diverse industrial environments. What's next for EdgePredict modular platform for edge AI Expand to Pro and Automotive versions, integrate new sensors, and launch beta for partners.

Built With

Share this project:

Updates

Private user

Private user posted an update

// File: esp32_edgepredict.ino

include

include

include

// ===== CONFIGURAÇÕES ===== const char* WIFI_SSID = "SUA_REDE_WIFI"; const char* WIFI_PASSWORD = "SUA_SENHA_WIFI"; const char* MQTT_SERVER = "SEU_BROKER_MQTT_IP"; // Ex: 192.168.0.10 const int MQTT_PORT = 1883; const char* MQTT_TOPIC = "edgepredict/vibration"; const char* DEVICE_ID = "esp32-edge-01";

// Pino do sensor (ADC) se usar piezo; ajuste conforme seu board const int SENSOR_PIN = 34;

// ===== Objetos MQTT/WiFi ===== WiFiClient espClient; PubSubClient client(espClient);

void connectWiFi() { Serial.print("Conectando ao WiFi: "); Serial.println(WIFI_SSID); WiFi.begin(WIFI_SSID, WIFI_PASSWORD); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nWiFi conectado. IP: " + WiFi.localIP().toString()); }

void connectMQTT() { while (!client.connected()) { Serial.print("Conectando ao MQTT..."); if (client.connect(DEVICE_ID)) { Serial.println("conectado!"); client.subscribe("edgepredict/cmd"); } else { Serial.print("falha, rc="); Serial.print(client.state()); Serial.println(" tentando novamente em 5s"); delay(5000); } } }

void setup() { Serial.begin(115200); delay(1000); connectWiFi(); client.setServer(MQTT_SERVER, MQTT_PORT); connectMQTT(); }

void loop() { if (WiFi.status() != WL_CONNECTED) connectWiFi(); if (!client.connected()) connectMQTT(); client.loop();

// Coleta de janela de amostras (ex.: 512 pontos @ ~2kHz) const int N = 512; static float samples[N]; for (int i = 0; i < N; i++) { int raw = analogRead(SENSOR_PIN); // 0–4095 float v = (float)raw / 4095.0f; // normaliza 0–1 samples[i] = v; delayMicroseconds(500); // ~2 kHz (ajuste conforme necessidade) }

// Publica JSON (amostras + metadados) StaticJsonDocument<2048> doc; doc["device_id"] = DEVICE_ID; doc["ts"] = millis(); JsonArray arr = doc.createNestedArray("samples"); for (int i = 0; i < N; i++) arr.add(samples[i]);

char payload[4096]; serializeJson(doc, payload); client.publish(MQTT_TOPIC, payload); }

Log in or sign up for Devpost to join the conversation.

Private user

Private user posted an update

Now working on the update for EdgePredict: Multimodal Assistant for Industry 4.0 (e.g., EdgePredict integrated with Gemini for predictive analysis + natural language insights). Visual Diagnostic App (Gemini interprets images and suggests actions).

Log in or sign up for Devpost to join the conversation.